@capillarytech/creatives-library 8.0.249 → 8.0.250-alpha.0

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 (136) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +2 -1
  4. package/initialReducer.js +2 -0
  5. package/package.json +1 -1
  6. package/services/api.js +10 -0
  7. package/services/tests/api.test.js +18 -0
  8. package/utils/common.js +5 -0
  9. package/utils/commonUtils.js +28 -5
  10. package/utils/tests/commonUtil.test.js +224 -0
  11. package/utils/transformTemplateConfig.js +0 -10
  12. package/v2Components/CapDeviceContent/index.js +61 -56
  13. package/v2Components/CapTagList/index.js +6 -1
  14. package/v2Components/CapTagListWithInput/index.js +5 -1
  15. package/v2Components/CapTagListWithInput/messages.js +1 -1
  16. package/v2Components/CapWhatsappCTA/tests/index.test.js +5 -0
  17. package/v2Components/ErrorInfoNote/index.js +452 -72
  18. package/v2Components/ErrorInfoNote/messages.js +22 -0
  19. package/v2Components/ErrorInfoNote/style.scss +280 -4
  20. package/v2Components/FormBuilder/tests/index.test.js +13 -4
  21. package/v2Components/HtmlEditor/HTMLEditor.js +640 -94
  22. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +874 -0
  23. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +1167 -133
  24. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +27 -16
  25. package/v2Components/HtmlEditor/_htmlEditor.scss +108 -45
  26. package/v2Components/HtmlEditor/_index.lazy.scss +1 -1
  27. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +13 -101
  28. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +148 -139
  29. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +2 -1
  30. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  31. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +9 -0
  32. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +1 -1
  33. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +22 -0
  34. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +4 -7
  35. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +35 -45
  36. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +1 -3
  37. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  38. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +7 -6
  39. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +3 -6
  40. package/v2Components/HtmlEditor/components/PreviewPane/index.js +11 -13
  41. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  42. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +49 -31
  43. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +68 -39
  44. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +254 -0
  45. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +391 -0
  46. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +51 -0
  47. package/v2Components/HtmlEditor/constants.js +42 -20
  48. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +373 -16
  49. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.apiErrors.test.js +795 -0
  50. package/v2Components/HtmlEditor/hooks/useEditorContent.js +5 -2
  51. package/v2Components/HtmlEditor/hooks/useInAppContent.js +88 -146
  52. package/v2Components/HtmlEditor/hooks/useValidation.js +189 -53
  53. package/v2Components/HtmlEditor/index.js +1 -1
  54. package/v2Components/HtmlEditor/messages.js +95 -85
  55. package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +94 -45
  56. package/v2Components/HtmlEditor/utils/contentSanitizer.js +40 -41
  57. package/v2Components/HtmlEditor/utils/htmlValidator.js +71 -72
  58. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +134 -102
  59. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +23 -25
  60. package/v2Components/HtmlEditor/utils/validationAdapter.js +66 -41
  61. package/v2Components/MobilePushPreviewV2/index.js +32 -7
  62. package/v2Components/TemplatePreview/_templatePreview.scss +44 -24
  63. package/v2Components/TemplatePreview/index.js +47 -32
  64. package/v2Components/TemplatePreview/messages.js +4 -0
  65. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +1 -0
  66. package/v2Containers/BeeEditor/index.js +172 -90
  67. package/v2Containers/BeePopupEditor/constants.js +10 -0
  68. package/v2Containers/BeePopupEditor/index.js +193 -0
  69. package/v2Containers/BeePopupEditor/tests/index.test.js +627 -0
  70. package/v2Containers/CreativesContainer/SlideBoxContent.js +127 -51
  71. package/v2Containers/CreativesContainer/SlideBoxFooter.js +163 -13
  72. package/v2Containers/CreativesContainer/SlideBoxHeader.js +2 -1
  73. package/v2Containers/CreativesContainer/constants.js +1 -0
  74. package/v2Containers/CreativesContainer/index.js +239 -46
  75. package/v2Containers/CreativesContainer/messages.js +8 -0
  76. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +11 -2
  77. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +38 -50
  78. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +106 -0
  79. package/v2Containers/Email/actions.js +7 -0
  80. package/v2Containers/Email/constants.js +5 -1
  81. package/v2Containers/Email/index.js +222 -27
  82. package/v2Containers/Email/messages.js +32 -0
  83. package/v2Containers/Email/reducer.js +12 -1
  84. package/v2Containers/Email/sagas.js +61 -7
  85. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +2 -0
  86. package/v2Containers/Email/tests/sagas.test.js +320 -29
  87. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +1321 -0
  88. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +210 -15
  89. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +40 -74
  90. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +1749 -0
  91. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +520 -0
  92. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +2 -67
  93. package/v2Containers/EmailWrapper/constants.js +2 -0
  94. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +629 -77
  95. package/v2Containers/EmailWrapper/index.js +103 -23
  96. package/v2Containers/EmailWrapper/messages.js +61 -1
  97. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +643 -0
  98. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +594 -77
  99. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +376 -0
  100. package/v2Containers/InApp/__tests__/sagas.test.js +363 -0
  101. package/v2Containers/InApp/actions.js +7 -0
  102. package/v2Containers/InApp/constants.js +20 -4
  103. package/v2Containers/InApp/index.js +802 -359
  104. package/v2Containers/InApp/index.scss +4 -3
  105. package/v2Containers/InApp/messages.js +7 -3
  106. package/v2Containers/InApp/reducer.js +21 -3
  107. package/v2Containers/InApp/sagas.js +29 -9
  108. package/v2Containers/InApp/selectors.js +25 -5
  109. package/v2Containers/InApp/tests/index.test.js +154 -50
  110. package/v2Containers/InApp/tests/reducer.test.js +34 -0
  111. package/v2Containers/InApp/tests/sagas.test.js +61 -9
  112. package/v2Containers/InApp/tests/selectors.test.js +612 -0
  113. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +162 -0
  114. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +267 -0
  115. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +9 -0
  116. package/v2Containers/InAppWrapper/constants.js +16 -0
  117. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +473 -0
  118. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +198 -0
  119. package/v2Containers/InAppWrapper/index.js +148 -0
  120. package/v2Containers/InAppWrapper/messages.js +49 -0
  121. package/v2Containers/InappAdvance/index.js +1099 -0
  122. package/v2Containers/InappAdvance/index.scss +10 -0
  123. package/v2Containers/InappAdvance/tests/index.test.js +448 -0
  124. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +3 -0
  125. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +2 -0
  126. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +2 -0
  127. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +9 -0
  128. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +12 -0
  129. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +4 -0
  130. package/v2Containers/TagList/index.js +62 -19
  131. package/v2Containers/Templates/_templates.scss +60 -1
  132. package/v2Containers/Templates/index.js +89 -4
  133. package/v2Containers/Templates/messages.js +4 -0
  134. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -0
  135. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +0 -152
  136. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +0 -214
