@plusscommunities/pluss-newsletter-web-sharing 1.2.8

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 (52) hide show
  1. package/.babelrc +3 -0
  2. package/dist/index.cjs.js +7451 -0
  3. package/dist/index.esm.js +7399 -0
  4. package/dist/index.umd.js +7434 -0
  5. package/package.default.json +43 -0
  6. package/package.json +45 -0
  7. package/package.test.json +43 -0
  8. package/rollup.config.js +59 -0
  9. package/src/actions/NewsActions.js +102 -0
  10. package/src/actions/index.js +9 -0
  11. package/src/actions/types.js +10 -0
  12. package/src/components/ActivityText.js +73 -0
  13. package/src/components/MakerPopup/index.js +3 -0
  14. package/src/components/PreviewFull.js +32 -0
  15. package/src/components/PreviewGrid.js +19 -0
  16. package/src/components/PreviewWidget.js +28 -0
  17. package/src/components/Reactions/index.js +3 -0
  18. package/src/components/ViewFull.js +19 -0
  19. package/src/components/ViewWidget.js +17 -0
  20. package/src/components/index.js +25 -0
  21. package/src/components/text/index.js +4 -0
  22. package/src/config/index.js +9 -0
  23. package/src/feature.config.default.js +235 -0
  24. package/src/feature.config.js +235 -0
  25. package/src/feature.config.sharing.js +235 -0
  26. package/src/feature.config.test.js +235 -0
  27. package/src/helper/index.js +17 -0
  28. package/src/images/full.png +0 -0
  29. package/src/images/fullNoTitle.png +0 -0
  30. package/src/images/fullNoTitleCondensed.png +0 -0
  31. package/src/images/previewWidget.png +0 -0
  32. package/src/images/widget.png +0 -0
  33. package/src/index.js +33 -0
  34. package/src/js/Events.js +26 -0
  35. package/src/js/index.js +20 -0
  36. package/src/reducers/NewsReducer.js +82 -0
  37. package/src/screens/Newsletter/AddNewsletterEntry.js +1186 -0
  38. package/src/screens/Newsletter/AvailableNews.js +124 -0
  39. package/src/screens/Newsletter/GenerateNewsletter.js +891 -0
  40. package/src/screens/Newsletter/ListNewsletterEntries.js +234 -0
  41. package/src/screens/Newsletter/NewsHub.js +328 -0
  42. package/src/screens/Newsletter/NewsHubAnalytics.js +320 -0
  43. package/src/screens/Newsletter/NewsletterAnalytics.js +140 -0
  44. package/src/screens/Newsletter/NewsletterSubmission.js +476 -0
  45. package/src/screens/Newsletter/NewsletterSubmissions.js +278 -0
  46. package/src/screens/Newsletter/NewsletterTemplate.js +1051 -0
  47. package/src/screens/Newsletter/PublishAvailableNews.js +450 -0
  48. package/src/session/index.js +7 -0
  49. package/src/webapi/eventActions.js +18 -0
  50. package/src/webapi/helper.js +4 -0
  51. package/src/webapi/index.js +11 -0
  52. package/src/webapi/newsletterActions.js +153 -0
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@plusscommunities/pluss-newsletter-web",
3
+ "version": "1.2.2",
4
+ "description": "Extension package to enable newsletter on Pluss Communities Platform",
5
+ "main": "dist/index.cjs.js",
6
+ "scripts": {
7
+ "build": "npm i && rollup -c",
8
+ "core": "npm i @plusscommunities/pluss-core-web@latest",
9
+ "patch": "npm version patch",
10
+ "upload": "npm run build && npm publish --access public && rm -rf node_modules",
11
+ "upload:p": "npm run patch && npm run upload",
12
+ "upload:cp": "npm run core && npm run patch && npm run upload",
13
+ "copy:add": "run(){ arg1=${1:-default}; test -f package.$arg1.json || cp package.default.json package.$arg1.json; test -f src/feature.config.$arg1.js || cp src/feature.config.default.js src/feature.config.$arg1.js; }; run",
14
+ "copy:set": "run(){ arg1=${1:-default}; cp -f package.$arg1.json package.json; cp -f src/feature.config.$arg1.js src/feature.config.js; }; run"
15
+ },
16
+ "author": "Phillip Suh",
17
+ "license": "ISC",
18
+ "devDependencies": {
19
+ "@babel/cli": "^7.14.3",
20
+ "@babel/core": "^7.14.3",
21
+ "@babel/plugin-transform-runtime": "^7.14.3",
22
+ "@babel/preset-env": "^7.14.2",
23
+ "@babel/preset-react": "^7.13.13",
24
+ "@rollup/plugin-babel": "^5.3.0",
25
+ "@rollup/plugin-image": "^2.0.6",
26
+ "@rollup/plugin-json": "^4.1.0",
27
+ "autoprefixer": "^10.2.6",
28
+ "rollup": "^2.50.1",
29
+ "rollup-plugin-local-resolve": "^1.0.7",
30
+ "rollup-plugin-styles": "^3.14.1"
31
+ },
32
+ "dependencies": {
33
+ "@babel/runtime": "^7.14.0",
34
+ "@plusscommunities/pluss-core-web": "^1.1.5",
35
+ "lodash": "^4.17.4",
36
+ "moment": "^2.18.1",
37
+ "react": "^16.14.0",
38
+ "react-bootstrap": "^0.31.2",
39
+ "react-dom": "^16.14.0",
40
+ "react-fontawesome": "^1.6.1"
41
+ },
42
+ "keywords": []
43
+ }
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@plusscommunities/pluss-newsletter-web-sharing",
3
+ "version": "1.2.8",
4
+ "description": "Extension package to enable newsletter on Pluss Communities Platform",
5
+ "main": "dist/index.cjs.js",
6
+ "scripts": {
7
+ "build": "npm i && rollup -c",
8
+ "core": "npm i @plusscommunities/pluss-core-web@latest",
9
+ "patch": "npm version patch",
10
+ "upload": "npm run build && npm publish --access public && rm -rf node_modules",
11
+ "upload:p": "npm run patch && npm run upload",
12
+ "upload:cp": "npm run core && npm run patch && npm run upload",
13
+ "copy:add": "run(){ ext=${1:-default}; test -f src/feature.config.$ext.js || cp src/feature.config.default.js src/feature.config.$ext.js; }; run",
14
+ "copy:get": "echo $npm_package_name",
15
+ "copy:set": "run(){ target='\\@plusscommunities\\/pluss-newsletter-web'; ext=${1:-default}; [ $ext == 'default' ] && replace=$target || replace=$target'-'$ext; echo 'Setting target to '$replace; test -f src/feature.config.$ext.js && cp -f src/feature.config.$ext.js src/feature.config.js; sed -i '' -e 's/'$target'.*\"/'$replace'\"/g' package.json; }; run",
16
+ "copy:upload": "npm run patch; for file in `ls ./src/feature.config.*.js`; do dup=`echo $file | sed 's/.*feature\\.config\\.\\(.*\\)\\.js/\\1/'`; npm run copy:set $dup; npm run upload; done; npm run copy:set;"
17
+ },
18
+ "author": "Phillip Suh",
19
+ "license": "ISC",
20
+ "devDependencies": {
21
+ "@babel/cli": "^7.14.3",
22
+ "@babel/core": "^7.14.3",
23
+ "@babel/plugin-transform-runtime": "^7.14.3",
24
+ "@babel/preset-env": "^7.14.2",
25
+ "@babel/preset-react": "^7.13.13",
26
+ "@rollup/plugin-babel": "^5.3.0",
27
+ "@rollup/plugin-image": "^2.0.6",
28
+ "@rollup/plugin-json": "^4.1.0",
29
+ "autoprefixer": "^10.2.6",
30
+ "rollup": "^2.50.1",
31
+ "rollup-plugin-local-resolve": "^1.0.7",
32
+ "rollup-plugin-styles": "^3.14.1"
33
+ },
34
+ "dependencies": {
35
+ "@babel/runtime": "^7.14.0",
36
+ "@plusscommunities/pluss-core-web": "^1.1.5",
37
+ "lodash": "^4.17.4",
38
+ "moment": "^2.18.1",
39
+ "react": "^16.14.0",
40
+ "react-bootstrap": "^0.31.2",
41
+ "react-dom": "^16.14.0",
42
+ "react-fontawesome": "^1.6.1"
43
+ },
44
+ "keywords": []
45
+ }
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@plusscommunities/pluss-newsletter-web-test",
3
+ "version": "1.2.2",
4
+ "description": "Extension package to enable newsletter on Pluss Communities Platform",
5
+ "main": "dist/index.cjs.js",
6
+ "scripts": {
7
+ "build": "npm i && rollup -c",
8
+ "core": "npm i @plusscommunities/pluss-core-web@latest",
9
+ "patch": "npm version patch",
10
+ "upload": "npm run build && npm publish --access public && rm -rf node_modules",
11
+ "upload:p": "npm run patch && npm run upload",
12
+ "upload:cp": "npm run core && npm run patch && npm run upload",
13
+ "copy:add": "run(){ arg1=${1:-default}; test -f package.$arg1.json || cp package.default.json package.$arg1.json; test -f src/feature.config.$arg1.js || cp src/feature.config.default.js src/feature.config.$arg1.js; }; run",
14
+ "copy:set": "run(){ arg1=${1:-default}; cp -f package.$arg1.json package.json; cp -f src/feature.config.$arg1.js src/feature.config.js; }; run"
15
+ },
16
+ "author": "Phillip Suh",
17
+ "license": "ISC",
18
+ "devDependencies": {
19
+ "@babel/cli": "^7.14.3",
20
+ "@babel/core": "^7.14.3",
21
+ "@babel/plugin-transform-runtime": "^7.14.3",
22
+ "@babel/preset-env": "^7.14.2",
23
+ "@babel/preset-react": "^7.13.13",
24
+ "@rollup/plugin-babel": "^5.3.0",
25
+ "@rollup/plugin-image": "^2.0.6",
26
+ "@rollup/plugin-json": "^4.1.0",
27
+ "autoprefixer": "^10.2.6",
28
+ "rollup": "^2.50.1",
29
+ "rollup-plugin-local-resolve": "^1.0.7",
30
+ "rollup-plugin-styles": "^3.14.1"
31
+ },
32
+ "dependencies": {
33
+ "@babel/runtime": "^7.14.0",
34
+ "@plusscommunities/pluss-core-web": "^1.1.5",
35
+ "lodash": "^4.17.4",
36
+ "moment": "^2.18.1",
37
+ "react": "^16.14.0",
38
+ "react-bootstrap": "^0.31.2",
39
+ "react-dom": "^16.14.0",
40
+ "react-fontawesome": "^1.6.1"
41
+ },
42
+ "keywords": []
43
+ }
@@ -0,0 +1,59 @@
1
+ import styles from 'rollup-plugin-styles';
2
+ const autoprefixer = require('autoprefixer');
3
+ import babel from '@rollup/plugin-babel';
4
+ import json from '@rollup/plugin-json';
5
+ import image from '@rollup/plugin-image';
6
+ import localResolve from 'rollup-plugin-local-resolve';
7
+
8
+ // the entry point for the library
9
+ const input = 'src/index.js';
10
+
11
+ var MODE = [
12
+ {
13
+ fomart: 'cjs',
14
+ },
15
+ {
16
+ fomart: 'esm',
17
+ },
18
+ {
19
+ fomart: 'umd',
20
+ },
21
+ ];
22
+
23
+ var config = [];
24
+
25
+ MODE.map((m) => {
26
+ var conf = {
27
+ input: input,
28
+ output: {
29
+ // then name of your package
30
+ name: '@plusscommunities/pluss-newsletter-web',
31
+ file: `dist/index.${m.fomart}.js`,
32
+ format: m.fomart,
33
+ exports: 'auto',
34
+ },
35
+ // this externelizes react to prevent rollup from compiling it
36
+ external: ['react', /@babel\/runtime/],
37
+ plugins: [
38
+ // these are babel comfigurations
39
+ babel({
40
+ exclude: 'node_modules/**',
41
+ presets: ['@babel/preset-react', '@babel/preset-env'],
42
+ plugins: ['@babel/transform-runtime'],
43
+ babelHelpers: 'runtime',
44
+ }),
45
+ // this adds support for styles
46
+ styles({
47
+ postcss: {
48
+ plugins: [autoprefixer()],
49
+ },
50
+ }),
51
+ json(),
52
+ image(),
53
+ localResolve(),
54
+ ],
55
+ };
56
+ config.push(conf);
57
+ });
58
+
59
+ export default [...config];
@@ -0,0 +1,102 @@
1
+ import _ from 'lodash';
2
+ import Cookies from 'js-cookie';
3
+ import {
4
+ NEWS_LOADED,
5
+ NEWS_UPDATED,
6
+ NEWS_REMOVED,
7
+ NEWS_SUBMISSIONS_LOADED,
8
+ NEWS_SUBMISSION_REMOVED,
9
+ NEWS_PURGE,
10
+ NEWS_DASHBOARD_LOADING,
11
+ NEWS_SUBMISSIONS_DASHBOARD_LOADING,
12
+ } from './types';
13
+ import { newsletterActions } from '../webapi';
14
+
15
+ export const newsUpdate = (site, isdashboard) => {
16
+ return (dispatch) => {
17
+ if (isdashboard) {
18
+ dispatch({
19
+ type: NEWS_DASHBOARD_LOADING,
20
+ });
21
+ }
22
+ newsletterActions.recursiveGetNews(site).then((res) => {
23
+ const currentSite = Cookies.get('site');
24
+ if (res.data != null && !_.isEmpty(res.data) && res.data[0].Site === currentSite) {
25
+ dispatch({
26
+ type: NEWS_UPDATED,
27
+ payload: res.data,
28
+ });
29
+ } else {
30
+ dispatch({
31
+ type: NEWS_UPDATED,
32
+ payload: [],
33
+ });
34
+ }
35
+ });
36
+ };
37
+ };
38
+
39
+ export const newsLoaded = (events) => {
40
+ return {
41
+ type: NEWS_LOADED,
42
+ payload: events,
43
+ };
44
+ };
45
+
46
+ export const newsUpdated = (events) => {
47
+ return {
48
+ type: NEWS_UPDATED,
49
+ payload: events,
50
+ };
51
+ };
52
+
53
+ export const removeNews = (id) => {
54
+ return {
55
+ type: NEWS_REMOVED,
56
+ payload: id,
57
+ };
58
+ };
59
+
60
+ export const newsSubmissionsUpdate = (site, isdashboard) => {
61
+ return (dispatch) => {
62
+ if (isdashboard) {
63
+ dispatch({
64
+ type: NEWS_SUBMISSIONS_DASHBOARD_LOADING,
65
+ });
66
+ }
67
+ newsletterActions.getNewsletterSubmissions(site).then((res) => {
68
+ const currentSiteSub = Cookies.get('site');
69
+ if (res.data != null && !_.isEmpty(res.data) && res.data[0].Site === currentSiteSub) {
70
+ dispatch({
71
+ type: NEWS_SUBMISSIONS_LOADED,
72
+ payload: res.data,
73
+ });
74
+ } else {
75
+ dispatch({
76
+ type: NEWS_SUBMISSIONS_LOADED,
77
+ payload: [],
78
+ });
79
+ }
80
+ });
81
+ };
82
+ };
83
+
84
+ export const newsSubmissionsLoaded = (events) => {
85
+ return {
86
+ type: NEWS_SUBMISSIONS_LOADED,
87
+ payload: events,
88
+ };
89
+ };
90
+
91
+ export const removeNewsSubmission = (id) => {
92
+ return {
93
+ type: NEWS_SUBMISSION_REMOVED,
94
+ payload: id,
95
+ };
96
+ };
97
+
98
+ export const clearNews = () => {
99
+ return {
100
+ type: NEWS_PURGE,
101
+ };
102
+ };
@@ -0,0 +1,9 @@
1
+ import { PlussCore } from '../feature.config';
2
+
3
+ const { Actions } = PlussCore;
4
+ export const setAuth = Actions.setAuth;
5
+ export const usersLoaded = Actions.usersLoaded;
6
+ export const addRecentlyCreated = Actions.addRecentlyCreated;
7
+ export const setNavData = Actions.setNavData;
8
+
9
+ export * from './NewsActions';
@@ -0,0 +1,10 @@
1
+ import { values } from '../feature.config';
2
+
3
+ export const NEWS_LOADED = values.actionNewsLoaded;
4
+ export const NEWS_UPDATED = values.actionNewsUpdated;
5
+ export const NEWS_REMOVED = values.actionNewsRemoved;
6
+ export const NEWS_SUBMISSIONS_LOADED = values.actionNewsSubmissionsLoaded;
7
+ export const NEWS_SUBMISSION_REMOVED = values.actionNewsSubmissionRemoved;
8
+ export const NEWS_PURGE = values.actionNewsPurge;
9
+ export const NEWS_DASHBOARD_LOADING = values.actionNewsDashboardLoading;
10
+ export const NEWS_SUBMISSIONS_DASHBOARD_LOADING = values.actionNewsSubmissionsDashboardLoading;
@@ -0,0 +1,73 @@
1
+ import React, { Component } from 'react';
2
+ import _ from 'lodash';
3
+ import { Link } from 'react-router-dom';
4
+ import { values } from '../feature.config';
5
+
6
+ class ActivityText extends Component {
7
+ render() {
8
+ const { data, classes, clickableClasses, highlightedClasses } = this.props;
9
+
10
+ switch (data.Type) {
11
+ case values.activityAddNewsSubmission:
12
+ return (
13
+ <p className={classes}>
14
+ <span className={highlightedClasses}>{data.User.displayName}</span>
15
+ &nbsp;{values.textSubmittedANewsletterPostForReview}&nbsp;
16
+ <Link to={`${values.routeNewsletterSubmission}${data.Id}`} className={clickableClasses}>
17
+ {data.Data.title}
18
+ </Link>
19
+ </p>
20
+ );
21
+ case values.activityApproveNewsSubmission:
22
+ return (
23
+ <p className={classes}>
24
+ <span className={highlightedClasses}>{data.User.displayName}</span>
25
+ &nbsp;{values.textApprovedANewsSubmission}&nbsp;
26
+ <Link to={`${values.routeAddNewsletterEntry}/${data.Id}`} className={clickableClasses}>
27
+ {data.Data.title}
28
+ </Link>
29
+ </p>
30
+ );
31
+ case values.activityRejectNewsSubmission:
32
+ return (
33
+ <p className={classes}>
34
+ <span className={highlightedClasses}>{data.User.displayName}</span>
35
+ &nbsp;{values.textRejectedANewsSubmission}&nbsp;
36
+ <span className={highlightedClasses}>{data.Data.title}</span>
37
+ </p>
38
+ );
39
+ case values.activityAddNews:
40
+ return (
41
+ <p className={classes}>
42
+ <span className={highlightedClasses}>{data.User.displayName}</span>
43
+ &nbsp;{values.textAddedANewsletterPost}&nbsp;
44
+ <Link to={`${values.routeAddNewsletterEntry}/${data.Id}`} className={clickableClasses}>
45
+ {data.Data.title}
46
+ </Link>
47
+ </p>
48
+ );
49
+ case values.activityEditNews:
50
+ return (
51
+ <p className={classes}>
52
+ <span className={highlightedClasses}>{data.User.displayName}</span>
53
+ &nbsp;{values.textEditedANewsletterPost}&nbsp;
54
+ <Link to={`${values.routeAddNewsletterEntry}/${data.Id}`} className={clickableClasses}>
55
+ {data.Data.title}
56
+ </Link>
57
+ </p>
58
+ );
59
+ case values.acitivtyDeleteNews:
60
+ return (
61
+ <p className={classes}>
62
+ <span className={highlightedClasses}>{data.User.displayName}</span>
63
+ &nbsp;{values.textDeletedANewsletterPost}&nbsp;
64
+ <span className={highlightedClasses}>{data.Data.title}</span>
65
+ </p>
66
+ );
67
+ default:
68
+ return null;
69
+ }
70
+ }
71
+ }
72
+
73
+ export default ActivityText;
@@ -0,0 +1,3 @@
1
+ import { PlussCore } from '../../feature.config';
2
+
3
+ export const MakerPopup = PlussCore.Components.MakerPopup;
@@ -0,0 +1,32 @@
1
+ import React, { Component } from 'react';
2
+ import fullNoTitle from '../images/fullNoTitle.png';
3
+ import fullNoTitleCondensed from '../images/fullNoTitleCondensed.png';
4
+ import { values } from '../feature.config';
5
+
6
+ class PreviewFull extends Component {
7
+ render() {
8
+ const { backgroundColor, widgetTitle, titleClassName, options } = this.props;
9
+
10
+ return (
11
+ <div style={styles.container}>
12
+ <p className={titleClassName}>{widgetTitle}</p>
13
+ <img
14
+ style={{ ...styles.image, backgroundColor }}
15
+ src={options[values.optionUseLargeNews] ? fullNoTitle : fullNoTitleCondensed}
16
+ alt="fullNoTitle"
17
+ />
18
+ </div>
19
+ );
20
+ }
21
+ }
22
+
23
+ const styles = {
24
+ container: {
25
+ position: 'relative',
26
+ },
27
+ image: {
28
+ width: '100%',
29
+ },
30
+ };
31
+
32
+ export default PreviewFull;
@@ -0,0 +1,19 @@
1
+ import React, { Component } from 'react';
2
+ import { values } from '../feature.config';
3
+
4
+ const SVG_PATH = values.svgPathGridIcon;
5
+ const SVG_VIEWBOX = values.svgPathGridIconViewBox || '0 0 30 30';
6
+
7
+ class PreviewGrid extends Component {
8
+ render() {
9
+ const { colour } = this.props;
10
+
11
+ return (
12
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox={SVG_VIEWBOX}>
13
+ <path key={SVG_PATH.substring(0, 20)} d={SVG_PATH} fill={colour} />;
14
+ </svg>
15
+ );
16
+ }
17
+ }
18
+
19
+ export default PreviewGrid;
@@ -0,0 +1,28 @@
1
+ import React, { Component } from 'react';
2
+ import previewWidget from '../images/previewWidget.png';
3
+ // https://pluss-prd-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:80aecdcb-9955-493e-a341-2f2263f64777/public/1080a6644ed8925269ec8ad873/newswidget.png
4
+
5
+ class PreviewWidget extends Component {
6
+ render() {
7
+ const { backgroundColor, widgetTitle, titleClassName } = this.props;
8
+ return (
9
+ <div style={styles.container}>
10
+ <img style={{ ...styles.image, backgroundColor }} src={previewWidget} alt="previewWidget" />
11
+ <p className={titleClassName} style={styles.title}>
12
+ {widgetTitle}
13
+ </p>
14
+ </div>
15
+ );
16
+ }
17
+ }
18
+
19
+ const styles = {
20
+ container: {
21
+ position: 'relative',
22
+ },
23
+ image: {
24
+ width: '100%',
25
+ },
26
+ };
27
+
28
+ export default PreviewWidget;
@@ -0,0 +1,3 @@
1
+ import { PlussCore } from '../../feature.config';
2
+
3
+ export const Reactions = PlussCore.Components.Reactions;
@@ -0,0 +1,19 @@
1
+ import React, { Component } from 'react';
2
+ import full from '../images/full.png';
3
+ // https://pluss-prd-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:80aecdcb-9955-493e-a341-2f2263f64777/public/7f817a754490be2a2c859db2fe/newsmainmasked.png
4
+
5
+ class ViewFull extends Component {
6
+ render() {
7
+ return <img style={styles.image} src={full} alt="full" />;
8
+ }
9
+ }
10
+
11
+ const styles = {
12
+ image: {
13
+ width: '100%',
14
+ height: '100%',
15
+ objectFit: 'contain',
16
+ },
17
+ };
18
+
19
+ export default ViewFull;
@@ -0,0 +1,17 @@
1
+ import React, { Component } from 'react';
2
+ import widget from '../images/widget.png';
3
+ // https://pluss-prd-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:80aecdcb-9955-493e-a341-2f2263f64777/public/fc1ab89c41cc9de0d637845e7d/newswidgetfull.png
4
+
5
+ class ViewWidget extends Component {
6
+ render() {
7
+ return <img style={styles.image} src={widget} alt="widget" />;
8
+ }
9
+ }
10
+
11
+ const styles = {
12
+ image: {
13
+ width: 80,
14
+ },
15
+ };
16
+
17
+ export default ViewWidget;
@@ -0,0 +1,25 @@
1
+ import { PlussCore } from '../feature.config';
2
+
3
+ const { Components } = PlussCore;
4
+ export const Header = Components.Header;
5
+ export const AddButton = Components.AddButton;
6
+ export const Button = Components.Button;
7
+ export const GenericInput = Components.GenericInput;
8
+ export const AnalyticsFilter = Components.AnalyticsFilter;
9
+ export const ImageInput = Components.ImageInput;
10
+ export const RadioButton = Components.RadioButton;
11
+ export const OverlayPage = Components.OverlayPage;
12
+ export const OverlayPageContents = Components.OverlayPageContents;
13
+ export const OverlayPageSection = Components.OverlayPageSection;
14
+ export const OverlayPageBottomButtons = Components.OverlayPageBottomButtons;
15
+ export const UserListing = Components.UserListing;
16
+ export const P60Icon = Components.P60Icon;
17
+ export const DatePicker = Components.DatePicker;
18
+ export const TimePicker = Components.TimePicker;
19
+ export const SuccessPopup = Components.SuccessPopup;
20
+ export const AudienceSelector = Components.AudienceSelector;
21
+ export const CheckBox = Components.CheckBox;
22
+ export const TextFormatPopup = Components.TextFormatPopup;
23
+ export const OptionsSection = Components.OptionsSection;
24
+ export const FileInput = Components.FileInput;
25
+ export const Popup = Components.Popup;
@@ -0,0 +1,4 @@
1
+ import { PlussCore } from '../../feature.config';
2
+
3
+ const { Components } = PlussCore;
4
+ export const Text = Components.Text;
@@ -0,0 +1,9 @@
1
+ import { PlussCore } from '../feature.config';
2
+
3
+ const { Config } = PlussCore;
4
+
5
+ export const UTC_OFFSET = Config.env.utcOffset;
6
+ export const hasAvailableNews = Config.env.hasAvailableNews;
7
+ export const newsHaveTags = Config.env.newsHaveTags;
8
+ export const DEFAULT_ALLOW_COMMENTS = Config.env.defaultAllowComments;
9
+ export const logo = Config.env.logo;