@bikdotai/bik-component-library 0.0.47 → 0.0.48-editor.11
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/_virtual/_commonjsHelpers.js +1 -0
- package/dist/cjs/_virtual/index.js +1 -0
- package/dist/cjs/assets/icons/bold.svg.js +1 -0
- package/dist/cjs/assets/icons/emoji.svg.js +1 -0
- package/dist/cjs/assets/icons/italic.svg.js +1 -0
- package/dist/cjs/assets/icons/strikeThrough.svg.js +1 -0
- package/dist/cjs/bundle.css +2 -1
- package/dist/cjs/components/CustomEditor/CustomEditor.d.ts +28 -0
- package/dist/cjs/components/CustomEditor/CustomEditor.js +1 -0
- package/dist/cjs/components/CustomEditor/CustomEditor.styled.d.ts +15 -0
- package/dist/cjs/components/CustomEditor/CustomEditor.styled.js +1 -0
- package/dist/cjs/components/CustomEditor/CustomEditorHeader.d.ts +14 -0
- package/dist/cjs/components/CustomEditor/CustomEditorHeader.js +1 -0
- package/dist/cjs/components/CustomEditor/index.d.ts +2 -0
- package/dist/cjs/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js +1 -1
- package/dist/cjs/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js +1 -1
- package/dist/cjs/components/QueryBuilder/helpers/ApiResponse.helper.d.ts +3 -0
- package/dist/cjs/components/QueryBuilder/helpers/ApiResponse.helper.js +1 -1
- package/dist/cjs/components/TablePagination/TablePagination.d.ts +1 -0
- package/dist/cjs/components/TablePagination/TablePagination.js +1 -1
- package/dist/cjs/components/TablePagination/TablePaginationCard.d.ts +7 -0
- package/dist/cjs/components/TablePagination/TablePaginationCard.js +1 -0
- package/dist/cjs/components/TablePagination/index.d.ts +1 -0
- package/dist/cjs/components/card-selection-modal/CardSelectionModal.d.ts +17 -0
- package/dist/cjs/components/card-selection-modal/CardSelectionModal.js +1 -0
- package/dist/cjs/components/card-selection-modal/CardSelectionModal.styled.d.ts +9 -0
- package/dist/cjs/components/card-selection-modal/CardSelectionModal.styled.js +1 -0
- package/dist/cjs/components/card-selection-modal/index.d.ts +1 -0
- package/dist/cjs/components/image-cropper/BikImageCropper.d.ts +10 -0
- package/dist/cjs/components/image-cropper/index.d.ts +1 -0
- package/dist/cjs/components/input/Input.styled.js +1 -1
- package/dist/cjs/components/modals/Modal.d.ts +1 -0
- package/dist/cjs/components/modals/Modal.js +1 -1
- package/dist/cjs/components/modals/styledModal.d.ts +1 -0
- package/dist/cjs/components/modals/styledModal.js +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/states-modal/DeleteConfirmationModal.d.ts +9 -0
- package/dist/cjs/components/states-modal/DeleteConfirmationModal.js +1 -0
- package/dist/cjs/components/states-modal/StateModalComponent.d.ts +1 -0
- package/dist/cjs/components/states-modal/StateModalComponent.js +1 -1
- package/dist/cjs/components/states-modal/index.d.ts +1 -0
- package/dist/cjs/components/tabs/Tabs.d.ts +1 -2
- package/dist/cjs/components/tabs/Tabs.js +1 -1
- package/dist/cjs/components/tabs/Tabs.styles.js +1 -1
- package/dist/cjs/components/tag/Tag.styled.d.ts +6 -2
- package/dist/cjs/components/tag/Tag.styled.js +1 -28
- package/dist/cjs/components/template-context-mapper/modalElements/DesktopPreview.js +4 -4
- package/dist/cjs/components/template-context-mapper/modalElements/MobilePreview.js +3 -3
- package/dist/cjs/components/template-preview/WhatsApp/ChatUI.js +2 -2
- package/dist/cjs/components/template-preview/WhatsApp/ChatUiV2.d.ts +3 -0
- package/dist/cjs/components/template-preview/WhatsApp/ChatUiV2.js +19 -0
- package/dist/cjs/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.d.ts +3 -0
- package/dist/cjs/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js +12 -0
- package/dist/cjs/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.d.ts +1 -1
- package/dist/cjs/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/cjs/components/template-preview/helpers/VariableEditorHelper.d.ts +7 -0
- package/dist/cjs/components/template-preview/helpers/VariableEditorHelper.js +1 -0
- package/dist/cjs/components/template-preview/index.d.ts +2 -0
- package/dist/cjs/components/template-preview/models/WhatsAppTemplate.d.ts +4 -0
- package/dist/cjs/components/tooltips/Tooltip.js +1 -1
- package/dist/cjs/helpers/BaseWhatsappContentLang.helper.d.ts +34 -0
- package/dist/cjs/helpers/BaseWhatsappContentLang.helper.js +1 -0
- package/dist/cjs/helpers/index.d.ts +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/emoji-picker-react/dist/index.js +2 -0
- package/dist/cjs/utils/isAlphanumeric.d.ts +1 -0
- package/dist/cjs/utils/isAlphanumeric.js +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +1 -0
- package/dist/esm/_virtual/index.js +1 -0
- package/dist/esm/assets/icons/bold.svg.js +1 -0
- package/dist/esm/assets/icons/emoji.svg.js +1 -0
- package/dist/esm/assets/icons/italic.svg.js +1 -0
- package/dist/esm/assets/icons/strikeThrough.svg.js +1 -0
- package/dist/esm/bundle.css +2 -1
- package/dist/esm/components/CustomEditor/CustomEditor.d.ts +28 -0
- package/dist/esm/components/CustomEditor/CustomEditor.js +1 -0
- package/dist/esm/components/CustomEditor/CustomEditor.styled.d.ts +15 -0
- package/dist/esm/components/CustomEditor/CustomEditor.styled.js +1 -0
- package/dist/esm/components/CustomEditor/CustomEditorHeader.d.ts +14 -0
- package/dist/esm/components/CustomEditor/CustomEditorHeader.js +1 -0
- package/dist/esm/components/CustomEditor/index.d.ts +2 -0
- package/dist/esm/components/QueryBuilder/Triggers/components/BaseTriggerQueryBuilderNode.js +1 -1
- package/dist/esm/components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js +1 -1
- package/dist/esm/components/QueryBuilder/helpers/ApiResponse.helper.d.ts +3 -0
- package/dist/esm/components/QueryBuilder/helpers/ApiResponse.helper.js +1 -1
- package/dist/esm/components/TablePagination/TablePagination.d.ts +1 -0
- package/dist/esm/components/TablePagination/TablePagination.js +1 -1
- package/dist/esm/components/TablePagination/TablePaginationCard.d.ts +7 -0
- package/dist/esm/components/TablePagination/TablePaginationCard.js +1 -0
- package/dist/esm/components/TablePagination/index.d.ts +1 -0
- package/dist/esm/components/card-selection-modal/CardSelectionModal.d.ts +17 -0
- package/dist/esm/components/card-selection-modal/CardSelectionModal.js +1 -0
- package/dist/esm/components/card-selection-modal/CardSelectionModal.styled.d.ts +9 -0
- package/dist/esm/components/card-selection-modal/CardSelectionModal.styled.js +1 -0
- package/dist/esm/components/card-selection-modal/index.d.ts +1 -0
- package/dist/esm/components/image-cropper/BikImageCropper.d.ts +10 -0
- package/dist/esm/components/image-cropper/index.d.ts +1 -0
- package/dist/esm/components/input/Input.styled.js +1 -1
- package/dist/esm/components/modals/Modal.d.ts +1 -0
- package/dist/esm/components/modals/Modal.js +1 -1
- package/dist/esm/components/modals/styledModal.d.ts +1 -0
- package/dist/esm/components/modals/styledModal.js +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/states-modal/DeleteConfirmationModal.d.ts +9 -0
- package/dist/esm/components/states-modal/DeleteConfirmationModal.js +1 -0
- package/dist/esm/components/states-modal/StateModalComponent.d.ts +1 -0
- package/dist/esm/components/states-modal/StateModalComponent.js +1 -1
- package/dist/esm/components/states-modal/index.d.ts +1 -0
- package/dist/esm/components/tabs/Tabs.d.ts +1 -2
- package/dist/esm/components/tabs/Tabs.js +1 -1
- package/dist/esm/components/tabs/Tabs.styles.js +1 -1
- package/dist/esm/components/tag/Tag.styled.d.ts +6 -2
- package/dist/esm/components/tag/Tag.styled.js +1 -28
- package/dist/esm/components/template-context-mapper/modalElements/DesktopPreview.js +5 -5
- package/dist/esm/components/template-context-mapper/modalElements/MobilePreview.js +3 -3
- package/dist/esm/components/template-preview/WhatsApp/ChatUI.js +1 -1
- package/dist/esm/components/template-preview/WhatsApp/ChatUiV2.d.ts +3 -0
- package/dist/esm/components/template-preview/WhatsApp/ChatUiV2.js +19 -0
- package/dist/esm/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.d.ts +3 -0
- package/dist/esm/components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js +12 -0
- package/dist/esm/components/template-preview/WhatsAppTemplatePreview.js +1 -1
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.d.ts +1 -1
- package/dist/esm/components/template-preview/helpers/TemplateCreatorHelper.js +1 -1
- package/dist/esm/components/template-preview/helpers/VariableEditorHelper.d.ts +7 -0
- package/dist/esm/components/template-preview/helpers/VariableEditorHelper.js +1 -0
- package/dist/esm/components/template-preview/index.d.ts +2 -0
- package/dist/esm/components/template-preview/models/WhatsAppTemplate.d.ts +4 -0
- package/dist/esm/components/tooltips/Tooltip.js +1 -1
- package/dist/esm/helpers/BaseWhatsappContentLang.helper.d.ts +34 -0
- package/dist/esm/helpers/BaseWhatsappContentLang.helper.js +1 -0
- package/dist/esm/helpers/index.d.ts +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/node_modules/emoji-picker-react/dist/index.js +2 -0
- package/dist/esm/utils/isAlphanumeric.d.ts +1 -0
- package/dist/esm/utils/isAlphanumeric.js +1 -0
- package/package.json +17 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{COLORS as t}from"../../../constants/Theme.js";import{specialCharPattern as n,placeHolderNamePattern as i,editableVarPattern as o}from"../constants/regexPatterns.js";import{REQUIRED_FIELD as l,NAME_LEN_LIMIT as a,NAME_LEN_ERROR as d,NO_SPECIAL_CHAR as r,HEADER_TEXT_LEN_LIMIT as v,HEADER_LEN_ERROR as s,ONE_VAR_ALLOWED as u,HEADER_ASSET_LINK_ERROR as p,BODY_TEXT_LEN_LIMIT as c,BODY_LEN_ERROR as m,QUICK_REPLY_BTN_TEXT_LIMIT as
|
|
1
|
+
import{__awaiter as e}from"../../../_virtual/_tslib.js";import{COLORS as t}from"../../../constants/Theme.js";import{specialCharPattern as n,placeHolderNamePattern as i,editableVarPattern as o}from"../constants/regexPatterns.js";import{REQUIRED_FIELD as l,NAME_LEN_LIMIT as a,NAME_LEN_ERROR as d,NO_SPECIAL_CHAR as r,HEADER_TEXT_LEN_LIMIT as v,HEADER_LEN_ERROR as s,ONE_VAR_ALLOWED as u,HEADER_ASSET_LINK_ERROR as p,BODY_TEXT_LEN_LIMIT as c,BODY_LEN_ERROR as m,QUICK_REPLY_BTN_TEXT_LIMIT as h,QUICK_REPLY_LEN_ERROR as b,BUTTON_EMOJI_ERROR as T,VALID_PHONE_NUMBER as y,QUICK_REPLY_NAME_LEN_LIMIT as B,CREATE_TEMPLATE_DOM_IDS as x,QUICK_REPLY_NAME_ERROR as f}from"../constants/TemplateConstants.js";import{HEADER_TYPES as k,ACTIONS_TYPES as N}from"../models/TemplateMeta.js";import{TemplateHelperUtils as g}from"../utils/TemplateHelperUtils.js";class C{parseDataFromHeaderComponent(e){var t,n,i,o,l,a,d,r,v,s;const u={headerType:k.NONE,headerVariables:[]},p=null===(t=e.components)||void 0===t?void 0:t.find((e=>"HEADER"===e.type));if(p){u.headerType=p.format,u.headerText=p.text,u.headerAssetLink=null===(i=null===(n=p.example)||void 0===n?void 0:n.header_handle)||void 0===i?void 0:i[0];const t=null===(l=null===(o=p.example)||void 0===o?void 0:o.header_text)||void 0===l?void 0:l[0],c=null===(d=null===(a=e.mapping)||void 0===a?void 0:a.header)||void 0===d?void 0:d[0];if(t&&c){const e=null==c?void 0:c.replace("[[","").replace("]]",""),n=/\(\(/.test(c),i={idx:0,variableVal:t,editable:n,editableDefaultValues:n?void 0:t,variableName:e};u.headerVariables=[i],(null===(v=null===(r=p.example)||void 0===r?void 0:r.header_text)||void 0===v?void 0:v.length)&&(u.headerText=null===(s=u.headerText)||void 0===s?void 0:s.replace("{{1}}",`{{${e}}}`))}}return u}validateState(e){var t,i,o,C,L,E,R,_,w,A,V,I,D,U,O,q,F,j,P,$,Y;const K=/\p{Extended_Pictographic}/u;let M="valid";const Q={meta:{},ctaBtn:{phoneNumber:{btnText:"",link:""},websiteLink:{btnText:"",link:""}},quickReply:[null,null,null]},H=new g;let S=!1;const G=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)?e.meta.name.trim().length>a?(Q.meta.name=d,M="invalid"):n.test(e.meta.name.trim())&&(Q.meta.name=r,M="invalid"):(Q.meta.name=l,M="invalid"),Q.meta.name&&!S&&(G(x.name),S=!0),e.headerType===k.TEXT){const t=null!==(o=null===(i=e.headerText)||void 0===i?void 0:i.trim())&&void 0!==o?o:"";if(t)if(t.length>v)Q.header=s,M="invalid";else{const e=H.getTemplateVariablesFromState(t);e&&e.length>1&&(Q.header=u,M="invalid")}else Q.header=l,M="invalid"}else e.headerType===k.DOCUMENT||e.headerType===k.IMAGE||(e.headerType,k.VIDEO);if(e.headerType!==k.DOCUMENT&&e.headerType!==k.IMAGE&&e.headerType!==k.VIDEO||e.headerAssetLink||(Q.header=p,M="invalid"),Q.header&&!S&&(G(x.header),S=!0),e.bodyText?e.bodyTextRaw&&(null===(C=e.bodyTextRaw)||void 0===C?void 0:C.trim().length)>c&&(Q.body=m,M="invalid"):(Q.body=l,M="invalid"),Q.body&&!S&&(G(x.body),S=!0),e.footerText&&e.footerText.length>v&&(Q.footer=s,M="invalid"),(null==Q?void 0:Q.footer)&&!S&&(G(x.footer),S=!0),e.actionsType===N.CTA_BTN){if(null===(E=null===(L=e.ctaBtn)||void 0===L?void 0:L.phoneNumber)||void 0===E?void 0:E.isChecked){const t=null===(R=e.ctaBtn.phoneNumber.btnText)||void 0===R?void 0:R.trim(),n=e.ctaBtn.phoneNumber.phoneNumber;Q.ctaBtn&&!t?(Q.ctaBtn.phoneNumber.btnText=l,M="invalid"):Q.ctaBtn&&t&&t.length>h?(Q.ctaBtn.phoneNumber.btnText=b,M="invalid"):Q.ctaBtn&&t&&K.test(t)&&(Q.ctaBtn.phoneNumber.btnText=T,M="invalid"),Q.ctaBtn&&!n?(Q.ctaBtn.phoneNumber.link=l,M="invalid"):Q.ctaBtn&&n&&n.length<10&&(Q.ctaBtn.phoneNumber.link=y,M="invalid")}if(null===(w=null===(_=e.ctaBtn)||void 0===_?void 0:_.websiteLinkBtn)||void 0===w?void 0:w.isChecked){const t=null===(A=e.ctaBtn.websiteLinkBtn.btnText)||void 0===A?void 0:A.trim(),n=null===(V=e.ctaBtn.websiteLinkBtn.linkOpens)||void 0===V?void 0:V.trim(),i=null===(I=e.ctaBtn.websiteLinkBtn.placeholder)||void 0===I?void 0:I.trim();Q.ctaBtn&&!t?(Q.ctaBtn.websiteLink.btnText=l,M="invalid"):Q.ctaBtn&&t&&t.length>h?(Q.ctaBtn.websiteLink.btnText=b,M="invalid"):Q.ctaBtn&&t&&K.test(t)&&(Q.ctaBtn.websiteLink.btnText=T,M="invalid"),!Q.ctaBtn||n||i||(Q.ctaBtn.websiteLink.link=l,M="invalid")}}else if(e.actionsType===N.QUICK_REPLY){const t=["","",""];e.quickReply.forEach(((n,i)=>{const o=n.text.trim();if(o)if(o.length>B)t[i]=b,M="invalid";else if(K.test(o))t[i]=T,M="invalid";else{const n=[...e.quickReply];n.splice(i,1);n.find((e=>e.text===o))&&(t[i]=f,M="invalid")}else t[i]=l,M="invalid"})),Q.quickReply=t}if(e.actionsType===N.CTA_BTN||e.actionsType===N.QUICK_REPLY){const e=null===(D=Q.quickReply)||void 0===D?void 0:D.reduce(((e,t)=>e||!!t),!1);((null===(O=null===(U=null==Q?void 0:Q.ctaBtn)||void 0===U?void 0:U.websiteLink)||void 0===O?void 0:O.link)||(null===(F=null===(q=Q.ctaBtn)||void 0===q?void 0:q.websiteLink)||void 0===F?void 0:F.btnText)||(null===(P=null===(j=Q.ctaBtn)||void 0===j?void 0:j.phoneNumber)||void 0===P?void 0:P.link)||(null===(Y=null===($=Q.ctaBtn)||void 0===$?void 0:$.phoneNumber)||void 0===Y?void 0:Y.btnText)||e)&&!S&&(G(x.actionButtons),S=!0)}return{status:M,errors:Q}}parseBodyComponent(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];var o,l,a,d,r;const v=[];let s="";const u=null===(o=e.components)||void 0===o?void 0:o.find((e=>"BODY"===e.type));return u&&(null===(a=null===(l=u.example)||void 0===l?void 0:l.body_text)||void 0===a||a[0].forEach(((t,n)=>{var o,l;let a=null===(l=null===(o=e.mapping)||void 0===o?void 0:o.body)||void 0===l?void 0:l[n];const d=a&&/\(\(/.test(a),r=null==a?void 0:a.match(i);(null==r?void 0:r[2])&&(a=null==r?void 0:r[2]),v.push({idx:n,variableVal:t,editable:!!d,editableDefaultValues:d?void 0:t,variableName:null!=a?a:""})})),s=e.htmlContentUrl?e.htmlContentUrl:(null===(d=u.text)||void 0===d?void 0:d.split(/\{\{[0-9]+\}\}/).length)?null===(r=u.text)||void 0===r?void 0:r.split(/\{\{[0-9]+\}\}/).map(((e,i)=>{if(null==v?void 0:v[i]){const o=v[i].variableName;return n?`${e}{{${o}}}`:`${e} <span> </span><span style="color: ${t.content.brand}; text-decoration: underline;">{{${o}}}</span><span> </span>`}return e})).join(""):""),{bodyVariable:v,bodyText:s}}parseFooterComponent(e){var t;const n=null===(t=e.components)||void 0===t?void 0:t.find((e=>"FOOTER"===e.type));return null==n?void 0:n.text}parseButtonComponent(e){var t,n,i,l,a,d;const r={actionsType:N.NONE,quickReply:[],ctaBtn:{phoneNumber:void 0,websiteLinkBtn:void 0}},v=null===(t=e.components)||void 0===t?void 0:t.find((e=>"BUTTONS"===e.type));if(v&&(null===(n=null==v?void 0:v.buttons)||void 0===n?void 0:n.length)){const t="QUICK_REPLY"===(null===(i=null==v?void 0:v.buttons)||void 0===i?void 0:i[0].type)?N.QUICK_REPLY:N.CTA_BTN;if(r.actionsType=t,t===N.QUICK_REPLY){const e=null!==(a=null===(l=null==v?void 0:v.buttons)||void 0===l?void 0:l.map((e=>e)))&&void 0!==a?a:[];return r.quickReply=e,r}t===N.CTA_BTN&&(null===(d=null==v?void 0:v.buttons)||void 0===d||d.forEach((t=>{var n,i,l,a;if(t.phone_number&&(r.ctaBtn.phoneNumber={isChecked:!0,btnText:t.text,phoneNumber:t.phone_number}),t.url){const d=null!==(l=null===(i=null===(n=null==e?void 0:e.mapping)||void 0===n?void 0:n.buttons)||void 0===i?void 0:i[0])&&void 0!==l?l:void 0;let v=!1;d&&o.test(d)&&(v=!0),r.ctaBtn.websiteLinkBtn={isChecked:!0,btnText:t.text,linkOpens:v?null===(a=t.example)||void 0===a?void 0:a[0]:t.url,placeholder:v?void 0:d}}})))}return r}parseUITemplateFromDBFormat(t,n){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];var o;return e(this,void 0,void 0,(function*(){const{headerType:e,headerAssetLink:l,headerAssetName:a,headerText:d,headerVariables:r}=yield this.parseDataFromHeaderComponent(t),{bodyText:v,bodyVariable:s}=yield this.parseBodyComponent(t,i),{actionsType:u,quickReply:p,ctaBtn:c}=yield this.parseButtonComponent(t),m={quickReply:p,ctaBtn:c,meta:{name:n?`${t.label} Copy`:t.label,category:null===(o=t.category)||void 0===o?void 0:o.toUpperCase(),subCategory:t.templateCategory,language:t.language,templateId:t.templateId},error:{header:void 0,body:void 0,footer:void 0,quickReply:void 0,meta:void 0,ctaBtn:void 0},actionsType:u,footerText:this.parseFooterComponent(t),bodyVariables:s,bodyText:v,headerType:e,headerAssetLink:l,headerAssetName:a,headerText:d,headerVariables:r,alreadyAsADraft:t.isDraft,mode:"edit",initialLoading:!1},{errors:h}=this.validateState(m);return m.error=h,m}))}}export{C as TemplateCreatorHelper};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{BaseWhatsappContentLangHelper as e}from"../../../helpers/BaseWhatsappContentLang.helper.js";import{variablePattern as r}from"../constants/regexPatterns.js";const l=new e;class n{format(e,n){var t;if(!e)return"";const a=new RegExp(r,"g"),o=e.match(a),p=null!==(t=null==n?void 0:n.map((e=>{let{placeholder:r}=e;return r})))&&void 0!==t?t:[],c=e.split(r).map(((e,r)=>{var l;const t=null==o?void 0:o[r];if(t){const r=t.replace("{{","").replace("}}","").replace("[[","").replace("]]",""),a=p.findIndex((e=>e.replace("{{","").replace("}}","").replace("[[","").replace("]]","")===r));return a>-1?e+"```"+(null===(l=null==n?void 0:n[a])||void 0===l?void 0:l.value)+"```":e+t}return e})).join("");return l.getHTML(c)}}export{n as VariableEditorHelper};
|
|
@@ -2,5 +2,7 @@ import * as regexPatterns from './constants/regexPatterns';
|
|
|
2
2
|
export { regexPatterns };
|
|
3
3
|
export * from './TemplatePreview';
|
|
4
4
|
export * from './WhatsApp/WhatsAppLikePreview';
|
|
5
|
+
export * from './WhatsApp/WhatsAppLikePreviewV2';
|
|
5
6
|
export * from './helpers/SmsTemplateHelper';
|
|
6
7
|
export * from './helpers/WhatsAppFormatToHTML';
|
|
8
|
+
export * from './helpers/VariableEditorHelper';
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, { ReactElement } from 'react';
|
|
2
|
+
import { variableType } from '../helpers/VariableEditorHelper';
|
|
2
3
|
import { CHANNEL_TYPE } from './Channels';
|
|
3
4
|
import { ACTIONS_TYPES, ButtonPlaceHolderOptions, CUSTOM_VARIABLE, HEADER_TYPES, QUICK_REPLY_BUTTON, TEMPLATE_STATUS } from './TemplateMeta';
|
|
4
5
|
export type WhatsAppTemplate = {
|
|
@@ -168,6 +169,9 @@ export type WhatsappLikePreviewTypes = {
|
|
|
168
169
|
imagePreviewStyles?: React.CSSProperties;
|
|
169
170
|
size?: 'small' | 'large';
|
|
170
171
|
zeroStateComponent: ReactElement<any, any>;
|
|
172
|
+
children?: React.ReactNode;
|
|
173
|
+
bodyVariableList?: variableType[];
|
|
174
|
+
headerVariableList?: variableType[];
|
|
171
175
|
};
|
|
172
176
|
export type WhatsappMeta = {
|
|
173
177
|
containerStyle?: React.CSSProperties | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as t,Fragment as n,jsx as o}from"react/jsx-runtime";import
|
|
1
|
+
import{jsxs as t,Fragment as n,jsx as o}from"react/jsx-runtime";import e from"@tippyjs/react";import r from"react";import i from"./TooltipInternal.js";import{COLORS as p}from"../../constants/Theme.js";const a=`\n\t.tippy-content {\n\t\tpadding: 0px;\n\t}\n\t.tippy-arrow {\n\t\tcolor: ${t=>p.content.primary};\n\t}\n\t.overflow-wrap-tippy {\n\t\toverflow-wrap: anywhere;\n\t}\n`,l=p=>r.isValidElement(p.children)?t(n,{children:[o("style",{children:a}),o(e,Object.assign({appendTo:document.body,className:"overflow-wrap-tippy",placement:p.placement||"right",maxWidth:p.width,animation:"fade",arrow:!0,interactive:!0,content:p.tooltipContent?p.tooltipContent:o(i,{title:p.title,body:p.body,buttonProps:p.buttonProps})},{children:p.children}))]}):null;export{l as Tooltip};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare class BaseWhatsappContentLangHelper {
|
|
2
|
+
getHTML(text: string): string;
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* how it works ?
|
|
6
|
+
*
|
|
7
|
+
* iterates through each chars, if the char matches the wildcard (eg * or _ or etc),
|
|
8
|
+
* if there is any alphanumeric char in previous, do nothing
|
|
9
|
+
* if there are no char next to it, do nothing
|
|
10
|
+
* if there is already an opening wildcard (odd number length for indices arr), and alphanumeric char next to it, do nothing,
|
|
11
|
+
* for odd number indices arr length, it means current wildcard is for closing, then check if previous
|
|
12
|
+
* char is there or not, if not , do nothing
|
|
13
|
+
* else push it to indices arr
|
|
14
|
+
*
|
|
15
|
+
* @param format
|
|
16
|
+
* @param wildcard
|
|
17
|
+
* @param opTag
|
|
18
|
+
* @param clTag
|
|
19
|
+
* @returns
|
|
20
|
+
*/
|
|
21
|
+
private whatsappStyles;
|
|
22
|
+
/**
|
|
23
|
+
* how it works ?
|
|
24
|
+
* same as whatsappStyles, just that there is a offset of 3 char for every checks
|
|
25
|
+
*
|
|
26
|
+
* @param format
|
|
27
|
+
* @param opTag
|
|
28
|
+
* @param clTag
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
private whatsappStylesMonospace;
|
|
32
|
+
private whatsappLinkStyle;
|
|
33
|
+
wrappWildcard(startIndex: number, endIndex: number, wildcard: string, str: string): string;
|
|
34
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{isAplhanumeric as t}from"../utils/isAlphanumeric.js";class e{getHTML(t){let e=t;return e=this.whatsappStyles(e,"_","<i>","</i>"),e=this.whatsappStyles(e,"*","<b>","</b>"),e=this.whatsappStyles(e,"~","<s>","</s>"),e=this.whatsappStylesMonospace(e,'<code style="color: black;">',"</code>"),e&&(e=e.replace(/\n/gi,"<br>")),e=this.whatsappLinkStyle(e),e}whatsappStyles(e,s,p,a){const h=[];if(e)for(let p=0;p<e.length;p++)e[p]===s?h.length%2?" "!==e[p-1]&&((void 0===e[p+1]||!t(e[p+1]))&&h.push(p)):void 0!==e[p+1]&&(" "!==e[p+1]&&((void 0===e[p-1]||!t(e[p-1]))&&h.push(p))):10===e.charCodeAt(p)&&h.length%2&&h.pop();h.length%2&&h.pop();let l=0;return h.forEach((function(t,s){const h=s%2?a:p;t+=l,e=e.substr(0,t)+h+e.substr(t+1),l+=h.length-1})),e}whatsappStylesMonospace(e,s,p){const a=[];if(e)for(let s=0;s<e.length;s++)"`"===e[s]&&"`"===e[s+1]&&"`"===e[s+2]?a.length%2?" "===e[s-3]||(void 0===e[s+3]?a.push(s):t(e[s+3])?a.length%2==1&&a.pop():a.push(s)):void 0===e[s+3]||" "===e[s+3]||(void 0===e[s-1]||" "===e[s-1]?a.push(s):t(e[s-1])?a.length%2==1&&a.pop():a.push(s)):10===e.charCodeAt(s)&&a.length%2&&a.pop();a.length%2&&a.pop();let h=0;return a.forEach((function(t,a){const l=a%2?p:s;t+=h,e=e.substr(0,t)+l+e.substr(t+3),h+=l.length-3})),e}whatsappLinkStyle(t){const e=t;return new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i").test(e)?`<a href="${e}" target="_blank" rel="noreferrer">${e}</a>`:e}wrappWildcard(t,e,s,p){return t<0||t>e?p:p.slice(0,t)+s+p.slice(t,e)+s+p.slice(e)}}export{e as BaseWhatsappContentLangHelper};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './BaseWhatsappContentLang.helper';
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -38,3 +38,7 @@ export * from './components/shimmer';
|
|
|
38
38
|
export * from './components/TablePagination/';
|
|
39
39
|
export * from './components/states-modal';
|
|
40
40
|
export * from './components/states';
|
|
41
|
+
export * from './components/CustomEditor';
|
|
42
|
+
export * from './helpers';
|
|
43
|
+
export * from './components/card-selection-modal';
|
|
44
|
+
export * from './components/image-cropper';
|
package/dist/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"./components/template-preview/constants/regexPatterns.js";export{o as regexPatterns};export{default as StringUtils}from"./utils/StringUtils.js";export{BASE_COLORS,COLORS,DEFAULT_THEME,FONTS}from"./constants/Theme.js";export{CheckBox}from"./components/checkBox/CheckBox.js";export{ListItem}from"./components/list-item/ListItem.js";export{Pagination}from"./components/pagination/Pagination.js";export{RadioButton}from"./components/radioButton/RadioButton.js";export{Toaster}from"./components/toaster/Toaster.js";export{Tooltip}from"./components/tooltips/Tooltip.js";export{Spinner}from"./components/spinner/Spinner.js";export{Stepper}from"./components/stepper/Stepper.js";export{Tag}from"./components/tag/Tag.js";export{IconButton}from"./components/icon-button/IconButton.js";export{TemplatePreview}from"./components/template-preview/TemplatePreview.js";export{WhatsappLikePreview}from"./components/template-preview/WhatsApp/WhatsAppLikePreview.js";export{renderVariableUIForPreview}from"./components/template-preview/helpers/SmsTemplateHelper.js";export{WhatsAppFormatToHTML}from"./components/template-preview/helpers/WhatsAppFormatToHTML.js";export{TemplateContextMapper}from"./components/template-context-mapper/TemplateContextMapper.js";export{getAllDataFromTemplateComponent}from"./components/template-context-mapper/utils/getDataFromTemplateComponent.js";export{validateIsUrl}from"./components/template-context-mapper/utils/validateIsUrl.js";export{FABMenu}from"./components/fab-menu/FABMenu.js";export{FloatingActionButton}from"./components/floating-action-button/FloatingActionButton.js";export{DROP_POSITION,DropdownToggleContainer,FAB_POSITION,FloatingActionButtonContainer,FloatingActionButtonOuterContainer,MENU_ALIGNMENT,StyledDropdown,TooltipStyled}from"./components/floating-action-button/FloatingActionButton.styles.js";export{ImageService}from"./components/image-compress/ImageCompress.js";export{BodyCaption,BodyLarge,BodyPrimary,BodyPrimaryLink,BodyRegular,BodySecondary,BodySecondaryLink,BodyTiny,ButtonLarge,ButtonRegular,Caption,Display,SubHeading,TitleLarge,TitleMedium,TitleRegular,TitleSmall}from"./components/TypographyStyle.js";export{Button}from"./components/button/Button.js";export{ProgressBarComponent,ProgressCompletedBar}from"./components/progress-bar/ProgressBarComponent.js";export{QueryBuilder}from"./components/QueryBuilder/QueryBuilder.js";export{BaseQueryBuilderNode}from"./components/QueryBuilder/components/QueryBuilderNode/Base/BaseQueryBuilderNode.js";export{PropertyNode,PropertyNodeHeadless}from"./components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js";export{queryBuilderSlice}from"./components/QueryBuilder/redux/queryBuilder.reducer.js";export{queryBuilderCacheSlice}from"./components/QueryBuilder/redux/queryBuilderCache.reducer.js";export{BOOLEAN_OPERATORS,DATE_OPERATORS,EVENT_VALUES,FREQUENCY_OPERATORS,IG_OPERATORS,INTEGER_OPERATORS,STRING_OPERATORS}from"./components/QueryBuilder/types/QueryBuilderOperator.type.js";export{StyledModal}from"./components/modals/styledModal.js";export{Dropdown}from"./components/dropdown/Dropdown.js";export{DropdownPopover}from"./components/dropdown/DropdownPopover/index.js";export{OpenedDropdown}from"./components/dropdown/OpenedDropdown/components/OpennedDropdown.js";export{AnalyticsCard}from"./components/analytics-card/AnalyticsCard.js";export{AnalyticsContainer,CardDataContainer}from"./components/analytics-card/AnalyticsCard.styled.js";export{Input}from"./components/input/Input.js";export{AnalyticsChip}from"./components/analytics-chips-and-dropdowns/AnalyticsChip.js";export{AnalyticsDropdown,EachItem}from"./components/analytics-chips-and-dropdowns/AnalyticsDropdown.js";export{AnalyticsMultiChip}from"./components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js";export{AVATAR_SIZE_VS_ICON_SIZE_MAP,Avatar,BACKGROUND_VS_TEXT_COLOR_MAP}from"./components/avatar/Avatar.js";export{RATIO,Thumbnail}from"./components/thumbnail/Thumbnail.js";export{Curtain}from"./components/curtain/Curtain.js";export{DatePicker}from"./components/datePicker/DatePicker.js";export{Loader,Switch,SwitchContainer,Thumb}from"./components/switch/Switch.js";export{SubscriptionPlan}from"./components/plans/SubscriptionPlan.js";export{SubscriptionPlanSelector}from"./components/plans/SubscriptionPlanSelector.js";export{TabItemComponent}from"./components/tabs/Tabs.js";export{BikShimmer}from"./components/shimmer/ShimmerComponent/BikShimmer.js";export{TablePagination}from"./components/TablePagination/TablePagination.js";export{StateModalComponent}from"./components/states-modal/StateModalComponent.js";export{ButtonActions,ButtonTypes,StateComponent,StateInterface}from"./components/states/StateComponent.js";
|
|
1
|
+
import*as o from"./components/template-preview/constants/regexPatterns.js";export{o as regexPatterns};export{default as StringUtils}from"./utils/StringUtils.js";export{BASE_COLORS,COLORS,DEFAULT_THEME,FONTS}from"./constants/Theme.js";export{CheckBox}from"./components/checkBox/CheckBox.js";export{ListItem}from"./components/list-item/ListItem.js";export{Pagination}from"./components/pagination/Pagination.js";export{RadioButton}from"./components/radioButton/RadioButton.js";export{Toaster}from"./components/toaster/Toaster.js";export{Tooltip}from"./components/tooltips/Tooltip.js";export{Spinner}from"./components/spinner/Spinner.js";export{Stepper}from"./components/stepper/Stepper.js";export{Tag}from"./components/tag/Tag.js";export{IconButton}from"./components/icon-button/IconButton.js";export{TemplatePreview}from"./components/template-preview/TemplatePreview.js";export{WhatsappLikePreview}from"./components/template-preview/WhatsApp/WhatsAppLikePreview.js";export{WhatsappLikePreviewV2}from"./components/template-preview/WhatsApp/WhatsAppLikePreviewV2.js";export{renderVariableUIForPreview}from"./components/template-preview/helpers/SmsTemplateHelper.js";export{WhatsAppFormatToHTML}from"./components/template-preview/helpers/WhatsAppFormatToHTML.js";export{VariableEditorHelper}from"./components/template-preview/helpers/VariableEditorHelper.js";export{TemplateContextMapper}from"./components/template-context-mapper/TemplateContextMapper.js";export{getAllDataFromTemplateComponent}from"./components/template-context-mapper/utils/getDataFromTemplateComponent.js";export{validateIsUrl}from"./components/template-context-mapper/utils/validateIsUrl.js";export{FABMenu}from"./components/fab-menu/FABMenu.js";export{FloatingActionButton}from"./components/floating-action-button/FloatingActionButton.js";export{DROP_POSITION,DropdownToggleContainer,FAB_POSITION,FloatingActionButtonContainer,FloatingActionButtonOuterContainer,MENU_ALIGNMENT,StyledDropdown,TooltipStyled}from"./components/floating-action-button/FloatingActionButton.styles.js";export{ImageService}from"./components/image-compress/ImageCompress.js";export{BodyCaption,BodyLarge,BodyPrimary,BodyPrimaryLink,BodyRegular,BodySecondary,BodySecondaryLink,BodyTiny,ButtonLarge,ButtonRegular,Caption,Display,SubHeading,TitleLarge,TitleMedium,TitleRegular,TitleSmall}from"./components/TypographyStyle.js";export{Button}from"./components/button/Button.js";export{ProgressBarComponent,ProgressCompletedBar}from"./components/progress-bar/ProgressBarComponent.js";export{QueryBuilder}from"./components/QueryBuilder/QueryBuilder.js";export{BaseQueryBuilderNode}from"./components/QueryBuilder/components/QueryBuilderNode/Base/BaseQueryBuilderNode.js";export{PropertyNode,PropertyNodeHeadless}from"./components/QueryBuilder/components/QueryBuilderNode/Property/PropertyNode.js";export{queryBuilderSlice}from"./components/QueryBuilder/redux/queryBuilder.reducer.js";export{queryBuilderCacheSlice}from"./components/QueryBuilder/redux/queryBuilderCache.reducer.js";export{BOOLEAN_OPERATORS,DATE_OPERATORS,EVENT_VALUES,FREQUENCY_OPERATORS,IG_OPERATORS,INTEGER_OPERATORS,STRING_OPERATORS}from"./components/QueryBuilder/types/QueryBuilderOperator.type.js";export{StyledModal}from"./components/modals/styledModal.js";export{Dropdown}from"./components/dropdown/Dropdown.js";export{DropdownPopover}from"./components/dropdown/DropdownPopover/index.js";export{OpenedDropdown}from"./components/dropdown/OpenedDropdown/components/OpennedDropdown.js";export{AnalyticsCard}from"./components/analytics-card/AnalyticsCard.js";export{AnalyticsContainer,CardDataContainer}from"./components/analytics-card/AnalyticsCard.styled.js";export{Input}from"./components/input/Input.js";export{AnalyticsChip}from"./components/analytics-chips-and-dropdowns/AnalyticsChip.js";export{AnalyticsDropdown,EachItem}from"./components/analytics-chips-and-dropdowns/AnalyticsDropdown.js";export{AnalyticsMultiChip}from"./components/analytics-chips-and-dropdowns/AnalyticsMultiChip.js";export{AVATAR_SIZE_VS_ICON_SIZE_MAP,Avatar,BACKGROUND_VS_TEXT_COLOR_MAP}from"./components/avatar/Avatar.js";export{RATIO,Thumbnail}from"./components/thumbnail/Thumbnail.js";export{Curtain}from"./components/curtain/Curtain.js";export{DatePicker}from"./components/datePicker/DatePicker.js";export{Loader,Switch,SwitchContainer,Thumb}from"./components/switch/Switch.js";export{SubscriptionPlan}from"./components/plans/SubscriptionPlan.js";export{SubscriptionPlanSelector}from"./components/plans/SubscriptionPlanSelector.js";export{TabItemComponent,Tabs}from"./components/tabs/Tabs.js";export{BikShimmer}from"./components/shimmer/ShimmerComponent/BikShimmer.js";export{TablePagination}from"./components/TablePagination/TablePagination.js";export{TablePaginationCard,TablePaginationCardStyled}from"./components/TablePagination/TablePaginationCard.js";export{StateModalComponent}from"./components/states-modal/StateModalComponent.js";export{DeleteConfirmationModal}from"./components/states-modal/DeleteConfirmationModal.js";export{ButtonActions,ButtonTypes,StateComponent,StateInterface}from"./components/states/StateComponent.js";export{CustomEditor}from"./components/CustomEditor/CustomEditor.js";export{CustomEditorHeader,EditorActionTypes}from"./components/CustomEditor/CustomEditorHeader.js";export{BaseWhatsappContentLangHelper}from"./helpers/BaseWhatsappContentLang.helper.js";export{CardSelectionModal}from"./components/card-selection-modal/CardSelectionModal.js";import"react/jsx-runtime";import"react";import"react-image-crop";
|