@anas_hameed/edly-saas-widget 0.2.43 → 0.2.45
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/dist/MultiSiteBannerWidget/BannerContent.js +44 -15
- package/dist/MultiSiteBannerWidget/BannerContent.js.map +1 -1
- package/dist/MultiSiteBannerWidget/index.js +7 -9
- package/dist/MultiSiteBannerWidget/index.js.map +1 -1
- package/dist/MultiSiteBannerWidget/messages.js +7 -2
- package/dist/MultiSiteBannerWidget/messages.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
8
9
|
var _frontendPlatform = require("@edx/frontend-platform");
|
|
9
10
|
var _auth = require("@edx/frontend-platform/auth");
|
|
10
11
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
@@ -15,54 +16,82 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
15
16
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
18
|
const MultiSiteBannerContent = ({
|
|
18
|
-
intl
|
|
19
|
+
intl,
|
|
20
|
+
email
|
|
19
21
|
}) => {
|
|
20
22
|
const [sites, setSites] = (0, _react.useState)([]);
|
|
21
23
|
const [loading, setLoading] = (0, _react.useState)(true);
|
|
22
24
|
(0, _react.useEffect)(() => {
|
|
25
|
+
const authenticatedUser = email ? null : (0, _auth.getAuthenticatedUser)();
|
|
26
|
+
const authenticatedUserEmail = authenticatedUser?.email;
|
|
27
|
+
const userEmail = email || authenticatedUserEmail;
|
|
28
|
+
if (!userEmail) {
|
|
29
|
+
setLoading(false);
|
|
30
|
+
setSites([]);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
23
33
|
const fetchSites = async () => {
|
|
34
|
+
setLoading(true);
|
|
24
35
|
try {
|
|
25
36
|
const config = (0, _frontendPlatform.getConfig)();
|
|
26
|
-
const
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
} = await client.get(`${config.LMS_BASE_URL}/api/v1/user/sites/`);
|
|
30
|
-
const activeSites = data.filter(site => site.is_active && !site.is_blocked);
|
|
31
|
-
setSites(activeSites);
|
|
37
|
+
const response = await fetch(`${config.LMS_BASE_URL}/api/edly_panel/v1/user_link_sites/?email=${encodeURIComponent(userEmail)}`);
|
|
38
|
+
const sitesData = await response.json();
|
|
39
|
+
setSites(sitesData.map(site => site.site_name));
|
|
32
40
|
} catch (error) {
|
|
33
41
|
// eslint-disable-next-line no-console
|
|
34
42
|
console.error('Error fetching accessible sites:', error);
|
|
43
|
+
setSites([]);
|
|
35
44
|
} finally {
|
|
36
45
|
setLoading(false);
|
|
37
46
|
}
|
|
38
47
|
};
|
|
39
48
|
fetchSites();
|
|
40
|
-
}, []);
|
|
49
|
+
}, [email]);
|
|
41
50
|
if (loading || sites.length < 2) {
|
|
42
51
|
return null;
|
|
43
52
|
}
|
|
44
53
|
const formatSiteNames = () => {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
if (sites.length === 2) {
|
|
55
|
+
return `${sites[0]} and ${sites[1]}`;
|
|
56
|
+
}
|
|
57
|
+
const last = sites[sites.length - 1];
|
|
58
|
+
const rest = sites.slice(0, -1);
|
|
59
|
+
return `${rest.join(', ')}, and ${last}`;
|
|
60
|
+
};
|
|
61
|
+
const getMessageKey = () => {
|
|
62
|
+
const {
|
|
63
|
+
pathname
|
|
64
|
+
} = window.location;
|
|
65
|
+
if (pathname.includes('/authn/reset')) {
|
|
66
|
+
return 'multisite.banner.message.reset';
|
|
67
|
+
}
|
|
68
|
+
if (pathname === '/account/') {
|
|
69
|
+
return 'multisite.banner.message.account';
|
|
48
70
|
}
|
|
49
|
-
|
|
50
|
-
return `${names.join(', ')}, and ${last}`;
|
|
71
|
+
return '';
|
|
51
72
|
};
|
|
73
|
+
const messageKey = getMessageKey();
|
|
74
|
+
if (!messageKey) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
52
77
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
53
78
|
variant: "info",
|
|
54
79
|
icon: _icons.Info,
|
|
55
80
|
className: "mb-3",
|
|
56
81
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
|
|
57
82
|
className: "mb-0",
|
|
58
|
-
children: intl.formatMessage(_messages.default[
|
|
83
|
+
children: intl.formatMessage(_messages.default[getMessageKey()], {
|
|
59
84
|
sites: formatSiteNames()
|
|
60
85
|
})
|
|
61
86
|
})
|
|
62
87
|
});
|
|
63
88
|
};
|
|
64
89
|
MultiSiteBannerContent.propTypes = {
|
|
65
|
-
intl: _i18n.intlShape.isRequired
|
|
90
|
+
intl: _i18n.intlShape.isRequired,
|
|
91
|
+
email: _propTypes.default.string
|
|
92
|
+
};
|
|
93
|
+
MultiSiteBannerContent.defaultProps = {
|
|
94
|
+
email: null
|
|
66
95
|
};
|
|
67
96
|
var _default = exports.default = (0, _i18n.injectIntl)(MultiSiteBannerContent);
|
|
68
97
|
//# sourceMappingURL=BannerContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BannerContent.js","names":["_react","_interopRequireWildcard","require","_frontendPlatform","_auth","_i18n","_paragon","_icons","_messages","
|
|
1
|
+
{"version":3,"file":"BannerContent.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_frontendPlatform","_auth","_i18n","_paragon","_icons","_messages","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MultiSiteBannerContent","intl","email","sites","setSites","useState","loading","setLoading","useEffect","authenticatedUser","getAuthenticatedUser","authenticatedUserEmail","userEmail","fetchSites","config","getConfig","response","fetch","LMS_BASE_URL","encodeURIComponent","sitesData","json","map","site","site_name","error","console","length","formatSiteNames","last","rest","slice","join","getMessageKey","pathname","window","location","includes","messageKey","jsx","Alert","variant","icon","Info","className","children","formatMessage","messages","propTypes","intlShape","isRequired","PropTypes","string","defaultProps","_default","exports","injectIntl"],"sources":["../../src/MultiSiteBannerWidget/BannerContent.jsx"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { getConfig } from '@edx/frontend-platform';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Alert as ParagonAlert } from '@openedx/paragon';\nimport { Info } from '@openedx/paragon/icons';\nimport messages from './messages';\n\nconst MultiSiteBannerContent = ({ intl, email }) => {\n const [sites, setSites] = useState([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n const authenticatedUser = email ? null : getAuthenticatedUser();\n const authenticatedUserEmail = authenticatedUser?.email;\n const userEmail = email || authenticatedUserEmail;\n\n if (!userEmail) {\n setLoading(false);\n setSites([]);\n return;\n }\n\n const fetchSites = async () => {\n setLoading(true);\n try {\n const config = getConfig();\n const response = await fetch(`${config.LMS_BASE_URL}/api/edly_panel/v1/user_link_sites/?email=${encodeURIComponent(userEmail)}`);\n const sitesData = await response.json();\n setSites(sitesData.map(site => site.site_name));\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error fetching accessible sites:', error);\n setSites([]);\n } finally {\n setLoading(false);\n }\n };\n\n fetchSites();\n }, [email]);\n\n if (loading || sites.length < 2) { return null; }\n\n const formatSiteNames = () => {\n if (sites.length === 2) { return `${sites[0]} and ${sites[1]}`; }\n\n const last = sites[sites.length - 1];\n const rest = sites.slice(0, -1);\n return `${rest.join(', ')}, and ${last}`;\n };\n\n const getMessageKey = () => {\n const { pathname } = window.location;\n if (pathname.includes('/authn/reset')) {\n return 'multisite.banner.message.reset';\n }\n if (pathname === '/account/') {\n return 'multisite.banner.message.account';\n }\n return '';\n };\n\n const messageKey = getMessageKey();\n if (!messageKey) { return null; }\n\n return (\n <ParagonAlert variant=\"info\" icon={Info} className=\"mb-3\">\n <p className=\"mb-0\">\n {intl.formatMessage(messages[getMessageKey()], {\n sites: formatSiteNames(),\n })}\n </p>\n </ParagonAlert>\n );\n};\n\nMultiSiteBannerContent.propTypes = {\n intl: intlShape.isRequired,\n email: PropTypes.string,\n};\n\nMultiSiteBannerContent.defaultProps = {\n email: null,\n};\n\nexport default injectIntl(MultiSiteBannerContent);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MultiSiteBannerWidget = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
9
|
-
var _i18n = require("@edx/frontend-platform/i18n");
|
|
10
9
|
var _react2 = require("@edx/frontend-platform/react");
|
|
11
10
|
var _BannerContent = _interopRequireDefault(require("./BannerContent"));
|
|
12
11
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
13
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
-
const MultiSiteBannerWidget = (
|
|
14
|
+
const MultiSiteBannerWidget = () => {
|
|
16
15
|
(0, _react.useEffect)(() => {
|
|
17
16
|
const isAccountPage = window.location.pathname === '/account/';
|
|
18
17
|
if (!isAccountPage) {
|
|
@@ -24,19 +23,19 @@ const MultiSiteBannerWidget = (props, context) => {
|
|
|
24
23
|
if (!section || existing) {
|
|
25
24
|
return;
|
|
26
25
|
}
|
|
26
|
+
|
|
27
|
+
// create a container for the banner content
|
|
27
28
|
const container = document.createElement('div');
|
|
28
29
|
container.id = 'multi-site-banner-container';
|
|
29
30
|
container.style.marginBottom = '1rem';
|
|
31
|
+
|
|
32
|
+
// find the Account Information heading to insert the banner content before
|
|
30
33
|
const heading = section.querySelector('h2.section-heading');
|
|
31
34
|
const insertPoint = heading || section.firstChild;
|
|
32
35
|
insertPoint.parentNode.insertBefore(container, insertPoint);
|
|
33
|
-
const locale = context?.locale || document.documentElement.lang || 'en';
|
|
34
|
-
const intlMessages = context?.messages || {};
|
|
35
36
|
|
|
36
37
|
// eslint-disable-next-line react/no-deprecated
|
|
37
|
-
_reactDom.default.render(/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
38
|
-
locale: locale,
|
|
39
|
-
messages: intlMessages,
|
|
38
|
+
_reactDom.default.render(/*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.AppProvider, {
|
|
40
39
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_BannerContent.default, {})
|
|
41
40
|
}), container);
|
|
42
41
|
observer.disconnect();
|
|
@@ -46,9 +45,8 @@ const MultiSiteBannerWidget = (props, context) => {
|
|
|
46
45
|
subtree: true
|
|
47
46
|
});
|
|
48
47
|
return () => observer.disconnect();
|
|
49
|
-
}, [
|
|
48
|
+
}, []);
|
|
50
49
|
return null;
|
|
51
50
|
};
|
|
52
51
|
exports.MultiSiteBannerWidget = MultiSiteBannerWidget;
|
|
53
|
-
MultiSiteBannerWidget.contextType = _react2.AppContext;
|
|
54
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_reactDom","_interopRequireDefault","_react2","_BannerContent","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MultiSiteBannerWidget","useEffect","isAccountPage","window","location","pathname","undefined","observer","MutationObserver","section","document","getElementById","existing","container","createElement","id","style","marginBottom","heading","querySelector","insertPoint","firstChild","parentNode","insertBefore","ReactDOM","render","jsx","AppProvider","children","disconnect","observe","body","childList","subtree","exports"],"sources":["../../src/MultiSiteBannerWidget/index.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport ReactDOM from 'react-dom';\nimport { AppProvider } from '@edx/frontend-platform/react';\nimport MultiSiteBannerContent from './BannerContent';\n\nconst MultiSiteBannerWidget = () => {\n useEffect(() => {\n const isAccountPage = window.location.pathname === '/account/';\n if (!isAccountPage) { return undefined; }\n\n const observer = new MutationObserver(() => {\n const section = document.getElementById('basic-information');\n const existing = document.getElementById('multi-site-banner-container');\n\n if (!section || existing) { return; }\n\n // create a container for the banner content\n const container = document.createElement('div');\n container.id = 'multi-site-banner-container';\n container.style.marginBottom = '1rem';\n\n // find the Account Information heading to insert the banner content before\n const heading = section.querySelector('h2.section-heading');\n const insertPoint = heading || section.firstChild;\n insertPoint.parentNode.insertBefore(container, insertPoint);\n\n // eslint-disable-next-line react/no-deprecated\n ReactDOM.render(\n <AppProvider>\n <MultiSiteBannerContent />\n </AppProvider>,\n container,\n );\n\n observer.disconnect();\n });\n\n observer.observe(document.body, { childList: true, subtree: true });\n return () => observer.disconnect();\n }, []);\n\n return null;\n};\n\nexport { MultiSiteBannerWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AAAqD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAO,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAErD,MAAMgB,qBAAqB,GAAGA,CAAA,KAAM;EAClC,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,aAAa,GAAGC,MAAM,CAACC,QAAQ,CAACC,QAAQ,KAAK,WAAW;IAC9D,IAAI,CAACH,aAAa,EAAE;MAAE,OAAOI,SAAS;IAAE;IAExC,MAAMC,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,MAAM;MAC1C,MAAMC,OAAO,GAAGC,QAAQ,CAACC,cAAc,CAAC,mBAAmB,CAAC;MAC5D,MAAMC,QAAQ,GAAGF,QAAQ,CAACC,cAAc,CAAC,6BAA6B,CAAC;MAEvE,IAAI,CAACF,OAAO,IAAIG,QAAQ,EAAE;QAAE;MAAQ;;MAEpC;MACA,MAAMC,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC;MAC/CD,SAAS,CAACE,EAAE,GAAG,6BAA6B;MAC5CF,SAAS,CAACG,KAAK,CAACC,YAAY,GAAG,MAAM;;MAErC;MACA,MAAMC,OAAO,GAAGT,OAAO,CAACU,aAAa,CAAC,oBAAoB,CAAC;MAC3D,MAAMC,WAAW,GAAGF,OAAO,IAAIT,OAAO,CAACY,UAAU;MACjDD,WAAW,CAACE,UAAU,CAACC,YAAY,CAACV,SAAS,EAAEO,WAAW,CAAC;;MAE3D;MACAI,iBAAQ,CAACC,MAAM,cACb,IAAA7C,WAAA,CAAA8C,GAAA,EAAChD,OAAA,CAAAiD,WAAW;QAAAC,QAAA,eACV,IAAAhD,WAAA,CAAA8C,GAAA,EAAC/C,cAAA,CAAAI,OAAsB,IAAE;MAAC,CACf,CAAC,EACd8B,SACF,CAAC;MAEDN,QAAQ,CAACsB,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFtB,QAAQ,CAACuB,OAAO,CAACpB,QAAQ,CAACqB,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;IACnE,OAAO,MAAM1B,QAAQ,CAACsB,UAAU,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACb,CAAC;AAACK,OAAA,CAAAlC,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -6,10 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _i18n = require("@edx/frontend-platform/i18n");
|
|
8
8
|
const messages = (0, _i18n.defineMessages)({
|
|
9
|
-
'multisite.banner.message': {
|
|
10
|
-
id: 'multisite.banner.message',
|
|
9
|
+
'multisite.banner.message.account': {
|
|
10
|
+
id: 'multisite.banner.message.account',
|
|
11
11
|
defaultMessage: 'Please note that any changes to your profile information will be updated on {sites}.',
|
|
12
12
|
description: 'Message informing users that profile changes will be reflected across multiple sites.'
|
|
13
|
+
},
|
|
14
|
+
'multisite.banner.message.reset': {
|
|
15
|
+
id: 'multisite.banner.message.reset',
|
|
16
|
+
defaultMessage: 'Please note that changes to the password will be updated on {sites}.',
|
|
17
|
+
description: 'Message informing users that password reset will be applied across multiple sites.'
|
|
13
18
|
}
|
|
14
19
|
});
|
|
15
20
|
var _default = exports.default = messages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/MultiSiteBannerWidget/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'multisite.banner.message': {\n id: 'multisite.banner.message',\n defaultMessage: 'Please note that any changes to your profile information will be updated on {sites}.',\n description: 'Message informing users that profile changes will be reflected across multiple sites.',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9B,
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","id","defaultMessage","description","_default","exports","default"],"sources":["../../src/MultiSiteBannerWidget/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n 'multisite.banner.message.account': {\n id: 'multisite.banner.message.account',\n defaultMessage: 'Please note that any changes to your profile information will be updated on {sites}.',\n description: 'Message informing users that profile changes will be reflected across multiple sites.',\n },\n 'multisite.banner.message.reset': {\n id: 'multisite.banner.message.reset',\n defaultMessage: 'Please note that changes to the password will be updated on {sites}.',\n description: 'Message informing users that password reset will be applied across multiple sites.',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,MAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9B,kCAAkC,EAAE;IAClCC,EAAE,EAAE,kCAAkC;IACtCC,cAAc,EAAE,sFAAsF;IACtGC,WAAW,EAAE;EACf,CAAC;EACD,gCAAgC,EAAE;IAChCF,EAAE,EAAE,gCAAgC;IACpCC,cAAc,EAAE,sEAAsE;IACtFC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEYP,QAAQ","ignoreList":[]}
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "HeaderWidget", {
|
|
|
27
27
|
return _HeaderWidget.default;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
Object.defineProperty(exports, "MultiSiteBannerContent", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function () {
|
|
33
|
+
return _BannerContent.default;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
30
36
|
Object.defineProperty(exports, "MultiSiteBannerWidget", {
|
|
31
37
|
enumerable: true,
|
|
32
38
|
get: function () {
|
|
@@ -62,5 +68,6 @@ var _FooterWidget = _interopRequireDefault(require("./FooterWidget"));
|
|
|
62
68
|
var _EmailCheckWidget = require("./EmailCheckWidget");
|
|
63
69
|
var _EdlyLogistrationInfo = require("./EdlyLogistrationInfo");
|
|
64
70
|
var _MultiSiteBannerWidget = require("./MultiSiteBannerWidget");
|
|
71
|
+
var _BannerContent = _interopRequireDefault(require("./MultiSiteBannerWidget/BannerContent"));
|
|
65
72
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
66
73
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_HeaderWidget","_interopRequireDefault","require","_FooterWidget","_EmailCheckWidget","_EdlyLogistrationInfo","_MultiSiteBannerWidget","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import HeaderWidget from './HeaderWidget';\nimport FooterWidget from './FooterWidget';\n\nexport { HeaderWidget, FooterWidget };\nexport {\n EmailCheckWidget,\n reducer as emailCheckReducer,\n saga as emailCheckSaga,\n storeName as emailCheckStoreName,\n emailCheckComplete,\n} from './EmailCheckWidget';\nexport { EdlyLogistrationInfo } from './EdlyLogistrationInfo';\nexport { MultiSiteBannerWidget } from './MultiSiteBannerWidget';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_HeaderWidget","_interopRequireDefault","require","_FooterWidget","_EmailCheckWidget","_EdlyLogistrationInfo","_MultiSiteBannerWidget","_BannerContent","e","__esModule","default"],"sources":["../src/index.js"],"sourcesContent":["import HeaderWidget from './HeaderWidget';\nimport FooterWidget from './FooterWidget';\n\nexport { HeaderWidget, FooterWidget };\nexport {\n EmailCheckWidget,\n reducer as emailCheckReducer,\n saga as emailCheckSaga,\n storeName as emailCheckStoreName,\n emailCheckComplete,\n} from './EmailCheckWidget';\nexport { EdlyLogistrationInfo } from './EdlyLogistrationInfo';\nexport { MultiSiteBannerWidget } from './MultiSiteBannerWidget';\nexport { default as MultiSiteBannerContent } from './MultiSiteBannerWidget/BannerContent';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AAGA,IAAAE,iBAAA,GAAAF,OAAA;AAOA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA0F,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|