@capillarytech/creatives-library 3.0.5 → 3.0.6

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 (71) hide show
  1. package/components/FormBuilder/index.js +15 -15
  2. package/containers/Dashboard/index.js +5 -0
  3. package/containers/Email/index.js +5 -4
  4. package/containers/Line/Create/index.js +3 -3
  5. package/containers/MobilePush/Edit/index.js +2 -2
  6. package/containers/WeChat/MapTemplates/index.js +64 -58
  7. package/containers/WeChat/RichmediaTemplates/Create/index.js +3 -3
  8. package/index.html +3 -0
  9. package/package.json +1 -1
  10. package/routes.js +1 -3
  11. package/v2Components/FormBuilder/index.js +12 -18
  12. package/v2Components/NavigationBar/index.js +7 -4
  13. package/v2Components/NavigationBar/messages.js +6 -2
  14. package/v2Containers/Cap/index.js +2 -1
  15. package/v2Containers/CreativesContainer/SlideBoxContent.js +6 -2
  16. package/v2Containers/Email/index.js +27 -42
  17. package/v2Containers/Email/initialSchema.js +2 -58
  18. package/v2Containers/Email/messages.js +4 -0
  19. package/v2Containers/Email/sagas.js +0 -2
  20. package/v2Containers/MobilePush/Create/actions.js +2 -2
  21. package/v2Containers/MobilePush/Create/index.js +17 -16
  22. package/v2Containers/MobilePush/Create/messages.js +1 -1
  23. package/v2Containers/MobilePush/Create/sagas.js +3 -0
  24. package/v2Containers/MobilePush/Edit/index.js +13 -7
  25. package/v2Containers/MobilePush/initialSchema.js +3 -0
  26. package/v2Containers/MobilepushWrapper/index.js +3 -1
  27. package/v2Containers/Templates/index.js +14 -11
  28. package/assets/android-message-gui-2.svg +0 -55
  29. package/components/CallTaskPreview/_callTaskPreview.scss +0 -17
  30. package/components/CallTaskPreview/images/Footer.png +0 -0
  31. package/components/CallTaskPreview/images/Header.png +0 -0
  32. package/components/CallTaskPreview/index.js +0 -37
  33. package/components/CallTaskPreview/messages.js +0 -13
  34. package/components/CallTaskPreview/tests/index.test.js +0 -15
  35. package/components/CmsTemplatesComponent/index.js +0 -33
  36. package/components/CmsTemplatesComponent/messages.js +0 -17
  37. package/components/CmsTemplatesComponent/tests/index.test.js +0 -10
  38. package/components/EmailMobilePreview/index.js +0 -129
  39. package/components/EmailMobilePreview/index.scss +0 -55
  40. package/components/EmailPreviewV2/_emailPreviewV2.scss +0 -69
  41. package/components/EmailPreviewV2/index.js +0 -132
  42. package/components/EmailPreviewV2/messages.js +0 -41
  43. package/components/EmailPreviewV2/tests/index.test.js +0 -10
  44. package/components/MobilePushPreviewV2/index.js +0 -120
  45. package/components/MobilePushPreviewV2/messages.js +0 -13
  46. package/components/MobilePushPreviewV2/tests/index.test.js +0 -10
  47. package/components/NewCallTask/_newCallTask.scss +0 -9
  48. package/components/NewCallTask/index.js +0 -152
  49. package/components/NewCallTask/messages.js +0 -29
  50. package/components/NewCallTask/tests/index.test.js +0 -10
  51. package/components/SmsPreviewV2/_smsPreviewV2.scss +0 -353
  52. package/components/SmsPreviewV2/index.js +0 -69
  53. package/components/SmsPreviewV2/messages.js +0 -13
  54. package/components/SmsPreviewV2/tests/index.test.js +0 -10
  55. package/v2Components/DateFilter/index.js +0 -349
  56. package/v2Components/DateFilter/messages.js +0 -17
  57. package/v2Components/DateFilter/tests/index.test.js +0 -15
  58. package/v2Components/DateRange/index.js +0 -113
  59. package/v2Components/DateRange/messages.js +0 -13
  60. package/v2Components/DateRange/tests/index.test.js +0 -10
  61. package/v2Components/PageHeader/_pageHeader.scss +0 -22
  62. package/v2Components/PageHeader/index.js +0 -37
  63. package/v2Components/PageHeader/messages.js +0 -13
  64. package/v2Components/PageHeader/tests/index.test.js +0 -10
  65. package/v2Components/Sidebar/_sidebar.scss +0 -115
  66. package/v2Components/Sidebar/index.js +0 -208
  67. package/v2Components/Sidebar/messages.js +0 -21
  68. package/v2Components/Sidebar/tests/index.test.js +0 -10
  69. package/v2Components/SmsEditor/index.js +0 -55
  70. package/v2Components/SmsEditor/tests/index.test.js +0 -10
  71. package/v2Components/TopBar/_topbar.scss +0 -46