@@ -0,0 +1,148 @@
1
+ /*
2
+ *
3
+ * InAppWrapper
4
+ *
5
+ */
6
+ import React from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { injectIntl, intlShape } from 'react-intl';
9
+ import { bindActionCreators } from 'redux';
10
+ import { createStructuredSelector } from 'reselect';
11
+ import withCreatives from '../../hoc/withCreatives';
12
+ import useInAppWrapper from './hooks/useInAppWrapper';
13
+ import InAppWrapperView from './components/InAppWrapperView';
14
+ import messages from './messages';
15
+ import * as inAppActions from '../InApp/actions';
16
+ const InAppWrapper = (props) => {
17
+ // Destructure props for clarity before passing to hook
18
+ const {
19
+ intl,
20
+ inAppEditorType,
21
+ step,
22
+ isFullMode,
23
+ onInAppEditorTypeChange,
24
+ showNextStep,
25
+ onResetStep,
26
+ setIsLoadingContent,
27
+ isGetFormData,
28
+ getFormdata,
29
+ type,
30
+ cap,
31
+ showTemplateName,
32
+ showLiquidErrorInFooter,
33
+ onValidationFail,
34
+ forwardedTags,
35
+ selectedOfferDetails,
36
+ onPreviewContentClicked,
37
+ onTestContentClicked,
38
+ eventContextTags,
39
+ onCreateComplete,
40
+ handleClose,
41
+ templateData,
42
+ getDefaultTags,
43
+ onEnterTemplateName,
44
+ onRemoveTemplateName,
45
+ } = props;
46
+
47
+ // Pass destructured props to the custom hook
48
+ const {
49
+ templateName,
50
+ isTemplateNameEmpty,
51
+ selectedEditorType,
52
+ modes,
53
+ isShowInAppCreate,
54
+ inAppProps,
55
+ onTemplateNameChange,
56
+ onChange,
57
+ handleEditorTypeSelection,
58
+ } = useInAppWrapper({
59
+ intl,
60
+ onInAppEditorTypeChange,
61
+ inAppEditorType,
62
+ step,
63
+ showNextStep,
64
+ onResetStep,
65
+ onEnterTemplateName,
66
+ onRemoveTemplateName,
67
+ setIsLoadingContent,
68
+ isGetFormData,
69
+ getFormdata,
70
+ type,
71
+ isFullMode,
72
+ cap,
73
+ showTemplateName,
74
+ showLiquidErrorInFooter,
75
+ onValidationFail,
76
+ forwardedTags,
77
+ selectedOfferDetails,
78
+ onPreviewContentClicked,
79
+ onTestContentClicked,
80
+ eventContextTags,
81
+ onCreateComplete,
82
+ handleClose,
83
+ templateData,
84
+ getDefaultTags,
85
+ });
86
+
87
+ // Render using the presentation component with data from the hook
88
+ return (
89
+ <InAppWrapperView
90
+ inAppEditorType={inAppEditorType}
91
+ step={step}
92
+ isFullMode={isFullMode}
93
+ templateName={templateName}
94
+ onTemplateNameChange={onTemplateNameChange}
95
+ isTemplateNameEmpty={isTemplateNameEmpty}
96
+ modes={modes}
97
+ onChange={onChange}
98
+ isShowInAppCreate={isShowInAppCreate}
99
+ inAppProps={inAppProps}
100
+ handleEditorTypeSelection={handleEditorTypeSelection}
101
+ templateNamePlaceholder={intl.formatMessage(messages.templateNamePlaceholder)}
102
+ />
103
+ );
104
+ };
105
+
106
+ InAppWrapper.propTypes = {
107
+ onInAppEditorTypeChange: PropTypes.func.isRequired,
108
+ isGetFormData: PropTypes.bool,
109
+ type: PropTypes.string,
110
+ inAppEditorType: PropTypes.string,
111
+ step: PropTypes.string,
112
+ showNextStep: PropTypes.func,
113
+ getFormdata: PropTypes.func,
114
+ intl: intlShape,
115
+ cap: PropTypes.object,
116
+ onResetStep: PropTypes.func,
117
+ isFullMode: PropTypes.bool,
118
+ setIsLoadingContent: PropTypes.func,
119
+ showTemplateName: PropTypes.func,
120
+ showLiquidErrorInFooter: PropTypes.func,
121
+ onValidationFail: PropTypes.func,
122
+ forwardedTags: PropTypes.object,
123
+ selectedOfferDetails: PropTypes.array,
124
+ onPreviewContentClicked: PropTypes.func,
125
+ onTestContentClicked: PropTypes.func,
126
+ eventContextTags: PropTypes.array,
127
+ onCreateComplete: PropTypes.func,
128
+ handleClose: PropTypes.func,
129
+ templateData: PropTypes.object,
130
+ getDefaultTags: PropTypes.string,
131
+ onEnterTemplateName: PropTypes.func,
132
+ onRemoveTemplateName: PropTypes.func,
133
+ };
134
+
135
+ const mapStateToProps = createStructuredSelector({
136
+ // Add selectors here if needed
137
+ });
138
+
139
+ const mapDispatchToProps = (dispatch) => ({
140
+ actions: bindActionCreators(inAppActions, dispatch),
141
+ });
142
+
143
+ export default withCreatives({
144
+ WrappedComponent: injectIntl(InAppWrapper),
145
+ mapStateToProps,
146
+ mapDispatchToProps,
147
+ userAuth: true,
148
+ });
@@ -0,0 +1,49 @@
1
+ /*
2
+ * InAppWrapper Messages
3
+ *
4
+ * This contains all the text for the InAppWrapper component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ header: {
10
+ id: 'creatives.containersV2.InAppWrapper.header',
11
+ defaultMessage: 'Create In App Message',
12
+ },
13
+ htmlEditor: {
14
+ id: 'creatives.containersV2.InAppWrapper.htmlEditor',
15
+ defaultMessage: 'HTML editor',
16
+ },
17
+ htmlEditorDesc: {
18
+ id: 'creatives.containersV2.InAppWrapper.htmlEditorDesc',
19
+ defaultMessage: 'Use a basic HTML editor to write and format your content. Suitable if you\'re familiar with HTML.',
20
+ },
21
+ dragDropEditor: {
22
+ id: 'creatives.containersV2.InAppWrapper.dragDropEditor',
23
+ defaultMessage: 'Drag & drop editor',
24
+ },
25
+ dragDropEditorDesc: {
26
+ id: 'creatives.containersV2.InAppWrapper.dragDropEditorDesc',
27
+ defaultMessage: 'Create your content visually by dragging blocks - no coding needed. Great for quick, easy designs.',
28
+ },
29
+ creativeName: {
30
+ id: 'creatives.containersV2.InAppWrapper.creativeName',
31
+ defaultMessage: 'Creative name',
32
+ },
33
+ editorType: {
34
+ id: 'creatives.containersV2.InAppWrapper.editorType',
35
+ defaultMessage: 'Editor type',
36
+ },
37
+ emptyTemplateName: {
38
+ id: 'creatives.containersV2.InAppWrapper.emptyTemplateName',
39
+ defaultMessage: 'Please enter template name.',
40
+ },
41
+ next: {
42
+ id: 'creatives.containersV2.InAppWrapper.next',
43
+ defaultMessage: 'Next',
44
+ },
45
+ templateNamePlaceholder: {
46
+ id: 'creatives.containersV2.InAppWrapper.templateNamePlaceholder',
47
+ defaultMessage: 'Enter the template name',
48
+ },
49
+ });