@capillarytech/creatives-library 8.0.262 → 8.0.264

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 (162) hide show
  1. package/assets/Android.png +0 -0
  2. package/assets/iOS.png +0 -0
  3. package/constants/unified.js +1 -2
  4. package/initialReducer.js +0 -2
  5. package/package.json +1 -1
  6. package/services/api.js +0 -10
  7. package/services/tests/api.test.js +0 -34
  8. package/tests/integration/TemplateCreation/TemplateCreation.integration.test.js +35 -17
  9. package/tests/integration/TemplateCreation/api-response.js +1 -31
  10. package/tests/integration/TemplateCreation/msw-handler.js +0 -2
  11. package/utils/common.js +0 -5
  12. package/utils/commonUtils.js +5 -28
  13. package/utils/tagValidations.js +2 -1
  14. package/utils/tests/commonUtil.test.js +0 -224
  15. package/utils/transformTemplateConfig.js +10 -0
  16. package/v2Components/CapDeviceContent/index.js +56 -61
  17. package/v2Components/CapTagList/index.js +1 -6
  18. package/v2Components/CapTagListWithInput/index.js +1 -5
  19. package/v2Components/CapTagListWithInput/messages.js +1 -1
  20. package/v2Components/CapWhatsappCTA/tests/index.test.js +0 -5
  21. package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +2 -2
  22. package/v2Components/ErrorInfoNote/index.js +72 -402
  23. package/v2Components/ErrorInfoNote/messages.js +6 -32
  24. package/v2Components/ErrorInfoNote/style.scss +6 -278
  25. package/v2Components/FormBuilder/index.js +8 -8
  26. package/v2Components/FormBuilder/tests/index.test.js +4 -13
  27. package/v2Components/HtmlEditor/HTMLEditor.js +99 -416
  28. package/v2Components/HtmlEditor/__tests__/HTMLEditor.test.js +133 -1882
  29. package/v2Components/HtmlEditor/__tests__/index.lazy.test.js +16 -27
  30. package/v2Components/HtmlEditor/_htmlEditor.scss +45 -108
  31. package/v2Components/HtmlEditor/_index.lazy.scss +1 -0
  32. package/v2Components/HtmlEditor/components/CodeEditorPane/_codeEditorPane.scss +102 -23
  33. package/v2Components/HtmlEditor/components/CodeEditorPane/index.js +140 -148
  34. package/v2Components/HtmlEditor/components/DeviceToggle/_deviceToggle.scss +1 -2
  35. package/v2Components/HtmlEditor/components/DeviceToggle/index.js +3 -3
  36. package/v2Components/HtmlEditor/components/EditorToolbar/_editorToolbar.scss +0 -9
  37. package/v2Components/HtmlEditor/components/EditorToolbar/index.js +4 -4
  38. package/v2Components/HtmlEditor/components/FullscreenModal/_fullscreenModal.scss +0 -22
  39. package/v2Components/HtmlEditor/components/InAppPreviewPane/DeviceFrame.js +7 -4
  40. package/v2Components/HtmlEditor/components/InAppPreviewPane/__tests__/DeviceFrame.test.js +45 -35
  41. package/v2Components/HtmlEditor/components/InAppPreviewPane/_inAppPreviewPane.scss +3 -1
  42. package/v2Components/HtmlEditor/components/InAppPreviewPane/constants.js +33 -33
  43. package/v2Components/HtmlEditor/components/InAppPreviewPane/index.js +6 -7
  44. package/v2Components/HtmlEditor/components/PreviewPane/_previewPane.scss +10 -7
  45. package/v2Components/HtmlEditor/components/PreviewPane/index.js +43 -22
  46. package/v2Components/HtmlEditor/components/SplitContainer/_splitContainer.scss +1 -1
  47. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/__tests__/index.test.js +152 -0
  48. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/_validationErrorDisplay.scss +0 -18
  49. package/v2Components/HtmlEditor/components/ValidationErrorDisplay/index.js +31 -36
  50. package/v2Components/HtmlEditor/components/ValidationPanel/_validationPanel.scss +34 -46
  51. package/v2Components/HtmlEditor/components/ValidationPanel/index.js +46 -51
  52. package/v2Components/HtmlEditor/constants.js +20 -42
  53. package/v2Components/HtmlEditor/hooks/__tests__/useInAppContent.test.js +16 -373
  54. package/v2Components/HtmlEditor/hooks/__tests__/useValidation.test.js +16 -351
  55. package/v2Components/HtmlEditor/hooks/useEditorContent.js +2 -5
  56. package/v2Components/HtmlEditor/hooks/useInAppContent.js +146 -88
  57. package/v2Components/HtmlEditor/hooks/useValidation.js +55 -211
  58. package/v2Components/HtmlEditor/index.js +1 -1
  59. package/v2Components/HtmlEditor/messages.js +94 -92
  60. package/v2Components/HtmlEditor/utils/__tests__/htmlValidator.enhanced.test.js +45 -214
  61. package/v2Components/HtmlEditor/utils/__tests__/validationAdapter.test.js +0 -134
  62. package/v2Components/HtmlEditor/utils/contentSanitizer.js +41 -40
  63. package/v2Components/HtmlEditor/utils/htmlValidator.js +72 -71
  64. package/v2Components/HtmlEditor/utils/liquidTemplateSupport.js +102 -134
  65. package/v2Components/HtmlEditor/utils/properSyntaxHighlighting.js +25 -23
  66. package/v2Components/HtmlEditor/utils/validationAdapter.js +41 -66
  67. package/v2Components/MobilePushPreviewV2/index.js +7 -32
  68. package/v2Components/TemplatePreview/_templatePreview.scss +24 -55
  69. package/v2Components/TemplatePreview/index.js +32 -47
  70. package/v2Components/TemplatePreview/messages.js +0 -4
  71. package/v2Components/TestAndPreviewSlidebox/_testAndPreviewSlidebox.scss +0 -1
  72. package/v2Containers/BeeEditor/index.js +90 -172
  73. package/v2Containers/CreativesContainer/SlideBoxContent.js +51 -127
  74. package/v2Containers/CreativesContainer/SlideBoxFooter.js +13 -163
  75. package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -2
  76. package/v2Containers/CreativesContainer/constants.js +0 -1
  77. package/v2Containers/CreativesContainer/index.js +46 -240
  78. package/v2Containers/CreativesContainer/messages.js +0 -8
  79. package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +2 -11
  80. package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +50 -38
  81. package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +0 -103
  82. package/v2Containers/Email/actions.js +0 -7
  83. package/v2Containers/Email/constants.js +1 -5
  84. package/v2Containers/Email/index.js +29 -234
  85. package/v2Containers/Email/messages.js +0 -32
  86. package/v2Containers/Email/reducer.js +1 -12
  87. package/v2Containers/Email/sagas.js +7 -61
  88. package/v2Containers/Email/tests/__snapshots__/reducer.test.js.snap +0 -2
  89. package/v2Containers/Email/tests/reducer.test.js +0 -46
  90. package/v2Containers/Email/tests/sagas.test.js +29 -320
  91. package/v2Containers/EmailWrapper/components/EmailWrapperView.js +21 -211
  92. package/v2Containers/EmailWrapper/components/HTMLEditorTesting.js +74 -40
  93. package/v2Containers/EmailWrapper/components/__tests__/HTMLEditorTesting.test.js +67 -2
  94. package/v2Containers/EmailWrapper/constants.js +0 -2
  95. package/v2Containers/EmailWrapper/hooks/useEmailWrapper.js +77 -629
  96. package/v2Containers/EmailWrapper/index.js +23 -103
  97. package/v2Containers/EmailWrapper/messages.js +1 -65
  98. package/v2Containers/EmailWrapper/tests/EmailWrapperView.test.js +214 -0
  99. package/v2Containers/EmailWrapper/tests/useEmailWrapper.test.js +77 -594
  100. package/v2Containers/FTP/index.js +1 -1
  101. package/v2Containers/InApp/actions.js +0 -7
  102. package/v2Containers/InApp/constants.js +4 -20
  103. package/v2Containers/InApp/index.js +360 -802
  104. package/v2Containers/InApp/index.scss +3 -4
  105. package/v2Containers/InApp/messages.js +3 -7
  106. package/v2Containers/InApp/reducer.js +3 -21
  107. package/v2Containers/InApp/sagas.js +9 -29
  108. package/v2Containers/InApp/selectors.js +5 -25
  109. package/v2Containers/InApp/tests/index.test.js +50 -154
  110. package/v2Containers/InApp/tests/reducer.test.js +0 -34
  111. package/v2Containers/InApp/tests/sagas.test.js +9 -61
  112. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/content.test.js.snap +0 -3
  113. package/v2Containers/Line/Container/ImageCarousel/tests/__snapshots__/index.test.js.snap +0 -2
  114. package/v2Containers/Line/Container/Text/index.js +1 -0
  115. package/v2Containers/Line/Container/Wrapper/tests/__snapshots__/index.test.js.snap +0 -2
  116. package/v2Containers/Line/Container/tests/__snapshots__/index.test.js.snap +0 -9
  117. package/v2Containers/MobilePushNew/index.js +1 -0
  118. package/v2Containers/Rcs/index.js +3 -0
  119. package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +0 -12
  120. package/v2Containers/SmsTrai/Edit/index.js +1 -0
  121. package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +0 -4
  122. package/v2Containers/TagList/index.js +19 -62
  123. package/v2Containers/Templates/_templates.scss +1 -60
  124. package/v2Containers/Templates/index.js +4 -89
  125. package/v2Containers/Templates/messages.js +0 -4
  126. package/v2Containers/TemplatesV2/TemplatesV2.style.js +2 -4
  127. package/v2Containers/Viber/index.js +1 -0
  128. package/v2Containers/WebPush/Create/index.js +1 -1
  129. package/v2Containers/WebPush/Create/utils/validation.js +2 -1
  130. package/v2Containers/Whatsapp/index.js +1 -0
  131. package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +0 -34
  132. package/v2Containers/Zalo/index.js +1 -0
  133. package/v2Containers/Zalo/tests/index.test.js +1 -5
  134. package/v2Components/ErrorInfoNote/constants.js +0 -1
  135. package/v2Components/HtmlEditor/__tests__/HTMLEditor.apiErrors.test.js +0 -870
  136. package/v2Components/HtmlEditor/components/ValidationPanel/constants.js +0 -6
  137. package/v2Components/HtmlEditor/components/ValidationTabs/_validationTabs.scss +0 -281
  138. package/v2Components/HtmlEditor/components/ValidationTabs/index.js +0 -294
  139. package/v2Components/HtmlEditor/components/ValidationTabs/messages.js +0 -51
  140. package/v2Components/HtmlEditor/utils/validationConstants.js +0 -38
  141. package/v2Containers/BeePopupEditor/_beePopupEditor.scss +0 -14
  142. package/v2Containers/BeePopupEditor/constants.js +0 -10
  143. package/v2Containers/BeePopupEditor/index.js +0 -194
  144. package/v2Containers/BeePopupEditor/tests/index.test.js +0 -627
  145. package/v2Containers/EmailWrapper/components/EmailHTMLEditor.js +0 -1246
  146. package/v2Containers/EmailWrapper/components/__tests__/EmailHTMLEditor.test.js +0 -2472
  147. package/v2Containers/EmailWrapper/components/__tests__/EmailWrapperView.test.js +0 -520
  148. package/v2Containers/EmailWrapper/tests/useEmailWrapper.edgeCases.test.js +0 -956
  149. package/v2Containers/InApp/__tests__/InAppHTMLEditor.test.js +0 -376
  150. package/v2Containers/InApp/__tests__/sagas.test.js +0 -363
  151. package/v2Containers/InApp/tests/selectors.test.js +0 -612
  152. package/v2Containers/InAppWrapper/components/InAppWrapperView.js +0 -151
  153. package/v2Containers/InAppWrapper/components/__tests__/InAppWrapperView.test.js +0 -267
  154. package/v2Containers/InAppWrapper/components/inAppWrapperView.scss +0 -23
  155. package/v2Containers/InAppWrapper/constants.js +0 -16
  156. package/v2Containers/InAppWrapper/hooks/__tests__/useInAppWrapper.test.js +0 -473
  157. package/v2Containers/InAppWrapper/hooks/useInAppWrapper.js +0 -198
  158. package/v2Containers/InAppWrapper/index.js +0 -148
  159. package/v2Containers/InAppWrapper/messages.js +0 -49
  160. package/v2Containers/InappAdvance/index.js +0 -1099
  161. package/v2Containers/InappAdvance/index.scss +0 -10
  162. package/v2Containers/InappAdvance/tests/index.test.js +0 -448