@@ -1,120 +0,0 @@
1
- /**
2
- *
3
- * PreviewSideBar
4
- *
5
- */
6
-
7
- import PropTypes from 'prop-types';
8
-
9
- import React from 'react';
10
- import { CapButton } from '@capillarytech/cap-ui-library';
11
- // import styled from 'styled-components';
12
-
13
- import { FormattedMessage } from 'react-intl';
14
- import { Button } from 'antd';
15
- import { get, map, isEmpty} from 'lodash';
16
- import TemplatePreview from '../TemplatePreview';
17
- import '../PreviewSideBar/_previewsidebar.scss';
18
- import messages from './messages';
19
- const ButtonGroup = Button.Group;
20
-
21
- class MobilePushPreviewV2 extends React.Component { // eslint-disable-line react/prefer-stateless-function
22
- constructor(props) {
23
- super(props);
24
- this.goToEdit = this.goToEdit.bind(this);
25
- this.goToDuplicate = this.goToDuplicate.bind(this);
26
- this.changeDevice = this.changeDevice.bind(this);
27
- const hasAndroid = get(props, 'templateData.versions.base.ANDROID') || get(props, 'templateData.androidContent');
28
- const hasIos = get(props, 'templateData.versions.base.IOS') || get(props, 'templateData.iosContent');
29
- let device = "android";
30
- if (hasAndroid) {
31
- device = 'android';
32
- } else if (hasIos) {
33
- device = 'ios';
34
- }
35
- this.state = {
36
- device,
37
- content: this.setContent(props.templateData, device),
38
- };
39
- }
40
-
41
- setContent = (templateData, device) => {
42
- const androidContent = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
43
- const iosContent = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent');
44
-
45
- const data = device === "android" ? androidContent : iosContent;
46
- const content = {
47
- header: data.title,
48
- bodyText: data.message,
49
- bodyImage: data.expandableDetails && data.expandableDetails.image,
50
- actions: [],
51
- appName: templateData.appName,
52
- };
53
- if (data.expandableDetails && data.expandableDetails.ctas && data.expandableDetails.ctas.length) {
54
- if (device === "android" ) {
55
- content.actions = map(data.expandableDetails.ctas, (cta) => ({label: cta.actionText}));
56
- } else {
57
- content.actions = [{label: data.expandableDetails.ctas[0].actionLabel}, {label: data.expandableDetails.ctas[0].actionLabel2}];
58
- }
59
- }
60
- return content;
61
- }
62
- goToDuplicate() {
63
- this.props.onDuplicateClick(this.props.templateData);
64
- this.props.handleClose();
65
- }
66
- changeDevice(ev) {
67
- const device = ev.target.value;
68
- const content = this.setContent(this.props.templateData, device);
69
- this.setState({device, content });
70
- }
71
- goToEdit(e, path) {
72
- this.props.onEditClick(e, this.props.templateData._id, this.props.templateData.modeType, path);
73
- }
74
- render() {
75
- const {templateData, channel} = this.props;
76
-
77
- const hasAndroid = get(templateData, 'versions.base.ANDROID') || get(templateData, 'androidContent');
78
- const hasIos = get(templateData, 'versions.base.IOS') || get(templateData, 'iosContent');
79
-
80
- const {device, content} = this.state;
81
-
82
- return (
83
-
84
- <div>
85
- <div className="devices">
86
- {!isEmpty(templateData) && hasAndroid && hasIos &&
87
- <ButtonGroup onClick={this.changeDevice}>
88
- <CapButton type={device === "android" ? "primary" : "secondary"} value={"android"}>Android</CapButton>
89
- <CapButton type={device === "iphone" ? "primary" : "secondary"} value={"iphone"}>IOS</CapButton>
90
- </ButtonGroup>}
91
- </div>
92
- <TemplatePreview
93
- device={device === "android" ? "android" : "iphone"}
94
- channel={channel}
95
- content={content || ''}
96
- templateData={templateData}
97
- >
98
- </TemplatePreview>
99
-
100
-
101
- </div>
102
-
103
-
104
- );
105
- }
106
-
107
- }
108
-
109
- MobilePushPreviewV2.propTypes = {
110
- templateData: PropTypes.object.isRequired,
111
- channel: PropTypes.string.isRequired,
112
- showPreview: PropTypes.bool,
113
- handleClose: PropTypes.func,
114
- onEditClick: PropTypes.func,
115
- onDuplicateClick: PropTypes.func,
116
- location: PropTypes.object,
117
- embedded: PropTypes.bool,
118
- };
119
-
120
- export default MobilePushPreviewV2;
@@ -1,13 +0,0 @@
1
- /*
2
- * MobilePushPreviewV2 Messages
3
- *
4
- * This contains all the text for the MobilePushPreviewV2 component.
5
- */
6
- import { defineMessages } from 'react-intl';
7
-
8
- export default defineMessages({
9
- header: {
10
- id: 'app.components.MobilePushPreviewV2.header',
11
- defaultMessage: 'This is the MobilePushPreviewV2 component !',
12
- },
13
- });
@@ -1,10 +0,0 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import MobilePushPreviewV2 from '../index';
5
-
6
- describe('<MobilePushPreviewV2 />', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(false);
9
- });
10
- });
@@ -1,9 +0,0 @@
1
- .new-call-task-done-button {
2
- margin-top: 24px;
3
- }
4
-
5
- .new-call-task-tagList {
6
- position: absolute;
7
- right: 0;
8
- top: -10px;
9
- }
@@ -1,152 +0,0 @@
1
- /**
2
- *
3
- * NewCallTask
4
- *
5
- */
6
-
7
- import React from 'react';
8
- import PropTypes from 'prop-types';
9
- import { CapRow, CapColumn, CapInput, CapButton, CapSpin } from '@capillarytech/cap-ui-library';
10
- import { injectIntl, intlShape } from 'react-intl';
11
- import TagList from '../../containers/TagList';
12
- import CallTaskPreview from '../CallTaskPreview';
13
- import messages from './messages';
14
- import './_newCallTask.scss';
15
-
16
- class NewCallTask extends React.Component { // eslint-disable-line react/prefer-stateless-function
17
- constructor(props) {
18
- super(props);
19
- this.state = this.getInitialState();
20
- }
21
-
22
- getInitialState = () => {
23
- const { templateData } = this.props;
24
- return {
25
- subject: templateData && templateData.subject ? templateData.subject : '',
26
- messageBody: templateData && templateData.messageBody ? templateData.messageBody : '',
27
- description: templateData && templateData.description ? templateData.description : '',
28
- };
29
- }
30
-
31
- onTagSelect = (data) => {
32
- this.insertAtCursor(`{{${data}}}`);
33
- }
34
-
35
- setInputRef = (textarea) => {
36
- this.textArea = textarea;
37
- }
38
-
39
- insertAtCursor = (myValue) => {
40
- this.textArea.focus();
41
- const textAreaRef = this.textArea.textAreaRef;
42
- let pos = textAreaRef.selectionEnd + myValue.length;
43
- //IE support
44
- let newMessage = textAreaRef.value + myValue;
45
- if (document.selection) {
46
- this.textArea.focus();
47
- const sel = document.selection.createRange();
48
- sel.text = myValue;
49
- } else if (textAreaRef.selectionStart || textAreaRef.selectionStart === '0') { //MOZILLA and others
50
- const startPos = textAreaRef.selectionStart;
51
- const endPos = textAreaRef.selectionEnd;
52
- newMessage = textAreaRef.value.substring(0, startPos) + myValue + textAreaRef.value.substring(endPos, textAreaRef.value.length);
53
- pos = startPos + myValue.length;
54
- }
55
- this.setState({
56
- messageBody: newMessage,
57
- }, () => {
58
- textAreaRef.selectionStart = pos;
59
- textAreaRef.selectionEnd = pos;
60
- });
61
- };
62
-
63
- updateSubject = (e) => {
64
- this.setState({
65
- subject: e.target.value,
66
- });
67
- }
68
-
69
- updateMessageBody = (e) => {
70
- this.setState({
71
- messageBody: e.target.value,
72
- });
73
- }
74
-
75
- updateDescription = (e) => {
76
- this.setState({
77
- description: e.target.value,
78
- });
79
- }
80
-
81
- submitForm = () => {
82
- this.props.onCallTaskSubmit(this.state);
83
- }
84
-
85
- render() {
86
- const { intl, isLoading, metaEntities } = this.props;
87
- const { formatMessage } = intl;
88
- const { subject, messageBody, description } = this.state;
89
- const tags = metaEntities && metaEntities.tags ? metaEntities.tags.standard : [];
90
- return (
91
- <CapSpin spinning={isLoading}>
92
- <CapRow gutter={16}>
93
- <CapColumn span={12}>
94
- <div style={{ height: 'calc(100vh - 187px)', overflowY: 'auto', paddingRight: "8px" }}>
95
- <div style={{ marginBottom: '34px' }}>
96
- <CapInput
97
- label={formatMessage(messages.callTaskTitle)}
98
- onChange={this.updateSubject}
99
- value={subject}
100
- isRequired
101
- />
102
- </div>
103
- <div style={{ position: 'relative', marginBottom: '34px' }}>
104
- <TagList
105
- className="new-call-task-tagList"
106
- label={formatMessage(messages.personalisationTags)}
107
- tags={tags}
108
- onTagSelect={this.onTagSelect}
109
- />
110
- <CapInput.TextArea
111
- setInputRef={this.setInputRef}
112
- label={formatMessage(messages.messageHeader)}
113
- onChange={this.updateMessageBody}
114
- value={messageBody}
115
- isRequired
116
- />
117
- </div>
118
- <CapInput.TextArea
119
- label={formatMessage(messages.description)}
120
- onChange={this.updateDescription}
121
- value={description}
122
- isRequired
123
- />
124
- </div>
125
- <CapButton
126
- disabled={!subject || !messageBody || !description}
127
- className="new-call-task-done-button"
128
- onClick={this.submitForm}>
129
- {formatMessage(messages.done)}
130
- </CapButton>
131
- </CapColumn>
132
- <CapColumn span={12}>
133
- <CallTaskPreview
134
- subject={subject}
135
- messageBody={messageBody}
136
- />
137
- </CapColumn>
138
- </CapRow>
139
- </CapSpin>
140
- );
141
- }
142
- }
143
-
144
- NewCallTask.propTypes = {
145
- intl: intlShape.isRequired,
146
- onCallTaskSubmit: PropTypes.func,
147
- templateData: PropTypes.object,
148
- isLoading: PropTypes.bool,
149
- metaEntities: PropTypes.object,
150
- };
151
-
152
- export default injectIntl(NewCallTask);
@@ -1,29 +0,0 @@
1
- /*
2
- * NewCallTask Messages
3
- *
4
- * This contains all the text for the NewCallTask component.
5
- */
6
- import { defineMessages } from 'react-intl';
7
-
8
- export default defineMessages({
9
- callTaskTitle: {
10
- id: 'app.components.NewCallTask.callTaskTitle',
11
- defaultMessage: 'Call Task title',
12
- },
13
- messageHeader: {
14
- id: 'app.components.NewCallTask.messageHeader',
15
- defaultMessage: 'Message',
16
- },
17
- description: {
18
- id: 'app.components.NewCallTask.description',
19
- defaultMessage: 'Description',
20
- },
21
- done: {
22
- id: 'app.components.NewCallTask.done',
23
- defaultMessage: 'Done',
24
- },
25
- personalisationTags: {
26
- id: 'app.components.NewCallTask.personalisationTags',
27
- defaultMessage: 'Personalisation tags',
28
- },
29
- });
@@ -1,10 +0,0 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import NewCallTask from '../index';
5
-
6
- describe('<NewCallTask />', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(false).toEqual(false);
9
- });
10
- });
@@ -1,353 +0,0 @@
1
- .shell {
2
- position: relative;
3
- -webkit-transform: translate(-50%);
4
- transform: translate(-50%);
5
- left: 50%;
6
- padding: 0 10px;
7
- width: 450px;
8
-
9
- .preview-image {
10
- width: 51%;
11
- &.sms {
12
- width: 45%;
13
- }
14
- }
15
-
16
- .msgContainer {
17
- position: absolute;
18
- top: 18%;
19
- left: 28.8%;
20
- width: 42%;
21
- height: 336px;
22
- display: -webkit-box;
23
- display: -ms-flexbox;
24
- display: flex;
25
-
26
- .sms-icon{
27
- top: 0;
28
- left: 2px;
29
- width: 25px;
30
- position: absolute;
31
- }
32
- &.sms{
33
- height: 290px;
34
- width: 40%;
35
- .sms-icon{
36
- width: 20px;
37
- left: 14px;
38
- }
39
- }
40
-
41
- .message-pop{
42
- .unicode-disabled{
43
- font-size: 16px;
44
- }
45
- &.sms {
46
- max-height: 100%;
47
- position: absolute;
48
- // width: initial;
49
- overflow: auto;
50
- top: 0;
51
- left: 17%;
52
- white-space: pre-wrap;
53
- word-break: break-word;
54
- line-height: 14px;
55
- padding: 0 8px 8px 8px;
56
- font-size: 10px;
57
- width: 80%;
58
- font-family: 'open-sans';
59
- .message-pop-item{
60
- padding: 4px;
61
- background: #3F51B5;
62
- color: #FFFFFF;
63
- margin-top: 8px;
64
- border-radius: 4px;
65
- min-height: 26px;
66
- &:first-child{
67
- margin-top: 0;
68
- }
69
- }
70
- }
71
- &:not(.sms){
72
- padding: 4px;
73
- background: #3F51B5;
74
- position: absolute;
75
- // width: initial;
76
- overflow: auto;
77
- top: 0;
78
- left: 17%;
79
- white-space: pre-wrap;
80
- word-break: break-word;
81
- border-radius: 4px;
82
- max-height: 100%;
83
- color: #FFFFFF;
84
- width: 70%;
85
- min-height: 26px;
86
- line-height: 14px;
87
- padding: 8px;
88
- font-size: 10px;
89
- font-family: 'open-sans';
90
- }
91
- }
92
- }
93
- .android-push-message-Container, .iphone-push-message-Container{
94
- position: absolute;
95
- top: 11%;
96
- left: 28.8%;
97
- width: 42%;
98
- height: 336px;
99
- overflow: auto;
100
- display: -webkit-box;
101
- display: -ms-flexbox;
102
- display: flex;
103
- .message-pop{
104
- position: absolute;
105
- // width: initial;
106
- overflow: auto;
107
- word-wrap: break-word;
108
- white-space: pre-wrap;
109
- border-top-left-radius: 4px;
110
- border-top-right-radius: 4px;
111
- max-height: 100%;
112
- width: 100%;
113
- min-height: 26px;
114
- line-height: 15px;
115
- font-size: 10px;
116
- .body-image{
117
- img{
118
- max-width: 100%;
119
- max-height: 90px;
120
- margin: auto;
121
- display: block;
122
- }
123
- }
124
- }
125
- }
126
- .android-push-message-Container{
127
- .title, .body-text, .body-image, .app-name{
128
- background-color: #FFFFFF;
129
- color: #333333;
130
- }
131
- .app-name{
132
- color: #5D5D5D;
133
- font-weight: 600;
134
- padding: 8px 8px 4px 8px;
135
- }
136
- .title, .body-image{
137
- padding: 0 8px 0 8px;
138
-
139
- }
140
- .body-text{
141
- padding: 0 8px 4px 8px;
142
- color: #5a5959;
143
- }
144
- .title{
145
- overflow: hidden;
146
- white-space: nowrap;
147
- text-overflow: ellipsis;
148
- }
149
- .actions{
150
- background-color: #EEEEEE;
151
- height: 32px;
152
- padding: 4px;
153
- .action{
154
- line-height: 24px;
155
- font-size: 10px;
156
- font-weight: 600;
157
- color: #1970DA;
158
- height: 12px;
159
- margin-left: 8px;
160
- }
161
- }
162
- }
163
- .iphone-push-message-Container{
164
- top: 8%;
165
- .message-pop{
166
- border-radius: 4px;
167
- word-wrap: break-word;
168
- }
169
- .title, .body-text, .body-image, .app-name{
170
- background-color: #FFFFFF;
171
- color: #333333;
172
- }
173
- .body-image{
174
- padding-top: 8px;
175
- }
176
- .title{
177
- overflow: hidden;
178
- white-space: nowrap;
179
- text-overflow: ellipsis;
180
- }
181
- .app-name{
182
- padding: 8px;
183
- color: #5D5D5D;
184
- border-bottom: solid 1px #D6D6D6;
185
- .material-icons{
186
- font-size: 12px;
187
- float: right;
188
- }
189
- }
190
- .title, .body-text{
191
- padding: 4px;
192
- }
193
- .title{
194
- overflow: hidden;
195
- white-space: nowrap;
196
- text-overflow: ellipsis;
197
- }
198
- .body-text{
199
- border-bottom-left-radius: 4px;
200
- border-bottom-right-radius: 4px;
201
- }
202
- .actions{
203
- background-color: #FFFFFF;
204
- opacity: 0.8;
205
- height: 32px;
206
- line-height: 26px;
207
- margin-top: 4px;
208
- border-radius: 6px;
209
- text-align: center;
210
- padding: 4px;
211
- .action{
212
- font-size: 12px;
213
- font-weight: 600;
214
- color: #000000;
215
- text-align: center;
216
- margin-left: 8px;
217
- }
218
- }
219
- }
220
- }
221
-
222
- .align-center {
223
- text-align: center;
224
- }
225
-
226
- .align-left {
227
- text-align: left;
228
- }
229
-
230
- .preview-container{
231
- .preview-info {
232
- // font-family: 'proxima-nova';
233
- font-weight: 600;
234
- font-size: 16px;
235
- text-align: center;
236
- }
237
- }
238
-
239
- .preview-container.embedded-preview{
240
- .preview-image {
241
- width: 38% !important;
242
- }
243
- .message-pop{
244
- left: 21% !important;
245
- width: 67% !important;
246
- }
247
- .sms-icon{
248
- left: 12% !important;
249
- }
250
- }
251
-
252
-
253
-
254
- #slidebox-container {
255
- left: 60vw;
256
- width: 40vw;
257
-
258
- .shell {
259
- position: relative;
260
- -webkit-transform: translate(-50%);
261
- transform: translate(-50%);
262
- left: 50%;
263
- padding: 0 10px;
264
- width: initial;
265
-
266
- .preview-image {
267
- &.sms{
268
- width: 45%;
269
- }
270
- }
271
-
272
-
273
- .msgContainer {
274
- position: absolute;
275
- top: 14%;
276
- left: 29%;
277
- width: 42%;
278
- height: 275px;
279
- display: -webkit-box;
280
- display: -ms-flexbox;
281
- display: flex;
282
-
283
- .sms-icon{
284
- top: 6%;
285
- left: 2%;
286
- width: 12%;
287
- position: absolute;
288
- }
289
-
290
- &.sms{
291
- height: 290px;
292
- width: 40%;
293
- top: 16%;
294
- .sms-icon{
295
- left: 7%;
296
- }
297
- }
298
- .message-pop{
299
- &.sms {
300
- max-height: 100%;
301
- position: absolute;
302
- // width: initial;
303
- overflow: auto;
304
- top: 6%;
305
- left: 17%;
306
- width: 80%;
307
- white-space: pre-wrap;
308
- word-break: break-word;
309
- line-height: 14px;
310
- padding: 0 8px 8px 8px;
311
- font-size: 10px;
312
- font-family: 'open-sans';
313
- .message-pop-item{
314
- padding: 8px;
315
- background: #3F51B5;
316
- color: #FFFFFF;
317
- margin-top: 8px;
318
- border-radius: 4px;
319
- min-height: 26px;
320
- &:first-child{
321
- margin-top: 0;
322
- }
323
- }
324
- }
325
- &:not(.sms){
326
- padding: 8px 8px;
327
- background: #3F51B5;
328
- position: absolute;
329
- width: 65%;
330
- top: 15%;
331
- left: 19%;
332
- word-break: break-all;
333
- border-radius: 6px;
334
- max-height: 100%;
335
- overflow: auto;
336
- color: #FFFFFF;
337
- line-height: 14px;
338
- font-family: "open-sans";
339
- font-size: 10px;
340
- }
341
- }
342
- }
343
- }
344
- }
345
- .app-icon{
346
- width: 10px;
347
- height: 10px;
348
- opacity: 1;
349
- display: inline-block;
350
- background-color: #333333;
351
- margin-right: 4px;
352
- }
353
-