@capillarytech/creatives-library 3.8.10 → 3.8.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/components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +7 -8
- package/components/TemplatePreview/_templatePreview.scss +279 -20
- package/components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
- package/components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
- package/components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
- package/components/TemplatePreview/assets/images/sms_mobile_ios.svg +16 -0
- package/components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
- package/components/TemplatePreview/index.js +180 -20
- package/components/TemplatePreview/messages.js +16 -0
- package/package-lock.json +3096 -0
- package/package.json +1 -1
- package/v2Components/FormBuilder/index.js +17 -7
- package/v2Components/MobilePushPreviewV2/index.js +40 -32
- package/v2Components/MobilePushPreviewV2/messages.js +0 -8
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +64 -0
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +101 -19
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +12 -0
- package/v2Components/TemplatePreview/_templatePreview.scss +13 -4
- package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -0
- package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -0
- package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -0
- package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -0
- package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -0
- package/v2Components/TemplatePreview/index.js +147 -20
- package/v2Components/TemplatePreview/messages.js +8 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +15 -1
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +1 -1
- package/v2Containers/CreativesContainer/index.js +3 -1
- package/v2Containers/CreativesContainer/messages.js +2 -2
- package/v2Containers/Email/_email.scss +7 -1
- package/v2Containers/Email/index.js +39 -13
- package/v2Containers/Email/messages.js +4 -0
- package/v2Containers/EmailWrapper/index.js +4 -0
- package/v2Containers/MobilePush/Create/index.js +5 -0
- package/v2Containers/MobilePush/Edit/index.js +5 -0
- package/v2Containers/MobilepushWrapper/index.js +4 -1
- package/v2Containers/Sms/Create/index.js +2 -1
- package/v2Containers/Sms/Edit/index.js +2 -0
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ import PropTypes from 'prop-types';
|
|
|
11
11
|
import React from 'react';
|
|
12
12
|
import _ from 'lodash';
|
|
13
13
|
import { Tabs, Table, Modal} from 'antd';
|
|
14
|
-
import { CapDrawer, CapButton, CapInput, CapPopover, CapCheckbox, CapRadio, CapSelect, CapTable, CapRow, CapColumn, CapNotification, CapUploader, CapHeading, CapIcon} from '@capillarytech/cap-ui-library';
|
|
14
|
+
import { CapDrawer, CapButton, CapInput, CapPopover, CapImage, CapCheckbox, CapRadio, CapSelect, CapTable, CapRow, CapColumn, CapNotification, CapUploader, CapHeading, CapIcon} from '@capillarytech/cap-ui-library';
|
|
15
15
|
import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
|
|
16
16
|
import LabelHOC from '@capillarytech/cap-ui-library/assets/HOCs/ComponentWithLabelHOC';
|
|
17
17
|
import { CAP_SPACE_12, CAP_SPACE_08, FONT_COLOR_05, FONT_COLOR_04 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
@@ -2197,7 +2197,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2197
2197
|
//
|
|
2198
2198
|
const imgSrc = template && template.versions && template.versions.base ? template.versions.base.preview_http_url : '';
|
|
2199
2199
|
// const ifPreviewGenerated = template && template.versions && template.versions.base ? template.versions.base.isPreviewGenerated : 0;
|
|
2200
|
-
const content = <
|
|
2200
|
+
const content = <CapImage src={imgSrc || ''} alt="" />;
|
|
2201
2201
|
|
|
2202
2202
|
temp.content = (
|
|
2203
2203
|
<div
|
|
@@ -2382,8 +2382,10 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2382
2382
|
content={content}
|
|
2383
2383
|
charCounterEnabled={val.charCounterEnabled}
|
|
2384
2384
|
unicodeEnabled={unicodeEnabled}
|
|
2385
|
-
|
|
2386
|
-
|
|
2385
|
+
showTestAndPreviewIcon
|
|
2386
|
+
onPreviewContentClicked={this.props.onPreviewContentClicked}
|
|
2387
|
+
onTestContentClicked={this.props.onTestContentClicked}
|
|
2388
|
+
/>
|
|
2387
2389
|
</CapColumn>
|
|
2388
2390
|
);
|
|
2389
2391
|
break;
|
|
@@ -2822,7 +2824,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2822
2824
|
<div>
|
|
2823
2825
|
<div className={`image-container ${ifError ? 'error' : ''}`}>
|
|
2824
2826
|
{self.state && !!self.state.formData[`${self.state.currentTab - 1}`].image ?
|
|
2825
|
-
<
|
|
2827
|
+
<CapImage src={self.state.formData[`${self.state.currentTab - 1}`].image} alt={val.alt} style={val.style}/>
|
|
2826
2828
|
:
|
|
2827
2829
|
<div style={{width: "100%", textAlign: "center"}}><span className="image-placeholder">{val.placeholder}</span></div>
|
|
2828
2830
|
}
|
|
@@ -2838,9 +2840,10 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2838
2840
|
const ImageComponent = (props) => (
|
|
2839
2841
|
<div key={`${val.id}-${this.state.currentTab}`}>
|
|
2840
2842
|
<div className={`image-container ${props.ifError ? 'error' : ''}`}>
|
|
2843
|
+
|
|
2841
2844
|
{isImage ?
|
|
2842
|
-
<
|
|
2843
|
-
|
|
2845
|
+
<CapImage src={self.state.formData[`${self.state.currentTab - 1}`].image} alt={props.alt} style={props.style}/>
|
|
2846
|
+
:
|
|
2844
2847
|
<div style={{width: "100%", textAlign: "center"}}><span className="image-placeholder">{props.placeholder}</span></div>
|
|
2845
2848
|
}
|
|
2846
2849
|
</div>
|
|
@@ -2954,6 +2957,9 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
2954
2957
|
content={content}
|
|
2955
2958
|
charCounterEnabled={val.charCounterEnabled}
|
|
2956
2959
|
unicodeEnabled={unicodeEnabled}
|
|
2960
|
+
showTestAndPreviewIcon
|
|
2961
|
+
onPreviewContentClicked={this.props.onPreviewContentClicked}
|
|
2962
|
+
onTestContentClicked={this.props.onTestContentClicked}
|
|
2957
2963
|
>
|
|
2958
2964
|
</TemplatePreview>
|
|
2959
2965
|
</CapColumn>
|
|
@@ -3003,6 +3009,10 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
|
|
|
3003
3009
|
],
|
|
3004
3010
|
appName: val.content.appName,
|
|
3005
3011
|
}}
|
|
3012
|
+
showTestAndPreviewIcon
|
|
3013
|
+
onPreviewContentClicked={this.props.onPreviewContentClicked}
|
|
3014
|
+
onTestContentClicked={this.props.onTestContentClicked}
|
|
3015
|
+
templateDataRaw={this.props.templateData}
|
|
3006
3016
|
>
|
|
3007
3017
|
</TemplatePreview>
|
|
3008
3018
|
</CapColumn>
|
|
@@ -7,16 +7,10 @@
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import {
|
|
11
|
-
// import styled from 'styled-components';
|
|
12
|
-
|
|
13
|
-
import { FormattedMessage } from 'react-intl';
|
|
14
|
-
import { Button } from 'antd';
|
|
10
|
+
import { CapTab, CapIcon } from '@capillarytech/cap-ui-library';
|
|
15
11
|
import { get, map, isEmpty} from 'lodash';
|
|
16
12
|
import TemplatePreview from '../TemplatePreview';
|
|
17
13
|
import '../PreviewSideBar/_previewsidebar.scss';
|
|
18
|
-
import messages from './messages';
|
|
19
|
-
const ButtonGroup = Button.Group;
|
|
20
14
|
|
|
21
15
|
class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
22
16
|
constructor(props) {
|
|
@@ -24,6 +18,9 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
24
18
|
this.goToEdit = this.goToEdit.bind(this);
|
|
25
19
|
this.goToDuplicate = this.goToDuplicate.bind(this);
|
|
26
20
|
this.changeDevice = this.changeDevice.bind(this);
|
|
21
|
+
this.getPreview = this.getPreview.bind(this);
|
|
22
|
+
this.setContent = this.setContent.bind(this);
|
|
23
|
+
this.goToDuplicate = this.goToDuplicate.bind(this);
|
|
27
24
|
const hasAndroid = get(props, 'templateData.versions.base.ANDROID') || get(props, 'templateData.androidContent');
|
|
28
25
|
const hasIos = get(props, 'templateData.versions.base.IOS') || get(props, 'templateData.iosContent');
|
|
29
26
|
let device = "android";
|
|
@@ -38,7 +35,7 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
38
35
|
};
|
|
39
36
|
}
|
|
40
37
|
|
|
41
|
-
setContent
|
|
38
|
+
setContent(templateData, device) {
|
|
42
39
|
const androidContent = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
|
|
43
40
|
const iosContent = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent');
|
|
44
41
|
|
|
@@ -59,12 +56,21 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
59
56
|
}
|
|
60
57
|
return content;
|
|
61
58
|
}
|
|
59
|
+
getPreview(device) {
|
|
60
|
+
return (
|
|
61
|
+
<TemplatePreview
|
|
62
|
+
device={device}
|
|
63
|
+
channel={this.props.channel}
|
|
64
|
+
content={this.state.content || ''}
|
|
65
|
+
templateData={this.props.templateData}
|
|
66
|
+
/>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
62
69
|
goToDuplicate() {
|
|
63
70
|
this.props.onDuplicateClick(this.props.templateData);
|
|
64
71
|
this.props.handleClose();
|
|
65
72
|
}
|
|
66
|
-
changeDevice(
|
|
67
|
-
const device = ev.target.value;
|
|
73
|
+
changeDevice(device) {
|
|
68
74
|
const content = this.setContent(this.props.templateData, device);
|
|
69
75
|
this.setState({device, content });
|
|
70
76
|
}
|
|
@@ -72,38 +78,40 @@ class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react
|
|
|
72
78
|
this.props.onEditClick(e, this.props.templateData._id, this.props.templateData.modeType, path);
|
|
73
79
|
}
|
|
74
80
|
render() {
|
|
75
|
-
const {templateData
|
|
76
|
-
|
|
81
|
+
const {templateData} = this.props;
|
|
77
82
|
const hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
|
|
78
83
|
const hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent');
|
|
79
|
-
|
|
80
|
-
const {device, content} = this.state;
|
|
84
|
+
const hasBothAndroidAndIos = hasAndroid && hasIos;
|
|
81
85
|
|
|
82
86
|
return (
|
|
83
|
-
|
|
84
87
|
<div>
|
|
85
88
|
<div className="devices">
|
|
86
|
-
{!isEmpty(templateData) &&
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
{!isEmpty(templateData) &&
|
|
90
|
+
( hasBothAndroidAndIos ? (
|
|
91
|
+
<CapTab
|
|
92
|
+
panes={[
|
|
93
|
+
{
|
|
94
|
+
content: this.getPreview('android'),
|
|
95
|
+
tab: <CapIcon type="android" size="m" />,
|
|
96
|
+
key: 'android',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
content: this.getPreview('iphone'),
|
|
100
|
+
tab: <CapIcon type="ios" size="m" />,
|
|
101
|
+
key: 'iphone',
|
|
102
|
+
},
|
|
103
|
+
]}
|
|
104
|
+
onChange={(activeKey) => this.changeDevice(activeKey)}
|
|
105
|
+
tabBarStyle={{margin: 'auto', width: '38%'}}
|
|
106
|
+
/>
|
|
107
|
+
) : (
|
|
108
|
+
(hasAndroid || hasIos) && this.getPreview(hasAndroid ? 'android' : 'ios')
|
|
109
|
+
))
|
|
110
|
+
}
|
|
91
111
|
</div>
|
|
92
|
-
<TemplatePreview
|
|
93
|
-
device={device === "android" ? "android" : "iphone"}
|
|
94
|
-
channel={channel}
|
|
95
|
-
content={content || ''}
|
|
96
|
-
templateData={templateData}
|
|
97
|
-
>
|
|
98
|
-
</TemplatePreview>
|
|
99
|
-
|
|
100
|
-
|
|
101
112
|
</div>
|
|
102
|
-
|
|
103
|
-
|
|
104
113
|
);
|
|
105
114
|
}
|
|
106
|
-
|
|
107
115
|
}
|
|
108
116
|
|
|
109
117
|
MobilePushPreviewV2.propTypes = {
|
|
@@ -10,12 +10,4 @@ export default defineMessages({
|
|
|
10
10
|
id: 'creatives.componentsv2.MobilePushPreviewV2.header',
|
|
11
11
|
defaultMessage: 'This is the MobilePushPreviewV2 component !',
|
|
12
12
|
},
|
|
13
|
-
android: {
|
|
14
|
-
id: 'creatives.componentsv2.MobilePushPreviewV2.android',
|
|
15
|
-
defaultMessage: 'Android',
|
|
16
|
-
},
|
|
17
|
-
ios: {
|
|
18
|
-
id: 'creatives.componentsv2.MobilePushPreviewV2.ios',
|
|
19
|
-
defaultMessage: 'IOS',
|
|
20
|
-
},
|
|
21
13
|
});
|
|
@@ -1,5 +1,69 @@
|
|
|
1
1
|
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
2
2
|
|
|
3
|
+
.shell-lock-screen-android .main-screen-preview .wechatMsgContainer{
|
|
4
|
+
position: absolute;
|
|
5
|
+
left: 53.5%;
|
|
6
|
+
top:28%;
|
|
7
|
+
background: white;
|
|
8
|
+
width: 19.5%;
|
|
9
|
+
text-align: left;
|
|
10
|
+
height: fit-content;
|
|
11
|
+
border-radius: 0.285rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.shell-lock-screen-android .lock-screen-preview{
|
|
15
|
+
.wechat-android-sender-id{
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 46%;
|
|
18
|
+
font-size: 10px;
|
|
19
|
+
left: 28%;
|
|
20
|
+
}
|
|
21
|
+
.wechat-android-title{
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 49%;
|
|
24
|
+
font-size: 10px;
|
|
25
|
+
left: 28%;
|
|
26
|
+
color: #5e6c84;
|
|
27
|
+
}
|
|
28
|
+
.wechat-android-action-buttons{
|
|
29
|
+
position: absolute;
|
|
30
|
+
left: 28%;
|
|
31
|
+
top: 53%;
|
|
32
|
+
font-size: 10px;
|
|
33
|
+
color: #3861ca;
|
|
34
|
+
font-weight: 500;
|
|
35
|
+
}
|
|
36
|
+
.wechat-ios-sender-id{
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 44%;
|
|
39
|
+
font-size: 10px;
|
|
40
|
+
left: 28.5%;
|
|
41
|
+
}
|
|
42
|
+
.wechat-ios-title{
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 47%;
|
|
45
|
+
font-size: 10px;
|
|
46
|
+
left: 28.5%;
|
|
47
|
+
color: #5e6c84;
|
|
48
|
+
}
|
|
49
|
+
.wechat-ios-action-reply{
|
|
50
|
+
position: absolute;
|
|
51
|
+
left: 35%;
|
|
52
|
+
top: 59%;
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
color: #3861ca;
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
}
|
|
57
|
+
.wechat-ios-action-cancel{
|
|
58
|
+
position: absolute;
|
|
59
|
+
left: 34.5%;
|
|
60
|
+
top: 66%;
|
|
61
|
+
font-size: 12px;
|
|
62
|
+
color: #3861ca;
|
|
63
|
+
font-weight: 500;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
3
67
|
.wechatMsgContainer{
|
|
4
68
|
position: absolute;
|
|
5
69
|
left: 30%;
|
|
@@ -7,14 +7,15 @@
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
9
9
|
// import { connect } from 'react-redux';
|
|
10
|
-
import { CapRow, CapColumn, CapButton } from '@capillarytech/cap-react-ui-library/';
|
|
11
|
-
import { CapHeading, CapLabel } from '@capillarytech/cap-ui-library/';
|
|
10
|
+
import { CapRow, CapColumn, CapButton, CapImage } from '@capillarytech/cap-react-ui-library/';
|
|
11
|
+
import { CapHeading, CapLabel, CapTab, CapIcon } from '@capillarytech/cap-ui-library/';
|
|
12
12
|
import { FormattedMessage } from 'react-intl';
|
|
13
13
|
import _ from 'lodash';
|
|
14
14
|
import './_wechatRichmediaTemplatePrev.scss';
|
|
15
15
|
import messages from './messages';
|
|
16
|
-
const wechatBody = require('./../assets/images/
|
|
17
|
-
|
|
16
|
+
const wechatBody = require('./../assets/images/wechat_mobile_android.svg');
|
|
17
|
+
const wechatLockScreenAndroid = require('./../assets/images/wechat-home-screen-android.svg');
|
|
18
|
+
const wechatLockScreenIos = require('./../assets/images/home-screen-ios.svg');
|
|
18
19
|
class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-disable-line react/prefer-stateless-function
|
|
19
20
|
preparePreviewData = (mediaList) => {
|
|
20
21
|
const previewMsg = [];
|
|
@@ -23,7 +24,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
|
|
|
23
24
|
const contentData = content[0];
|
|
24
25
|
previewMsg.push(
|
|
25
26
|
<div className="richmedia-image-container">
|
|
26
|
-
<
|
|
27
|
+
<CapImage alt="default" width="100%" height="102px" src={contentData.image_url} />
|
|
27
28
|
{mediaListLength !== 1 && (
|
|
28
29
|
<div className="name-container">
|
|
29
30
|
<CapHeading type="h4" style={{color: "white"}}>{contentData.title}</CapHeading>
|
|
@@ -43,7 +44,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
|
|
|
43
44
|
previewMsg.push(
|
|
44
45
|
<div className="additional-richmedia-container">
|
|
45
46
|
<div><CapLabel type="label9" style={{width: '170px', top: '12px', position: 'relative'}}>{data.title}</CapLabel></div>
|
|
46
|
-
<
|
|
47
|
+
<CapImage alt="default" width="34px" height="34px" src={data.image_url} />
|
|
47
48
|
</div>
|
|
48
49
|
);
|
|
49
50
|
});
|
|
@@ -61,7 +62,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
|
|
|
61
62
|
returnObj.push(
|
|
62
63
|
<div style={{ width: "100%", height: 116, position: "relative" }}>
|
|
63
64
|
<CapRow>
|
|
64
|
-
<
|
|
65
|
+
<CapImage alt="default" width="100%" height="110px" src={contentData.image_url} />
|
|
65
66
|
<div className="preview-overflow-wrap-fields" style={{ position: "absolute", bottom: "5%", left: "10%", width: "auto" }}>{contentData.title ? contentData.title : ""}</div>
|
|
66
67
|
</CapRow>
|
|
67
68
|
{Object.keys(mediaList).length === 1 ?
|
|
@@ -80,7 +81,7 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
|
|
|
80
81
|
{contentData.title}
|
|
81
82
|
</CapColumn>
|
|
82
83
|
<CapColumn style={{ float: "right" }}>
|
|
83
|
-
<
|
|
84
|
+
<CapImage alt="default" width="60px" height="60px" src={contentData.image_url}/>
|
|
84
85
|
</CapColumn>
|
|
85
86
|
</CapRow>
|
|
86
87
|
);
|
|
@@ -91,21 +92,102 @@ class WechatRichmediaTemplatePreview extends React.PureComponent { // eslint-dis
|
|
|
91
92
|
goToEdit(e, path) {
|
|
92
93
|
this.props.onEditClick(e, this.props.templateId, this.props.modeType, path);
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
+
getWechatRichMediaAndroidPreview = (content) => (
|
|
96
|
+
<div className="preview-container">
|
|
97
|
+
<div className="shell-lock-screen-android align-center">
|
|
98
|
+
<div className="lock-screen-preview">
|
|
99
|
+
<CapImage className="preview-image" src={wechatLockScreenAndroid} alt="Preview is being generated"/>
|
|
100
|
+
<div className="wechat-android-sender-id">
|
|
101
|
+
Muji India
|
|
102
|
+
</div>
|
|
103
|
+
<div className="wechat-android-title">
|
|
104
|
+
{content[0].title}
|
|
105
|
+
</div>
|
|
106
|
+
<div className="wechat-android-action-buttons">
|
|
107
|
+
<FormattedMessage {...messages.MarkAsRead} /> <FormattedMessage {...messages.reply} />
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
<div className="main-screen-preview">
|
|
111
|
+
<CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
|
|
112
|
+
<div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
|
|
113
|
+
<div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
|
|
114
|
+
{this.preparePreviewData(content)}
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
getWechatRIchMediaIosPreview = (content) => (
|
|
123
|
+
<div className="preview-container">
|
|
124
|
+
<div className="shell-lock-screen-android align-center">
|
|
125
|
+
<div className="lock-screen-preview">
|
|
126
|
+
<CapImage className="preview-image" src={wechatLockScreenIos} alt="Preview is being generated"/>
|
|
127
|
+
<div className="wechat-ios-sender-id">
|
|
128
|
+
Muji India
|
|
129
|
+
</div>
|
|
130
|
+
<div className="wechat-ios-title">
|
|
131
|
+
{content[0].title}
|
|
132
|
+
</div>
|
|
133
|
+
<div className="wechat-ios-action-reply">
|
|
134
|
+
<FormattedMessage {...messages.reply} />
|
|
135
|
+
</div>
|
|
136
|
+
<div className="wechat-ios-action-cancel">
|
|
137
|
+
<FormattedMessage {...messages.cancel} />
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
<div className="main-screen-preview">
|
|
141
|
+
<CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
|
|
142
|
+
<div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
|
|
143
|
+
<div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
|
|
144
|
+
{this.preparePreviewData(content)}
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
getContentForSlidebox = (content) => {
|
|
95
153
|
return (
|
|
96
|
-
|
|
97
|
-
{this.props.
|
|
98
|
-
<div className=
|
|
99
|
-
<
|
|
100
|
-
|
|
101
|
-
<div className={this.props.type === 'embedded' ? "
|
|
102
|
-
|
|
103
|
-
{this.preparePreviewData(this.props.content)}
|
|
104
|
-
</div>
|
|
154
|
+
!this.props.showLockScreenPreview ? (
|
|
155
|
+
<div className={`preview-container ${this.props.type === 'embedded' ? 'embedded-preview' : ''}`}>
|
|
156
|
+
<div className="shell align-center" id="sms-preview">
|
|
157
|
+
<CapImage className="preview-image" src={wechatBody} alt="Preview is being generated"/>
|
|
158
|
+
<div className={this.props.type === 'embedded' ? "wechatMsgContainerOutbound" : "wechatMsgContainer"}>
|
|
159
|
+
<div className={this.props.type === 'embedded' ? "overflow-handle-preview-outbound" : "overflow-handle-preview"}>
|
|
160
|
+
{this.preparePreviewData(this.props.content)}
|
|
105
161
|
</div>
|
|
106
162
|
</div>
|
|
107
|
-
{this.props.showEdit ? <CapButton onClick={(e) => this.goToEdit(e, this.props.path)} className="preview-buttons" type="primary">{this.props.type === 'embedded' ? <FormattedMessage {...messages.select} /> : <FormattedMessage {...messages.edit} /> }</CapButton> : ""}
|
|
108
163
|
</div>
|
|
164
|
+
{this.props.showEdit ? <CapButton onClick={(e) => this.goToEdit(e, this.props.path)} className="preview-buttons" type="primary">{this.props.type === 'embedded' ? <FormattedMessage {...messages.select} /> : <FormattedMessage {...messages.edit} /> }</CapButton> : ""}
|
|
165
|
+
</div>
|
|
166
|
+
) : (
|
|
167
|
+
<CapTab
|
|
168
|
+
panes={[
|
|
169
|
+
{
|
|
170
|
+
content: this.getWechatRichMediaAndroidPreview(this.props.content),
|
|
171
|
+
tab: <CapIcon type="android" size='m' />,
|
|
172
|
+
key: 'android',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
content: this.getWechatRIchMediaIosPreview(this.props.content),
|
|
176
|
+
tab: <CapIcon type="ios" size='m' />,
|
|
177
|
+
key: 'ios',
|
|
178
|
+
},
|
|
179
|
+
]}
|
|
180
|
+
tabBarStyle={{margin: 'auto', width: '14%'}}
|
|
181
|
+
/>
|
|
182
|
+
)
|
|
183
|
+
);
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
render() {
|
|
187
|
+
return (
|
|
188
|
+
<div>
|
|
189
|
+
{this.props.contentForSlideBox ?
|
|
190
|
+
this.getContentForSlidebox(this.props.content)
|
|
109
191
|
:
|
|
110
192
|
<div className={`preview-container ${this.props.type === 'embedded' ? 'embedded-preview' : ''}`}>
|
|
111
193
|
<div className="shell align-center" id="sms-preview">
|
|
@@ -18,4 +18,16 @@ export default defineMessages({
|
|
|
18
18
|
id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
|
|
19
19
|
defaultMessage: 'Edit',
|
|
20
20
|
},
|
|
21
|
+
MarkAsRead: {
|
|
22
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
|
|
23
|
+
defaultMessage: 'Mark as read',
|
|
24
|
+
},
|
|
25
|
+
reply: {
|
|
26
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
|
|
27
|
+
defaultMessage: 'Reply',
|
|
28
|
+
},
|
|
29
|
+
cancel: {
|
|
30
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
|
|
31
|
+
defaultMessage: 'Cancel',
|
|
32
|
+
},
|
|
21
33
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.shell {
|
|
1
|
+
.shell-v2 {
|
|
2
2
|
position: relative;
|
|
3
3
|
-webkit-transform: translate(-50%);
|
|
4
4
|
transform: translate(-50%);
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
|
|
16
16
|
.msgContainer {
|
|
17
17
|
position: absolute;
|
|
18
|
-
top:
|
|
19
|
-
left:
|
|
18
|
+
top: 20%;
|
|
19
|
+
left: 23%;
|
|
20
20
|
width: 42%;
|
|
21
21
|
height: 336px;
|
|
22
22
|
display: -webkit-box;
|
|
@@ -37,6 +37,9 @@
|
|
|
37
37
|
left: 14px;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
+
&.wechat{
|
|
41
|
+
width: 52%;
|
|
42
|
+
}
|
|
40
43
|
|
|
41
44
|
.message-pop{
|
|
42
45
|
.unicode-disabled{
|
|
@@ -54,7 +57,7 @@
|
|
|
54
57
|
line-height: 14px;
|
|
55
58
|
padding: 0 8px 8px 8px;
|
|
56
59
|
font-size: 10px;
|
|
57
|
-
width:
|
|
60
|
+
width: 100%;
|
|
58
61
|
font-family: 'open-sans';
|
|
59
62
|
.message-pop-item{
|
|
60
63
|
padding: 4px;
|
|
@@ -359,3 +362,9 @@
|
|
|
359
362
|
font-size: 12px;
|
|
360
363
|
}
|
|
361
364
|
}
|
|
365
|
+
|
|
366
|
+
.test-and-preview-container{
|
|
367
|
+
display: flex;
|
|
368
|
+
margin-top: -12px;
|
|
369
|
+
margin-bottom: 12px;
|
|
370
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<rect width="220" height="472" fill="#101211" rx="26"/>
|
|
4
|
+
<rect width="52" height="5" x="84" y="14" fill="#2E2E2E" rx="2.5"/>
|
|
5
|
+
<rect width="52" height="5" x="84" y="455" fill="#2E2E2E" rx="2.5"/>
|
|
6
|
+
<circle cx="45.5" cy="19.5" r="5.5" fill="#2E2E2E"/>
|
|
7
|
+
<circle cx="65.5" cy="19.5" r="3.5" fill="#2E2E2E"/>
|
|
8
|
+
<rect width="202" height="404" x="9" y="36" fill="#E51FA3" rx="9"/>
|
|
9
|
+
<path fill="#F4F5F7" d="M20.692 152h178.616c2.675 0 3.645.278 4.623.801.977.523 1.745 1.29 2.268 2.268.523.978.801 1.948.801 4.623v78.616c0 2.675-.278 3.645-.801 4.623-.523.977-1.29 1.745-2.268 2.268-.978.523-1.948.801-4.623.801H20.692c-2.675 0-3.645-.278-4.623-.801-.977-.523-1.745-1.29-2.268-2.268-.523-.978-.801-1.948-.801-4.623v-78.616c0-2.675.278-3.645.801-4.623.523-.977 1.29-1.745 2.268-2.268.978-.523 1.948-.801 4.623-.801z"/>
|
|
10
|
+
<text fill="#5E5E5E" font-family="Roboto-Regular, Roboto" font-size="10">
|
|
11
|
+
<tspan x="25" y="169">Messages</tspan>
|
|
12
|
+
</text>
|
|
13
|
+
<text fill="#5E5E5E" font-family="Roboto-Regular, Roboto" font-size="10">
|
|
14
|
+
<tspan x="85.146" y="169">now</tspan>
|
|
15
|
+
</text>
|
|
16
|
+
<circle cx="78" cy="167" r="1" fill="#5E5E5E" fill-rule="nonzero"/>
|
|
17
|
+
<path fill="#5E5E5E" d="M116.725 163.048L113.424 166.342 110.123 163.048 109.109 164.062 113.424 168.377 117.739 164.062z"/>
|
|
18
|
+
<path fill="#FFF" fill-opacity=".6" d="M113.75 419.333h-.625v-1.238c0-1.708-1.4-3.095-3.125-3.095s-3.125 1.387-3.125 3.095v1.238h-.625c-.688 0-1.25.557-1.25 1.238v6.19c0 .682.563 1.239 1.25 1.239h7.5c.688 0 1.25-.557 1.25-1.238v-6.19c0-.682-.563-1.239-1.25-1.239zM110 425c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-6h-4v-1.176c0-1.006.897-1.824 2-1.824s2 .818 2 1.824V419z"/>
|
|
19
|
+
<path fill="#FFF" fill-rule="nonzero" d="M86.325 111.884l6.192-8.676-.072-.072c-.84.576-1.908.864-3.204.864-1.248 0-2.472-.348-3.672-1.044-1.2-.696-2.172-1.65-2.916-2.862-.744-1.212-1.116-2.562-1.116-4.05 0-1.44.378-2.79 1.134-4.05.756-1.26 1.776-2.274 3.06-3.042 1.284-.768 2.682-1.152 4.194-1.152 1.632 0 3.09.396 4.374 1.188 1.284.792 2.28 1.818 2.988 3.078.708 1.26 1.062 2.586 1.062 3.978 0 1.32-.27 2.586-.81 3.798-.54 1.212-1.314 2.562-2.322 4.05l-6.444 9.684-2.448-1.692zm3.6-10.62c.96 0 1.854-.234 2.682-.702.828-.468 1.482-1.104 1.962-1.908.48-.804.72-1.686.72-2.646 0-.984-.24-1.878-.72-2.682s-1.134-1.44-1.962-1.908c-.828-.468-1.722-.702-2.682-.702s-1.848.234-2.664.702c-.816.468-1.464 1.104-1.944 1.908-.48.804-.72 1.698-.72 2.682 0 .96.24 1.842.72 2.646.48.804 1.128 1.44 1.944 1.908.816.468 1.704.702 2.664.702zm13.806-2.232c-.648 0-1.194-.222-1.638-.666-.444-.444-.666-.99-.666-1.638 0-.648.222-1.194.666-1.638.444-.444.99-.666 1.638-.666.624 0 1.158.222 1.602.666.444.444.666.99.666 1.638 0 .648-.222 1.194-.666 1.638-.444.444-.978.666-1.602.666zm0 14.184c-.648 0-1.194-.222-1.638-.666-.444-.444-.666-.99-.666-1.638 0-.624.222-1.158.666-1.602.444-.444.99-.666 1.638-.666.624 0 1.158.222 1.602.666.444.444.666.978.666 1.602 0 .648-.222 1.194-.666 1.638-.444.444-.978.666-1.602.666zm17.191-5.508h-11.808v-2.304l11.52-17.028h3.312v16.452h3.168v2.88h-3.168V113h-3.024v-5.292zm0-2.88V92.84h-.144l-8.172 11.988h8.316zm14.527-12.168l-4.32 3.096-1.584-2.34 7.02-5.04h1.944V113h-3.06V92.66zM90.177 134.16c-.56 0-1.074-.17-1.54-.51-.467-.34-.787-.817-.96-1.43l.81-.33c.113.427.323.777.63 1.05.306.273.666.41 1.08.41.413 0 .763-.112 1.05-.335.286-.223.43-.528.43-.915 0-.333-.122-.608-.365-.825-.244-.217-.642-.418-1.195-.605l-.45-.16c-.507-.18-.92-.417-1.24-.71-.32-.293-.48-.7-.48-1.22 0-.34.093-.655.28-.945.186-.29.446-.522.78-.695.333-.173.706-.26 1.12-.26.413 0 .773.077 1.08.23.306.153.551.34.735.56.183.22.311.437.385.65l-.8.34c-.067-.247-.219-.47-.455-.67-.237-.2-.549-.3-.935-.3-.367 0-.68.103-.94.31-.26.207-.39.467-.39.78 0 .28.11.508.33.685.22.177.553.342 1 .495l.47.16c.606.22 1.08.495 1.42.825.34.33.51.778.51 1.345 0 .46-.119.847-.355 1.16-.237.313-.535.543-.895.69-.36.147-.73.22-1.11.22zm4.995 0c-.614 0-1.082-.18-1.405-.54-.324-.36-.485-.863-.485-1.51v-3.21h.85v3.08c0 .487.11.843.33 1.07.22.227.516.34.89.34.286 0 .541-.077.765-.23.223-.153.396-.353.52-.6.123-.247.185-.507.185-.78v-2.88h.85v5.1h-.81v-.74h-.04c-.14.253-.364.467-.67.64-.307.173-.634.26-.98.26zm3.615-5.26h.81v.75h.04c.14-.253.363-.468.67-.645.307-.177.633-.265.98-.265.613 0 1.082.178 1.405.535.323.357.485.842.485 1.455V134h-.85v-3.14c0-.473-.113-.817-.34-1.03-.227-.213-.537-.32-.93-.32-.273 0-.518.077-.735.23-.217.153-.385.355-.505.605s-.18.512-.18.785V134h-.85v-5.1zm8.88 5.26c-.526 0-.986-.145-1.38-.435-.393-.29-.67-.698-.83-1.225l.8-.33c.24.787.71 1.18 1.41 1.18.394 0 .709-.137.945-.41.237-.273.355-.633.355-1.08v-5.02h.85v4.95c0 .5-.091.928-.275 1.285-.183.357-.436.627-.76.81-.323.183-.695.275-1.115.275zm5.065 0c-.613 0-1.081-.18-1.405-.54-.323-.36-.485-.863-.485-1.51v-3.21h.85v3.08c0 .487.11.843.33 1.07.22.227.517.34.89.34.287 0 .542-.077.765-.23.224-.153.397-.353.52-.6.124-.247.185-.507.185-.78v-2.88h.85v5.1h-.81v-.74h-.04c-.14.253-.363.467-.67.64-.306.173-.633.26-.98.26zm3.616-7.32h.85V134h-.85v-7.16zm2.525 7.22c-.18 0-.332-.062-.455-.185-.124-.123-.185-.275-.185-.455 0-.173.061-.322.185-.445.123-.123.275-.185.455-.185.173 0 .321.062.445.185.123.123.185.272.185.445 0 .18-.062.332-.185.455-.124.123-.272.185-.445.185zm3.67-.91c.207-.207.617-.622 1.23-1.245.613-.623 1.04-1.065 1.28-1.325.34-.367.57-.653.69-.86.12-.207.18-.457.18-.75 0-.2-.052-.388-.155-.565-.103-.177-.253-.32-.45-.43-.197-.11-.432-.165-.705-.165-.36 0-.648.105-.865.315-.217.21-.358.438-.425.685l-.78-.31c.067-.213.187-.435.36-.665.173-.23.407-.427.7-.59.293-.163.64-.245 1.04-.245.42 0 .792.09 1.115.27.323.18.575.42.755.72.18.3.27.623.27.97 0 .7-.367 1.423-1.1 2.17l-2.05 2.06h3.23v.81h-4.32v-.85zm6.435.54l1.72-2.41-.02-.02c-.233.16-.53.24-.89.24-.346 0-.686-.097-1.02-.29-.333-.193-.603-.458-.81-.795-.206-.337-.31-.712-.31-1.125 0-.4.105-.775.315-1.125.21-.35.494-.632.85-.845.357-.213.745-.32 1.165-.32.454 0 .859.11 1.215.33.357.22.634.505.83.855.197.35.295.718.295 1.105 0 .367-.075.718-.225 1.055-.15.337-.365.712-.645 1.125l-1.79 2.69-.68-.47zm1-2.95c.267 0 .515-.065.745-.195.23-.13.412-.307.545-.53.134-.223.2-.468.2-.735 0-.273-.066-.522-.2-.745-.133-.223-.315-.4-.545-.53-.23-.13-.478-.195-.745-.195-.266 0-.513.065-.74.195-.226.13-.406.307-.54.53-.133.223-.2.472-.2.745 0 .267.067.512.2.735.134.223.314.4.54.53.227.13.474.195.74.195z"/>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<path fill="#101211" fill-rule="nonzero" d="M30.877 0h158.246C206.202 0 220 14.3 220 32v408c0 17.7-13.798 32-30.877 32H30.877C13.798 472 0 457.7 0 440V32C0 14.3 13.798 0 30.877 0z"/>
|
|
4
|
+
<path fill="#23CCCC" fill-rule="nonzero" d="M55.965 11v3c0 7.2 5.596 13 12.544 13h82.982c6.948 0 12.544-5.8 12.544-13v-3h24.123c12.254 0 22.193 10.3 22.193 23v405c0 12.7-9.939 23-22.193 23H31.842C19.588 462 9.65 451.7 9.65 439V34c0-12.7 9.939-23 22.193-23h24.123z"/>
|
|
5
|
+
<path fill="#2E2E2E" fill-rule="nonzero" d="M76.566 455h66.868c.695 0 1.303.467 1.303 1 0 .533-.608 1-1.303 1H76.566c-.695 0-1.303-.467-1.303-1 0-.533.608-1 1.303-1z" opacity=".4"/>
|
|
6
|
+
<path fill="#FFF" fill-rule="nonzero" d="M24.095 242h171.81c2.674 0 3.644.278 4.622.801.978.523 1.745 1.29 2.268 2.268.523.978.801 1.948.801 4.623v61.616c0 2.675-.278 3.645-.8 4.623-.524.977-1.291 1.745-2.269 2.268-.978.523-1.948.801-4.622.801H24.095c-2.674 0-3.644-.278-4.622-.801-.978-.523-1.745-1.29-2.268-2.268-.523-.978-.801-1.948-.801-4.623v-61.616c0-2.675.278-3.645.8-4.623.524-.977 1.291-1.745 2.269-2.268.978-.523 1.948-.801 4.622-.801zM24.095 134h171.81c2.674 0 3.644.278 4.622.801.978.523 1.745 1.29 2.268 2.268.523.978.801 1.948.801 4.623v68.616c0 2.675-.278 3.645-.8 4.623-.524.977-1.291 1.745-2.269 2.268-.978.523-1.948.801-4.622.801H24.095c-2.674 0-3.644-.278-4.622-.801-.978-.523-1.745-1.29-2.268-2.268-.523-.978-.801-1.948-.801-4.623v-68.616c0-2.675.278-3.645.8-4.623.524-.977 1.291-1.745 2.269-2.268.978-.523 1.948-.801 4.622-.801z"/>
|
|
7
|
+
<path fill="#DFE2E7" d="M16.404 280H203.597V281H16.404z"/>
|
|
8
|
+
<text fill="#97A0AF" font-family="Roboto-Regular, Roboto" font-size="10">
|
|
9
|
+
<tspan x="170.386" y="158">NOW</tspan>
|
|
10
|
+
</text>
|
|
11
|
+
<text fill="#97A0AF" font-family="Roboto-Regular, Roboto" font-size="10">
|
|
12
|
+
<tspan x="29" y="158">MESSAGES</tspan>
|
|
13
|
+
</text>
|
|
14
|
+
<path fill="#FFF" fill-rule="nonzero" d="M112.991 43.3v-3.7c0-1.7-1.35-3.1-2.991-3.1-1.64 0-2.991 1.4-2.991 3.1v3.7h5.886c0-.1.096-.1.096 0zm1.544.5c.772.5 1.254 1.4 1.254 2.5v4.4c0 1.7-1.254 3-2.894 3h-5.79c-1.64 0-2.894-1.3-2.894-3v-4.4c0-1.1.482-2 1.35-2.5 0-.1-.096-.2-.096-.3v-3.9c0-2.6 2.026-4.6 4.535-4.6 2.509 0 4.535 2.1 4.535 4.6v4.2zM70.067 120.223c.026.488.137.884.333 1.19.374.57 1.031.855 1.974.855.422 0 .806-.063 1.153-.188.67-.242 1.006-.676 1.006-1.3 0-.47-.141-.803-.424-1.003-.286-.195-.735-.365-1.345-.51l-1.125-.263c-.735-.172-1.256-.361-1.56-.568-.529-.36-.792-.897-.792-1.612 0-.773.258-1.408.774-1.904.517-.496 1.248-.744 2.194-.744.87 0 1.61.218 2.219.653.609.436.913 1.132.913 2.089H74.33c-.057-.461-.177-.814-.362-1.06-.343-.45-.925-.674-1.747-.674-.663 0-1.14.144-1.43.433-.29.29-.436.625-.436 1.008 0 .422.17.73.509.926.222.125.726.281 1.51.469l1.164.275c.562.133.995.314 1.3.545.528.402.792.986.792 1.752 0 .953-.334 1.635-1.003 2.045-.67.41-1.447.615-2.333.615-1.032 0-1.84-.273-2.425-.82-.584-.543-.87-1.28-.86-2.21h1.058zm8.038-3.498v4.166c0 .32.05.582.147.785.181.375.519.562 1.012.562.709 0 1.191-.328 1.448-.984.14-.352.209-.834.209-1.447v-3.082h1.018V123h-.962l.012-.926c-.132.239-.296.44-.492.604-.388.328-.86.492-1.414.492-.863 0-1.45-.299-1.764-.897-.17-.32-.254-.748-.254-1.283v-4.265h1.04zm5.59 0h.968v.89c.286-.367.59-.63.91-.79.32-.16.676-.241 1.068-.241.86 0 1.44.31 1.742.932.166.34.248.826.248 1.459V123h-1.034v-3.955c0-.383-.055-.691-.164-.926-.181-.39-.509-.586-.984-.586-.241 0-.439.026-.594.076-.278.086-.523.258-.735.516-.17.207-.28.42-.33.642-.051.22-.077.536-.077.946V123h-1.017v-6.275zm7.253 3.21c0 .672.138 1.235.413 1.688.275.453.716.68 1.323.68.471 0 .858-.21 1.162-.63.303-.42.455-1.023.455-1.808 0-.793-.156-1.38-.47-1.76-.312-.381-.698-.572-1.158-.572-.513 0-.928.203-1.247.61-.318.406-.478 1.003-.478 1.793zm1.533-3.322c.463 0 .851.102 1.164.305.181.117.387.322.616.615v-3.17h.979V123h-.916v-.873c-.238.387-.519.666-.843.838-.324.172-.695.258-1.114.258-.674 0-1.258-.294-1.752-.882-.494-.588-.74-1.37-.74-2.347 0-.914.224-1.706.675-2.376.45-.67 1.094-1.005 1.93-1.005zm5.211 4.717c0 .305.108.545.322.72.215.177.47.264.764.264.358 0 .704-.085 1.04-.257.565-.286.848-.752.848-1.4v-.85c-.124.082-.285.15-.48.205-.197.054-.389.093-.577.117l-.617.082c-.369.05-.646.13-.83.24-.313.184-.47.477-.47.88zm2.465-2.133c.234-.031.39-.133.47-.304.045-.094.067-.229.067-.405 0-.36-.123-.62-.37-.782-.247-.162-.6-.243-1.06-.243-.532 0-.909.148-1.13.445-.125.164-.206.408-.244.733h-.95c.019-.774.261-1.312.727-1.615.465-.302 1.005-.454 1.62-.454.712 0 1.29.14 1.735.422.441.281.662.719.662 1.313v3.615c0 .11.021.197.065.264.043.066.134.1.274.1.045 0 .096-.004.153-.01.056-.005.116-.014.18-.026v.78c-.158.046-.278.075-.361.087-.083.012-.196.018-.34.018-.35 0-.605-.13-.763-.387-.083-.137-.141-.33-.175-.58-.207.281-.505.525-.893.732-.389.207-.816.31-1.284.31-.561 0-1.02-.176-1.377-.53-.356-.353-.534-.795-.534-1.326 0-.583.175-1.034.526-1.354.35-.32.81-.518 1.38-.592l1.622-.21zm7.145-2.472h1.125c-.143.402-.461 1.32-.955 2.754-.37 1.078-.678 1.957-.927 2.636-.588 1.602-1.003 2.578-1.244 2.93-.241.351-.656.527-1.244.527-.143 0-.253-.006-.33-.017-.078-.012-.173-.034-.286-.065v-.96c.177.05.305.081.384.093.08.012.15.018.21.018.188 0 .326-.033.415-.097.089-.065.163-.144.223-.237.02-.032.087-.192.204-.48.117-.29.202-.505.254-.645l-2.239-6.457h1.154l1.622 5.109 1.634-5.11zm1.537 7.5c.26-.047.443-.237.548-.569.057-.176.085-.345.085-.51 0-.027 0-.051-.003-.073-.001-.021-.006-.046-.014-.073h-.616v-1.277h1.21v1.183c0 .465-.09.873-.271 1.225-.181.351-.494.568-.939.65v-.556zm6.172-1.225c.037-.723.181-1.352.432-1.887.25-.535.74-1.021 1.467-1.459l1.086-.65c.486-.293.827-.543 1.023-.75.31-.324.464-.695.464-1.113 0-.489-.142-.876-.424-1.163-.283-.288-.66-.431-1.131-.431-.697 0-1.18.273-1.447.82-.144.293-.223.7-.238 1.219h-1.035c.012-.73.142-1.326.39-1.787.442-.813 1.22-1.219 2.336-1.219.927 0 1.604.26 2.032.78.428.519.642 1.097.642 1.734 0 .672-.228 1.246-.684 1.722-.264.278-.737.614-1.42 1.008l-.774.446c-.37.21-.66.412-.87.603-.378.34-.615.717-.713 1.13h4.421V123h-5.557zm7.784-2.027c.03.582.246.984.65 1.207.207.117.44.175.7.175.487 0 .902-.21 1.245-.63.343-.42.586-1.272.729-2.557-.226.371-.506.632-.84.782-.333.15-.692.226-1.077.226-.78 0-1.397-.252-1.851-.756-.454-.504-.681-1.152-.681-1.945 0-.762.224-1.432.672-2.01.449-.578 1.11-.867 1.985-.867 1.18 0 1.994.55 2.442 1.652.249.605.373 1.363.373 2.273 0 1.028-.149 1.938-.446 2.73-.494 1.321-1.33 1.981-2.51 1.981-.792 0-1.393-.214-1.804-.644-.411-.43-.616-.969-.616-1.617h1.029zm1.543-1.723c.403 0 .772-.138 1.105-.413.334-.275.5-.757.5-1.444 0-.618-.15-1.078-.449-1.38-.3-.303-.681-.454-1.145-.454-.497 0-.892.172-1.184.518-.292.346-.438.808-.438 1.386 0 .547.128.981.384 1.304.257.322.665.483 1.227.483zm11.87 1.184c0 .726-.103 1.29-.31 1.693-.385.734-1.116 1.102-2.194 1.102-.622 0-1.153-.175-1.594-.525-.441-.35-.662-.972-.662-1.866v-.615h1.057v.615c0 .469.101.821.303 1.058.202.236.515.354.941.354.6 0 .992-.213 1.176-.639.113-.261.17-.756.17-1.482v-5.736h1.114v6.04zm2.764-3.71v4.167c0 .32.05.582.147.785.181.375.518.562 1.012.562.709 0 1.191-.328 1.448-.984.139-.352.209-.834.209-1.447v-3.082h1.017V123h-.96l.01-.926c-.131.239-.295.44-.491.604-.389.328-.86.492-1.414.492-.863 0-1.45-.299-1.764-.897-.17-.32-.254-.748-.254-1.283v-4.265h1.04zm5.619-2.331h1.018V123h-1.018v-8.607zm6.495 2.332h1.125c-.143.402-.462 1.32-.956 2.754-.369 1.078-.678 1.957-.927 2.636-.588 1.602-1.002 2.578-1.244 2.93-.24.351-.655.527-1.243.527-.144 0-.254-.006-.331-.017-.077-.012-.173-.034-.286-.065v-.96c.177.05.306.081.385.093.079.012.149.018.209.018.188 0 .327-.033.415-.097.09-.065.164-.144.224-.237.019-.032.087-.192.203-.48.117-.29.202-.505.255-.645l-2.24-6.457h1.154l1.623 5.109 1.634-5.11zM78.271 92.566c.11 2.135.905 3.61 2.384 4.426.76.43 1.617.645 2.57.645 1.784 0 3.304-.77 4.562-2.31 1.257-1.54 2.149-4.666 2.674-9.378-.83 1.36-1.856 2.317-3.079 2.868-1.223.552-2.54.828-3.949.828-2.86 0-5.124-.924-6.79-2.772-1.664-1.848-2.497-4.225-2.497-7.133 0-2.793.822-5.25 2.467-7.369 1.644-2.12 4.07-3.18 7.276-3.18 4.326 0 7.311 2.02 8.956 6.059.912 2.22 1.368 4.999 1.368 8.336 0 3.767-.546 7.104-1.638 10.012-1.81 4.84-4.878 7.261-9.204 7.261-2.902 0-5.107-.787-6.613-2.363-1.507-1.575-2.26-3.552-2.26-5.93h3.773zm5.66-6.316c1.478 0 2.83-.505 4.052-1.515 1.224-1.01 1.835-2.775 1.835-5.296 0-2.263-.55-3.95-1.648-5.06-1.099-1.11-2.498-1.664-4.198-1.664-1.824 0-3.272.634-4.343 1.901-1.071 1.268-1.607 2.961-1.607 5.081 0 2.005.47 3.599 1.41 4.78.94 1.182 2.44 1.773 4.499 1.773zm16.975-8.959h4.333v4.684h-4.333V77.29zm0 18.025h4.333V100h-4.333v-4.684zm21.08-6.209V75.164l-9.515 13.943h9.515zm.062 10.893v-7.52H109.03V88.7l13.6-19.552h3.15v19.96h4.375v3.372h-4.374V100h-3.732zm13.534-21.785V75.25c2.695-.272 4.575-.727 5.639-1.364 1.064-.638 1.859-2.145 2.384-4.523h2.944V100h-3.98V78.215h-6.987z"/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
|
|
2
|
+
<g fill="none" fill-rule="evenodd">
|
|
3
|
+
<rect width="220" height="472" fill="#101211" rx="26"/>
|
|
4
|
+
<rect width="202" height="404" x="9" y="36" fill="#F4F5F7" rx="9"/>
|
|
5
|
+
<rect width="182" height="136" x="19" y="92" fill="#F4F5F7" rx="17.5"/>
|
|
6
|
+
<path fill="#CF0E8F" d="M18 36h184c4.97 0 9 4.03 9 9v6H9v-6c0-4.97 4.03-9 9-9z"/>
|
|
7
|
+
<path fill="#FFF" d="M9 404h202v28.5c0 4.142-3.358 7.5-7.5 7.5h-187c-4.142 0-7.5-3.358-7.5-7.5V404z"/>
|
|
8
|
+
<path fill="#E51FA3" d="M9 51H211V82H9z" transform="matrix(1 0 0 -1 0 133)"/>
|
|
9
|
+
<rect width="52" height="5" x="84" y="14" fill="#2E2E2E" rx="2.5"/>
|
|
10
|
+
<rect width="52" height="5" x="84" y="455" fill="#2E2E2E" rx="2.5"/>
|
|
11
|
+
<circle cx="45.5" cy="19.5" r="5.5" fill="#2E2E2E"/>
|
|
12
|
+
<circle cx="65.5" cy="19.5" r="3.5" fill="#2E2E2E"/>
|
|
13
|
+
<text fill="#FFF" font-family="Roboto-Regular, Roboto" font-size="12" letter-spacing=".175">
|
|
14
|
+
<tspan x="49.5" y="71">Sender ID</tspan>
|
|
15
|
+
</text>
|
|
16
|
+
<circle cx="199" cy="63" r="1" fill="#FFF"/>
|
|
17
|
+
<circle cx="199" cy="70" r="1" fill="#FFF"/>
|
|
18
|
+
<circle cx="199" cy="66.5" r="1" fill="#FFF"/>
|
|
19
|
+
<path fill="#FFF" d="M28 66c0 .279-.226.505-.505.505h-5.556l2.42 2.42c.198.197.198.518 0 .716-.198.198-.52.198-.718 0l-2.934-2.934c-.39-.39-.39-1.024 0-1.414l2.934-2.934c.198-.198.52-.198.718 0 .198.198.198.519 0 .717l-2.42 2.419h5.556c.279 0 .505.226.505.505z"/>
|
|
20
|
+
<path fill="#B3BAC5" d="M189.006 427.286L201 422.143 189.006 417 189 421 197.571 422.143 189 423.286z"/>
|
|
21
|
+
</g>
|
|
22
|
+
</svg>
|