@@ -1,256 +1,23 @@
1
1
  @import "~@capillarytech/cap-ui-library/styles/_variables.scss";
2
2
 
3
3
  .error-container {
4
- width: 100%;
4
+ width: max-content;
5
5
  margin-bottom: $CAP_SPACE_08;
6
- margin-top: -3.143rem;
6
+ margin-top: $CAP_SPACE_12;
7
7
  background-color: $CAP_COLOR_05;
8
8
  border-radius: $CAP_SPACE_04;
9
9
  padding: $CAP_SPACE_08 $CAP_SPACE_12 $CAP_SPACE_08 $CAP_SPACE_08;
10
+ gap: $CAP_SPACE_08;
10
11
  box-sizing: border-box;
11
-
12
- // New tabbed interface styles
13
- &--tabs {
14
- padding: 0.5rem 0.75rem;
15
- }
16
- }
17
-
18
- // Header with tabs and actions
19
- .error-info-note {
20
- &__header {
21
- display: flex;
22
- align-items: flex-start;
23
- justify-content: space-between;
24
- width: 100%;
25
- }
26
-
27
- &__tabs {
28
- flex: 1;
29
-
30
- // Override Ant Design Tabs styles
31
- .ant-tabs-nav {
32
- margin-bottom: 0;
33
-
34
- &::before {
35
- border-bottom: none;
36
- }
37
- }
38
-
39
- .ant-tabs-tab {
40
- padding: 0.5rem 0;
41
- margin-right: 1.5rem;
42
- color: $CAP_G03;
43
- font-size: 0.875rem;
44
- font-weight: $FONT_WEIGHT_MEDIUM;
45
-
46
- &:hover {
47
- color: $CAP_G01;
48
- }
49
-
50
- &.ant-tabs-tab-active {
51
- .ant-tabs-tab-btn {
52
- color: $CAP_G01;
53
- font-weight: 600;
54
- }
55
- }
56
- }
57
-
58
- .ant-tabs-ink-bar {
59
- background-color: $CAP_G01;
60
- height: 0.125rem;
61
- }
62
-
63
- .ant-tabs-content-holder {
64
- padding-top: 0.5rem;
65
- }
66
- }
67
-
68
- &__tab-label {
69
- display: flex;
70
- align-items: center;
71
- gap: 0.25rem;
72
- }
73
-
74
- &__tab-count {
75
- color: inherit;
76
- }
77
-
78
- &__actions {
79
- display: flex;
80
- align-items: center;
81
- gap: 0.5rem;
82
- flex-shrink: 0;
83
- padding-top: 0.5rem;
84
- }
85
-
86
- &__liquid-doc {
87
- display: flex;
88
- align-items: center;
89
- gap: 0.25rem;
90
- color: $CAP_BLUE;
91
- font-size: 0.875rem;
92
- font-weight: $FONT_WEIGHT_MEDIUM;
93
- background: transparent;
94
- border: none;
95
- cursor: pointer;
96
- padding: 0;
97
-
98
- &:hover {
99
- color: $CAP_BLUE01;
100
- }
101
-
102
- .cap-icon-v2 {
103
- margin-left: 0.25rem;
104
- }
105
- }
106
-
107
- &__close {
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- width: 1.5rem;
112
- height: 1.5rem;
113
- padding: 0;
114
- background: transparent;
115
- border: none;
116
- border-radius: 0.25rem;
117
- cursor: pointer;
118
- color: $CAP_G03;
119
- transition: all 0.2s ease;
120
-
121
- &:hover {
122
- background-color: rgba($CAP_G01, 0.1);
123
- color: $CAP_G01;
124
- }
125
-
126
- .anticon {
127
- font-size: 0.875rem;
128
- }
129
- }
130
-
131
- &__content {
132
- max-height: 12.5rem;
133
- overflow-y: auto;
134
- padding-right: 0.25rem;
135
-
136
- // Custom scrollbar
137
- &::-webkit-scrollbar {
138
- width: 0.375rem;
139
- }
140
-
141
- &::-webkit-scrollbar-track {
142
- background: transparent;
143
- }
144
-
145
- &::-webkit-scrollbar-thumb {
146
- background-color: $CAP_G06;
147
- border-radius: 0.1875rem;
148
-
149
- &:hover {
150
- background-color: $CAP_G04;
151
- }
152
- }
153
- }
154
-
155
- &__item {
156
- display: flex;
157
- align-items: flex-start;
158
- gap: 0.5rem;
159
- padding: 0.375rem 0;
160
- border-bottom: 1px solid rgba($CAP_G06, 0.3);
161
-
162
- &:last-child {
163
- border-bottom: none;
164
- }
165
-
166
- &--error {
167
- .error-info-note__icon--error {
168
- color: $CAP_RED;
169
- }
170
- }
171
-
172
- &--warning {
173
- .error-info-note__icon--warning {
174
- color: $CAP_YELLOW;
175
- }
176
- }
177
- }
178
-
179
- &__item-icon {
180
- flex-shrink: 0;
181
- display: flex;
182
- align-items: center;
183
- padding-top: 0.125rem;
184
- }
185
-
186
- &__icon {
187
- font-size: 0.875rem;
188
-
189
- &--error {
190
- color: $CAP_RED;
191
- }
192
- }
193
-
194
- &__item-content {
195
- flex: 1;
196
- display: flex;
197
- flex-wrap: wrap;
198
- align-items: baseline;
199
- gap: 0.25rem;
200
- font-size: 0.75rem;
201
- line-height: 2;
202
- color: $CAP_G01;
203
- }
204
-
205
- &__item-message {
206
- color: $CAP_G01;
207
- }
208
-
209
- &__item-location {
210
- color: $CAP_G03;
211
- white-space: nowrap;
212
- }
213
-
214
- &__item-rule {
215
- color: $CAP_G04;
216
- font-family: monospace;
217
- font-size: 0.6875rem;
218
- }
219
-
220
- &__item-navigate {
221
- flex-shrink: 0;
222
- display: flex;
223
- align-items: center;
224
- justify-content: center;
225
- width: 1.25rem;
226
- height: 1.25rem;
227
- padding: 0;
228
- background: transparent;
229
- border: none;
230
- border-radius: 0.25rem;
231
- cursor: pointer;
232
- color: $CAP_G04;
233
- transition: all 0.2s ease;
234
-
235
- &:hover {
236
- background-color: rgba($CAP_G01, 0.1);
237
- color: $CAP_G01;
238
- }
239
-
240
- .anticon {
241
- font-size: 0.75rem;
242
- }
243
- }
244
12
  }
245
13
 
246
- // Legacy styles (kept for backwards compatibility)
247
14
  .error-header {
248
15
  width: 100%;
249
16
  height: $CAP_SPACE_32;
250
17
  display: inline-flex;
251
18
  align-items: center;
252
19
  justify-content: space-between;
253
- font-weight: $FONT_WEIGHT_MEDIUM;
20
+ font-weight: 500;
254
21
 
255
22
  .ant-btn.cap-button-v2.flat-btn {
256
23
  display: flex;
@@ -293,25 +60,6 @@
293
60
  }
294
61
  }
295
62
 
296
- // Legacy error list for platform-specific errors
297
- .error-list-legacy {
298
- max-height: 10rem;
299
- overflow-y: auto;
300
- padding: 0;
301
-
302
- &__item {
303
- padding: $CAP_SPACE_04 0;
304
- }
305
-
306
- .cap-list-v2-error-item {
307
- color: $CAP_G01;
308
- font-size: $CAP_SPACE_12;
309
- display: flex;
310
- margin-left: $CAP_SPACE_04;
311
- gap: $CAP_SPACE_04;
312
- }
313
- }
314
-
315
63
  .liquid-divider {
316
64
  &.ant-divider.cap-divider-v2 {
317
65
  background: $FONT_COLOR_04;
@@ -334,25 +82,5 @@
334
82
 
335
83
  .error-header-sub-title {
336
84
  margin-left: $CAP_SPACE_04;
337
- font-weight: $FONT_WEIGHT_MEDIUM;
338
- }
339
-
340
- // Responsive adjustments
341
- @media (max-width: 768px) {
342
- .error-info-note {
343
- &__tabs {
344
- .ant-tabs-tab {
345
- margin-right: 1rem;
346
- font-size: 0.8125rem;
347
- }
348
- }
349
-
350
- &__content {
351
- max-height: 10rem;
352
- }
353
-
354
- &__item-content {
355
- font-size: 0.6875rem;
356
- }
357
- }
358
- }
85
+ font-weight: 500;
86
+ }
@@ -726,7 +726,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
726
726
 
727
727
  let tagValidationResponse = false;
728
728
  if (content) {
729
- tagValidationResponse = this.validateTags(content, tags, injectedTags);
729
+ tagValidationResponse = this.validateTags(content, tags, injectedTags, false, this.props?.isFullMode);
730
730
  }
731
731
 
732
732
  if (tagValidationResponse.valid) {
@@ -764,7 +764,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
764
764
  if (this.state.formData['message-editor'] !== undefined ) {
765
765
  const content = this.state.formData['0']['message-editor'] || '';
766
766
 
767
- const tagValidationResponse = this.validateTags((content), tags, injectedTags);
767
+ const tagValidationResponse = this.validateTags((content), tags, injectedTags, false, this.props?.isFullMode);
768
768
 
769
769
  if (tagValidationResponse.valid) {
770
770
  errorData = {
@@ -847,7 +847,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
847
847
  errorData[index] = true;
848
848
  isValid = false;
849
849
  } else {
850
- const tagValidationResponse = this.validateTags(content, tags, injectedTags);
850
+ const tagValidationResponse = this.validateTags(content, tags, injectedTags, false, this.props?.isFullMode);
851
851
 
852
852
  if (tagValidationResponse.valid) {
853
853
  errorData[index] = false;
@@ -910,7 +910,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
910
910
  isCurrentTabValid = false;
911
911
  } else {
912
912
  errorData[parseInt(index)][`message-editor${selector}`] = false;
913
- const tagValidationResponse = this.validateTags(message, tags, injectedTags);
913
+ const tagValidationResponse = this.validateTags(message, tags, injectedTags, false, this.props?.isFullMode);
914
914
 
915
915
  if (tagValidationResponse.valid) {
916
916
  errorData[parseInt(index)][`message-editor${selector}`] = false;
@@ -939,7 +939,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
939
939
  isCurrentTabValid = false;
940
940
  } else {
941
941
  errorData[parseInt(index)][`message-title${selector}`] = false;
942
- const tagValidationResponse = this.validateTags(title, tags, injectedTags);
942
+ const tagValidationResponse = this.validateTags(title, tags, injectedTags, false, this.props?.isFullMode);
943
943
 
944
944
  if (tagValidationResponse.valid) {
945
945
  errorData[parseInt(index)][`message-title${selector}`] = false;
@@ -1193,7 +1193,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
1193
1193
  if (!content) {
1194
1194
  return false;
1195
1195
  }
1196
- const tagValidationResponse = this.validateTags(content, tags, injectedTags, isEmail);
1196
+ const tagValidationResponse = this.validateTags(content, tags, injectedTags, isEmail, this.props?.isFullMode);
1197
1197
 
1198
1198
  // Check for base64 images in email content
1199
1199
  isEmail && containsBase64Images({content, callback:()=>{
@@ -1500,7 +1500,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
1500
1500
  });
1501
1501
  }
1502
1502
 
1503
- validateTags(content, tagsParam, injectedTagsParams, isEmail = false) {
1503
+ validateTags(content, tagsParam, injectedTagsParams, isEmail = false, isFullMode = this.props?.isFullMode) {
1504
1504
  const type = (this.props.location && this.props.location.query.type) ? this.props.location.query.type : 'full';
1505
1505
  let currentModule = this.props.location.query.module ? this.props.location.query.module : 'default';
1506
1506
  if (this.props.tagModule) {
@@ -1518,7 +1518,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
1518
1518
  response.isBraceError = false;
1519
1519
  response.isContentEmpty = false;
1520
1520
  const contentForValidation = isEmail ? convert(content, GLOBAL_CONVERT_OPTIONS) : content ;
1521
- if(tags && tags.length) {
1521
+ if(tags && tags.length && !isFullMode) {
1522
1522
  _.forEach(tags, (tag) => {
1523
1523
  _.forEach(tag.definition.supportedModules, (module) => {
1524
1524
  if (module.mandatory && (currentModule === module.context)) {
@@ -10,8 +10,7 @@ import {
10
10
  render,
11
11
  screen,
12
12
  fireEvent,
13
- waitFor,
14
- act
13
+ waitFor
15
14
  } from '../../../utils/test-utils';
16
15
  import { mockData } from './mockData';
17
16
 
@@ -36,17 +35,9 @@ describe("test for checkbox form builder",() => {
36
35
  it("add action button to notification disabled in ios", async () => {
37
36
  const addNotifBtn=screen.getByLabelText("Add action buttons to notification")
38
37
  expect(addNotifBtn).toBeDisabled();
39
- // Use mouseEnter instead of mouseOver for tooltip, and wait longer for tooltip to appear
40
- // Tooltips typically have a delay and are rendered in a portal, so we need to wait for them to appear
41
- await act(async () => {
42
- fireEvent.mouseEnter(addNotifBtn);
43
- // Also trigger mouseOver as some tooltip implementations use both
44
- fireEvent.mouseOver(addNotifBtn);
45
- });
46
- // Wait for tooltip to appear - it might be in a portal, so query document body
38
+ fireEvent.mouseOver(addNotifBtn);
47
39
  await waitFor(() => {
48
- const tooltip = screen.getByText("This section is being revamped. Till then it will remain disabled.");
49
- expect(tooltip).toBeInTheDocument();
50
- }, { timeout: 3000 });
40
+ expect(screen.getByText("This section is being revamped. Till then it will remain disabled.")).toBeInTheDocument();
41
+ })
51
42
  })
52
43
  })