@edx/unit-title-plugin 0.0.10 → 0.0.12
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/README.md +14 -1
- package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js +2 -2
- package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js.map +1 -1
- package/dist/translations-loader/index.js +26 -2
- package/dist/translations-loader/index.js.map +1 -1
- package/dist/translations-loader/index.scss +10 -2
- package/dist/translations-loader/messages.js +10 -0
- package/dist/translations-loader/messages.js.map +1 -1
- package/dist/utils/cookie.js +17 -0
- package/dist/utils/cookie.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
PLUGIN_OPERATIONS,
|
|
13
13
|
DIRECT_PLUGIN,
|
|
14
14
|
} from "@openedx/frontend-plugin-framework";
|
|
15
|
-
import
|
|
15
|
+
import UnitTitlePlugin, { TranslationsLoader } from '@edx/unit-title-plugin';
|
|
16
16
|
|
|
17
17
|
// Load environment variables from .env file
|
|
18
18
|
const config = {
|
|
@@ -36,6 +36,19 @@ const config = {
|
|
|
36
36
|
},
|
|
37
37
|
],
|
|
38
38
|
},
|
|
39
|
+
content_iframe_loader_slot: {
|
|
40
|
+
plugins: [
|
|
41
|
+
{
|
|
42
|
+
op: PLUGIN_OPERATIONS.Insert,
|
|
43
|
+
widget: {
|
|
44
|
+
id: "content_iframe_loader_slot",
|
|
45
|
+
type: DIRECT_PLUGIN,
|
|
46
|
+
priority: 1,
|
|
47
|
+
RenderWidget: TranslationsLoader,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
},
|
|
39
52
|
sequence_container_slot: {
|
|
40
53
|
plugins: [
|
|
41
54
|
{
|
package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js
CHANGED
|
@@ -24,7 +24,7 @@ var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
|
|
|
24
24
|
selectedIndex: 'selectedIndex'
|
|
25
25
|
});
|
|
26
26
|
var logUpgradeClick = function logUpgradeClick(_ref) {
|
|
27
|
-
var _window$tagular, _window, _logEventProperties$o;
|
|
27
|
+
var _getCookies, _window$tagular, _window, _logEventProperties$o;
|
|
28
28
|
var logEventProperties = _ref.logEventProperties;
|
|
29
29
|
var eventProperties = {
|
|
30
30
|
org_key: logEventProperties.org_key,
|
|
@@ -48,7 +48,7 @@ var logUpgradeClick = function logUpgradeClick(_ref) {
|
|
|
48
48
|
linkType: 'button',
|
|
49
49
|
pageName: upsellPageName
|
|
50
50
|
}));
|
|
51
|
-
var correlationId = (0, _cookie.
|
|
51
|
+
var correlationId = (_getCookies = (0, _cookie.getCookies)()) === null || _getCookies === void 0 ? void 0 : _getCookies.tglr_correlation_id;
|
|
52
52
|
(_window$tagular = (_window = window).tagular) === null || _window$tagular === void 0 || _window$tagular.call(_window, 'beam', {
|
|
53
53
|
'@type': 'core.conversions.ConversionTracked.v2',
|
|
54
54
|
correlation: {
|
package/dist/translation-button/translation-selection/translation-modal/useTranslationModal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTranslationModal.js","names":["_react","require","_reactUnitTestUtils","_analytics","_cookie","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","len","length","arr2","r","l","t","e","u","a","f","next","done","push","value","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","stateKeys","exports","StrictDict","selectedIndex","logUpgradeClick","_ref","_window$tagular","_window","_logEventProperties$o","logEventProperties","eventProperties","org_key","courserun_key","upsellPageName","promotionEventProperties","creative","position","promotion_id","sendTrackingLogEvent","location","sendTrackEvent","linkCategory","linkName","concat","linkType","pageName","correlationId","handleCorrelationIDCookie","window","tagular","correlation","id","metadata","category","action","timestamp","Date","toISOString","productList","brand","toLowerCase","variant","course_name","getEnabledLanguages","_ref2","availableLanguages","originalCourseLanguage","enabledLanguages","excludeEnglish","missingLanguage","some","_ref3","code","_ref4","enabled","label","useTranslationModal","_ref5","selectedLanguage","setSelectedLanguage","close","isAuditMode","upgradeUrl","courseEnabledLanguages","_useKeyedState","useKeyedState","findIndex","lang","_useKeyedState2","setSelectedIndex","onSubmit","useCallback","open","newSelectedLanguage","logSurveyClick","isAuditUser","_default"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/useTranslationModal.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { handleCorrelationIDCookie } from '../../../utils/cookie';\n\nexport const stateKeys = StrictDict({\n selectedIndex: 'selectedIndex',\n});\n\nconst logUpgradeClick = ({ logEventProperties }) => {\n const eventProperties = {\n org_key: logEventProperties.org_key,\n courserun_key: logEventProperties.courserun_key,\n };\n const upsellPageName = 'course_translation_modal';\n const promotionEventProperties = {\n creative: 'translationmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'translation-modal-message',\n promotion_id: 'courseware_translation_upsell',\n ...eventProperties,\n };\n sendTrackingLogEvent('edx.bi.course.upgrade.translationmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'translation-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n\n const correlationId = handleCorrelationIDCookie();\n window.tagular?.('beam', {\n '@type': 'core.conversions.ConversionTracked.v2',\n correlation: {\n id: correlationId,\n },\n metadata: {\n category: 'Enrollment',\n action: 'Upgraded',\n timestamp: new Date().toISOString(),\n productList: [{\n brand: logEventProperties.org_key?.toLowerCase(),\n variant: 'courses',\n name: logEventProperties.course_name,\n }],\n },\n });\n};\n\nconst getEnabledLanguages = ({ availableLanguages, originalCourseLanguage }) => {\n let enabledLanguages = [];\n const excludeEnglish = originalCourseLanguage !== 'en';\n const missingLanguage = !availableLanguages.some(({ code }) => code === originalCourseLanguage);\n\n enabledLanguages = availableLanguages.filter(({ enabled, code }) => {\n if (excludeEnglish && code === 'en') {\n return false;\n }\n\n return enabled;\n });\n\n if (missingLanguage) {\n enabledLanguages.push({ code: originalCourseLanguage, label: 'original' });\n }\n\n return enabledLanguages;\n};\n\nconst useTranslationModal = ({\n selectedLanguage,\n setSelectedLanguage,\n close,\n isAuditMode,\n upgradeUrl,\n logEventProperties,\n availableLanguages,\n originalCourseLanguage,\n}) => {\n const courseEnabledLanguages = getEnabledLanguages({ availableLanguages, originalCourseLanguage });\n const [selectedIndex, setSelectedIndex] = useKeyedState(\n stateKeys.selectedIndex,\n courseEnabledLanguages.findIndex((lang) => lang.code === selectedLanguage),\n );\n\n const onSubmit = useCallback(() => {\n if (isAuditMode) {\n logUpgradeClick({ logEventProperties });\n window.open(upgradeUrl, '_self');\n } else {\n const newSelectedLanguage = courseEnabledLanguages[selectedIndex].code;\n setSelectedLanguage(newSelectedLanguage);\n }\n close();\n }, [selectedIndex]);\n\n /*\n 2025-01-21\n This function not currently in use, but may be used again in the future so not removing the code here.\n The import and pasing of this function have been removed except in `./NewLanguageFeedback.jsx` where it\n is actually used.\n */\n const logSurveyClick = () => {\n sendTrackEvent('addtional_languages_survey_clicked', {\n ...logEventProperties,\n isAuditUser: isAuditMode,\n });\n window.open('https://participant.use2.usertesting.com/se/invite/8145e5f3-4f48-46b7-8d97-78e1bec900d0', '_blank');\n };\n\n return {\n selectedIndex,\n setSelectedIndex,\n onSubmit,\n logSurveyClick,\n courseEnabledLanguages,\n };\n};\n\nexport default useTranslationModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAAkE,SAAAI,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAAA,SAAAK,eAAAC,GAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,GAAA,KAAAG,qBAAA,CAAAH,GAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,GAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAV,CAAA,EAAAa,MAAA,SAAAb,CAAA,qBAAAA,CAAA,sBAAAc,iBAAA,CAAAd,CAAA,EAAAa,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAZ,SAAA,CAAAa,QAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAmB,KAAA,aAAAJ,CAAA,iBAAAf,CAAA,CAAAG,WAAA,EAAAY,CAAA,GAAAf,CAAA,CAAAG,WAAA,CAAAiB,IAAA,MAAAL,CAAA,cAAAA,CAAA,mBAAAM,KAAA,CAAAC,IAAA,CAAAtB,CAAA,OAAAe,CAAA,+DAAAQ,IAAA,CAAAR,CAAA,UAAAD,iBAAA,CAAAd,CAAA,EAAAa,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAkB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAlB,GAAA,CAAAmB,MAAA,EAAAD,GAAA,GAAAlB,GAAA,CAAAmB,MAAA,WAAAlB,CAAA,MAAAmB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAAjB,CAAA,GAAAiB,GAAA,EAAAjB,CAAA,IAAAmB,IAAA,CAAAnB,CAAA,IAAAD,GAAA,CAAAC,CAAA,UAAAmB,IAAA;AAAA,SAAAjB,sBAAAkB,CAAA,EAAAC,CAAA,QAAAC,CAAA,WAAAF,CAAA,gCAAA1B,MAAA,IAAA0B,CAAA,CAAA1B,MAAA,CAAAC,QAAA,KAAAyB,CAAA,4BAAAE,CAAA,QAAAC,CAAA,EAAAf,CAAA,EAAAR,CAAA,EAAAwB,CAAA,EAAAC,CAAA,OAAAC,CAAA,OAAAjC,CAAA,iBAAAO,CAAA,IAAAsB,CAAA,GAAAA,CAAA,CAAAX,IAAA,CAAAS,CAAA,GAAAO,IAAA,QAAAN,CAAA,QAAAZ,MAAA,CAAAa,CAAA,MAAAA,CAAA,UAAAI,CAAA,uBAAAA,CAAA,IAAAH,CAAA,GAAAvB,CAAA,CAAAW,IAAA,CAAAW,CAAA,GAAAM,IAAA,MAAAH,CAAA,CAAAI,IAAA,CAAAN,CAAA,CAAAO,KAAA,GAAAL,CAAA,CAAAP,MAAA,KAAAG,CAAA,GAAAK,CAAA,iBAAAN,CAAA,IAAA3B,CAAA,OAAAe,CAAA,GAAAY,CAAA,yBAAAM,CAAA,YAAAJ,CAAA,eAAAE,CAAA,GAAAF,CAAA,cAAAb,MAAA,CAAAe,CAAA,MAAAA,CAAA,2BAAA/B,CAAA,QAAAe,CAAA,aAAAiB,CAAA;AAAA,SAAAxB,gBAAAF,GAAA,QAAAe,KAAA,CAAAiB,OAAA,CAAAhC,GAAA,UAAAA,GAAA;AAAA,SAAAiC,QAAAT,CAAA,EAAAH,CAAA,QAAAE,CAAA,GAAAb,MAAA,CAAAwB,IAAA,CAAAV,CAAA,OAAAd,MAAA,CAAAyB,qBAAA,QAAAzC,CAAA,GAAAgB,MAAA,CAAAyB,qBAAA,CAAAX,CAAA,GAAAH,CAAA,KAAA3B,CAAA,GAAAA,CAAA,CAAA0C,MAAA,WAAAf,CAAA,WAAAX,MAAA,CAAA2B,wBAAA,CAAAb,CAAA,EAAAH,CAAA,EAAAiB,UAAA,OAAAf,CAAA,CAAAO,IAAA,CAAAS,KAAA,CAAAhB,CAAA,EAAA7B,CAAA,YAAA6B,CAAA;AAAA,SAAAiB,cAAAhB,CAAA,aAAAH,CAAA,MAAAA,CAAA,GAAAoB,SAAA,CAAAtB,MAAA,EAAAE,CAAA,UAAAE,CAAA,WAAAkB,SAAA,CAAApB,CAAA,IAAAoB,SAAA,CAAApB,CAAA,QAAAA,CAAA,OAAAY,OAAA,CAAAvB,MAAA,CAAAa,CAAA,OAAAmB,OAAA,WAAArB,CAAA,IAAAsB,eAAA,CAAAnB,CAAA,EAAAH,CAAA,EAAAE,CAAA,CAAAF,CAAA,SAAAX,MAAA,CAAAkC,yBAAA,GAAAlC,MAAA,CAAAmC,gBAAA,CAAArB,CAAA,EAAAd,MAAA,CAAAkC,yBAAA,CAAArB,CAAA,KAAAU,OAAA,CAAAvB,MAAA,CAAAa,CAAA,GAAAmB,OAAA,WAAArB,CAAA,IAAAX,MAAA,CAAAoC,cAAA,CAAAtB,CAAA,EAAAH,CAAA,EAAAX,MAAA,CAAA2B,wBAAA,CAAAd,CAAA,EAAAF,CAAA,iBAAAG,CAAA;AAAA,SAAAmB,gBAAAI,GAAA,EAAAC,GAAA,EAAAjB,KAAA,IAAAiB,GAAA,GAAAC,cAAA,CAAAD,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAArC,MAAA,CAAAoC,cAAA,CAAAC,GAAA,EAAAC,GAAA,IAAAjB,KAAA,EAAAA,KAAA,EAAAO,UAAA,QAAAY,YAAA,QAAAC,QAAA,oBAAAJ,GAAA,CAAAC,GAAA,IAAAjB,KAAA,WAAAgB,GAAA;AAAA,SAAAE,eAAA1B,CAAA,QAAAtB,CAAA,GAAAmD,YAAA,CAAA7B,CAAA,gCAAA9B,OAAA,CAAAQ,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAmD,aAAA7B,CAAA,EAAAF,CAAA,oBAAA5B,OAAA,CAAA8B,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAC,CAAA,GAAAD,CAAA,CAAA5B,MAAA,CAAA0D,WAAA,kBAAA7B,CAAA,QAAAvB,CAAA,GAAAuB,CAAA,CAAAZ,IAAA,CAAAW,CAAA,EAAAF,CAAA,gCAAA5B,OAAA,CAAAQ,CAAA,UAAAA,CAAA,YAAAK,SAAA,yEAAAe,CAAA,GAAAiC,MAAA,GAAAC,MAAA,EAAAhC,CAAA;AAE3D,IAAMiC,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAG,IAAAE,8BAAU,EAAC;EAClCC,aAAa,EAAE;AACjB,CAAC,CAAC;AAEF,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,IAAA,EAA+B;EAAA,IAAAC,eAAA,EAAAC,OAAA,EAAAC,qBAAA;EAAA,IAAzBC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;EAC3C,IAAMC,eAAe,GAAG;IACtBC,OAAO,EAAEF,kBAAkB,CAACE,OAAO;IACnCC,aAAa,EAAEH,kBAAkB,CAACG;EACpC,CAAC;EACD,IAAMC,cAAc,GAAG,0BAA0B;EACjD,IAAMC,wBAAwB,GAAA9B,aAAA;IAC5B+B,QAAQ,EAAE,wBAAwB;IAClCzD,IAAI,EAAE,+BAA+B;IACrC0D,QAAQ,EAAE,2BAA2B;IACrCC,YAAY,EAAE;EAA+B,GAC1CP,eAAe,CACnB;EACD,IAAAQ,+BAAoB,EAAC,gDAAgD,EAAER,eAAe,CAAC;EACvF,IAAAQ,+BAAoB,EAAC,uCAAuC,EAAAlC,aAAA,CAAAA,aAAA,KACvD0B,eAAe;IAClBS,QAAQ,EAAE;EAA2B,EACtC,CAAC;EACF,IAAAC,yBAAc,EAAC,mBAAmB,EAAEN,wBAAwB,CAAC;EAC7D,IAAAM,yBAAc,EAAC,uCAAuC,EAAApC,aAAA,CAAAA,aAAA,KACjD0B,eAAe;IAClBW,YAAY,EAAE,eAAe;IAC7BC,QAAQ,KAAAC,MAAA,CAAKV,cAAc,WAAQ;IACnCW,QAAQ,EAAE,QAAQ;IAClBC,QAAQ,EAAEZ;EAAc,EACzB,CAAC;EAEF,IAAMa,aAAa,GAAG,IAAAC,iCAAyB,EAAC,CAAC;EACjD,CAAArB,eAAA,IAAAC,OAAA,GAAAqB,MAAM,EAACC,OAAO,cAAAvB,eAAA,eAAdA,eAAA,CAAAlD,IAAA,CAAAmD,OAAA,EAAiB,MAAM,EAAE;IACvB,OAAO,EAAE,uCAAuC;IAChDuB,WAAW,EAAE;MACXC,EAAE,EAAEL;IACN,CAAC;IACDM,QAAQ,EAAE;MACRC,QAAQ,EAAE,YAAY;MACtBC,MAAM,EAAE,UAAU;MAClBC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;MACnCC,WAAW,EAAE,CAAC;QACZC,KAAK,GAAA/B,qBAAA,GAAEC,kBAAkB,CAACE,OAAO,cAAAH,qBAAA,uBAA1BA,qBAAA,CAA4BgC,WAAW,CAAC,CAAC;QAChDC,OAAO,EAAE,SAAS;QAClBnF,IAAI,EAAEmD,kBAAkB,CAACiC;MAC3B,CAAC;IACH;EACF,CAAC,CAAC;AACJ,CAAC;AAED,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAuD;EAAA,IAAjDC,kBAAkB,GAAAD,KAAA,CAAlBC,kBAAkB;IAAEC,sBAAsB,GAAAF,KAAA,CAAtBE,sBAAsB;EACvE,IAAIC,gBAAgB,GAAG,EAAE;EACzB,IAAMC,cAAc,GAAGF,sBAAsB,KAAK,IAAI;EACtD,IAAMG,eAAe,GAAG,CAACJ,kBAAkB,CAACK,IAAI,CAAC,UAAAC,KAAA;IAAA,IAAGC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IAAA,OAAOA,IAAI,KAAKN,sBAAsB;EAAA,EAAC;EAE/FC,gBAAgB,GAAGF,kBAAkB,CAACjE,MAAM,CAAC,UAAAyE,KAAA,EAAuB;IAAA,IAApBC,OAAO,GAAAD,KAAA,CAAPC,OAAO;MAAEF,IAAI,GAAAC,KAAA,CAAJD,IAAI;IAC3D,IAAIJ,cAAc,IAAII,IAAI,KAAK,IAAI,EAAE;MACnC,OAAO,KAAK;IACd;IAEA,OAAOE,OAAO;EAChB,CAAC,CAAC;EAEF,IAAIL,eAAe,EAAE;IACnBF,gBAAgB,CAACzE,IAAI,CAAC;MAAE8E,IAAI,EAAEN,sBAAsB;MAAES,KAAK,EAAE;IAAW,CAAC,CAAC;EAC5E;EAEA,OAAOR,gBAAgB;AACzB,CAAC;AAED,IAAMS,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EASnB;EAAA,IARJC,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;IAChBC,mBAAmB,GAAAF,KAAA,CAAnBE,mBAAmB;IACnBC,KAAK,GAAAH,KAAA,CAALG,KAAK;IACLC,WAAW,GAAAJ,KAAA,CAAXI,WAAW;IACXC,UAAU,GAAAL,KAAA,CAAVK,UAAU;IACVrD,kBAAkB,GAAAgD,KAAA,CAAlBhD,kBAAkB;IAClBoC,kBAAkB,GAAAY,KAAA,CAAlBZ,kBAAkB;IAClBC,sBAAsB,GAAAW,KAAA,CAAtBX,sBAAsB;EAEtB,IAAMiB,sBAAsB,GAAGpB,mBAAmB,CAAC;IAAEE,kBAAkB,EAAlBA,kBAAkB;IAAEC,sBAAsB,EAAtBA;EAAuB,CAAC,CAAC;EAClG,IAAAkB,cAAA,GAA0C,IAAAC,iCAAa,EACrDjE,SAAS,CAACG,aAAa,EACvB4D,sBAAsB,CAACG,SAAS,CAAC,UAACC,IAAI;MAAA,OAAKA,IAAI,CAACf,IAAI,KAAKM,gBAAgB;IAAA,EAC3E,CAAC;IAAAU,eAAA,GAAA7H,cAAA,CAAAyH,cAAA;IAHM7D,aAAa,GAAAiE,eAAA;IAAEC,gBAAgB,GAAAD,eAAA;EAKtC,IAAME,QAAQ,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACjC,IAAIV,WAAW,EAAE;MACfzD,eAAe,CAAC;QAAEK,kBAAkB,EAAlBA;MAAmB,CAAC,CAAC;MACvCmB,MAAM,CAAC4C,IAAI,CAACV,UAAU,EAAE,OAAO,CAAC;IAClC,CAAC,MAAM;MACL,IAAMW,mBAAmB,GAAGV,sBAAsB,CAAC5D,aAAa,CAAC,CAACiD,IAAI;MACtEO,mBAAmB,CAACc,mBAAmB,CAAC;IAC1C;IACAb,KAAK,CAAC,CAAC;EACT,CAAC,EAAE,CAACzD,aAAa,CAAC,CAAC;;EAEnB;AACF;AACA;AACA;AACA;AACA;EACE,IAAMuE,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IAC3B,IAAAtD,yBAAc,EAAC,oCAAoC,EAAApC,aAAA,CAAAA,aAAA,KAC9CyB,kBAAkB;MACrBkE,WAAW,EAAEd;IAAW,EACzB,CAAC;IACFjC,MAAM,CAAC4C,IAAI,CAAC,yFAAyF,EAAE,QAAQ,CAAC;EAClH,CAAC;EAED,OAAO;IACLrE,aAAa,EAAbA,aAAa;IACbkE,gBAAgB,EAAhBA,gBAAgB;IAChBC,QAAQ,EAARA,QAAQ;IACRI,cAAc,EAAdA,cAAc;IACdX,sBAAsB,EAAtBA;EACF,CAAC;AACH,CAAC;AAAC,IAAAa,QAAA,GAAA3E,OAAA,cAEauD,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useTranslationModal.js","names":["_react","require","_reactUnitTestUtils","_analytics","_cookie","_typeof","o","Symbol","iterator","constructor","prototype","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","minLen","_arrayLikeToArray","n","Object","toString","call","slice","name","Array","from","test","len","length","arr2","r","l","t","e","u","a","f","next","done","push","value","isArray","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","obj","key","_toPropertyKey","configurable","writable","_toPrimitive","toPrimitive","String","Number","stateKeys","exports","StrictDict","selectedIndex","logUpgradeClick","_ref","_getCookies","_window$tagular","_window","_logEventProperties$o","logEventProperties","eventProperties","org_key","courserun_key","upsellPageName","promotionEventProperties","creative","position","promotion_id","sendTrackingLogEvent","location","sendTrackEvent","linkCategory","linkName","concat","linkType","pageName","correlationId","getCookies","tglr_correlation_id","window","tagular","correlation","id","metadata","category","action","timestamp","Date","toISOString","productList","brand","toLowerCase","variant","course_name","getEnabledLanguages","_ref2","availableLanguages","originalCourseLanguage","enabledLanguages","excludeEnglish","missingLanguage","some","_ref3","code","_ref4","enabled","label","useTranslationModal","_ref5","selectedLanguage","setSelectedLanguage","close","isAuditMode","upgradeUrl","courseEnabledLanguages","_useKeyedState","useKeyedState","findIndex","lang","_useKeyedState2","setSelectedIndex","onSubmit","useCallback","open","newSelectedLanguage","logSurveyClick","isAuditUser","_default"],"sources":["../../../../src/translation-button/translation-selection/translation-modal/useTranslationModal.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { getCookies } from '../../../utils/cookie';\n\nexport const stateKeys = StrictDict({\n selectedIndex: 'selectedIndex',\n});\n\nconst logUpgradeClick = ({ logEventProperties }) => {\n const eventProperties = {\n org_key: logEventProperties.org_key,\n courserun_key: logEventProperties.courserun_key,\n };\n const upsellPageName = 'course_translation_modal';\n const promotionEventProperties = {\n creative: 'translationmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'translation-modal-message',\n promotion_id: 'courseware_translation_upsell',\n ...eventProperties,\n };\n sendTrackingLogEvent('edx.bi.course.upgrade.translationmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'translation-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n\n const correlationId = getCookies()?.tglr_correlation_id;\n window.tagular?.('beam', {\n '@type': 'core.conversions.ConversionTracked.v2',\n correlation: {\n id: correlationId,\n },\n metadata: {\n category: 'Enrollment',\n action: 'Upgraded',\n timestamp: new Date().toISOString(),\n productList: [{\n brand: logEventProperties.org_key?.toLowerCase(),\n variant: 'courses',\n name: logEventProperties.course_name,\n }],\n },\n });\n};\n\nconst getEnabledLanguages = ({ availableLanguages, originalCourseLanguage }) => {\n let enabledLanguages = [];\n const excludeEnglish = originalCourseLanguage !== 'en';\n const missingLanguage = !availableLanguages.some(({ code }) => code === originalCourseLanguage);\n\n enabledLanguages = availableLanguages.filter(({ enabled, code }) => {\n if (excludeEnglish && code === 'en') {\n return false;\n }\n\n return enabled;\n });\n\n if (missingLanguage) {\n enabledLanguages.push({ code: originalCourseLanguage, label: 'original' });\n }\n\n return enabledLanguages;\n};\n\nconst useTranslationModal = ({\n selectedLanguage,\n setSelectedLanguage,\n close,\n isAuditMode,\n upgradeUrl,\n logEventProperties,\n availableLanguages,\n originalCourseLanguage,\n}) => {\n const courseEnabledLanguages = getEnabledLanguages({ availableLanguages, originalCourseLanguage });\n const [selectedIndex, setSelectedIndex] = useKeyedState(\n stateKeys.selectedIndex,\n courseEnabledLanguages.findIndex((lang) => lang.code === selectedLanguage),\n );\n\n const onSubmit = useCallback(() => {\n if (isAuditMode) {\n logUpgradeClick({ logEventProperties });\n window.open(upgradeUrl, '_self');\n } else {\n const newSelectedLanguage = courseEnabledLanguages[selectedIndex].code;\n setSelectedLanguage(newSelectedLanguage);\n }\n close();\n }, [selectedIndex]);\n\n /*\n 2025-01-21\n This function not currently in use, but may be used again in the future so not removing the code here.\n The import and pasing of this function have been removed except in `./NewLanguageFeedback.jsx` where it\n is actually used.\n */\n const logSurveyClick = () => {\n sendTrackEvent('addtional_languages_survey_clicked', {\n ...logEventProperties,\n isAuditUser: isAuditMode,\n });\n window.open('https://participant.use2.usertesting.com/se/invite/8145e5f3-4f48-46b7-8d97-78e1bec900d0', '_blank');\n };\n\n return {\n selectedIndex,\n setSelectedIndex,\n onSubmit,\n logSurveyClick,\n courseEnabledLanguages,\n };\n};\n\nexport default useTranslationModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.stateKeys = exports.selectedLanguageKey = exports["default"] = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
exports.stateKeys = exports.selectedLanguageKey = exports["default"] = exports.LONG_LOADING_DELAY_MS = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
10
|
var _reactUnitTestUtils = require("@edx/react-unit-test-utils");
|
|
10
11
|
var _modelStore = require("@src/generic/model-store");
|
|
@@ -15,6 +16,8 @@ var _SVGLoader = _interopRequireDefault(require("./SVGLoader"));
|
|
|
15
16
|
require("./index.scss");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
18
21
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
19
22
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
20
23
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -25,6 +28,7 @@ var selectedLanguageKey = exports.selectedLanguageKey = 'selectedLanguages';
|
|
|
25
28
|
var stateKeys = exports.stateKeys = (0, _reactUnitTestUtils.StrictDict)({
|
|
26
29
|
selectedLanguage: 'selectedLanguage'
|
|
27
30
|
});
|
|
31
|
+
var LONG_LOADING_DELAY_MS = exports.LONG_LOADING_DELAY_MS = 2000;
|
|
28
32
|
var TranslationsLoader = function TranslationsLoader(_ref) {
|
|
29
33
|
var courseId = _ref.courseId,
|
|
30
34
|
defaultLoaderComponent = _ref.defaultLoaderComponent;
|
|
@@ -37,11 +41,27 @@ var TranslationsLoader = function TranslationsLoader(_ref) {
|
|
|
37
41
|
var _useKeyedState = (0, _reactUnitTestUtils.useKeyedState)(stateKeys.selectedLanguage, selectedLanguageItem[courseId] || courseLanguage),
|
|
38
42
|
_useKeyedState2 = _slicedToArray(_useKeyedState, 1),
|
|
39
43
|
selectedLanguage = _useKeyedState2[0];
|
|
44
|
+
var _useState = (0, _react.useState)(false),
|
|
45
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
46
|
+
showAdditionalMessage = _useState2[0],
|
|
47
|
+
setShowAdditionalMessage = _useState2[1];
|
|
48
|
+
(0, _react.useEffect)(function () {
|
|
49
|
+
if (courseLanguage !== selectedLanguage) {
|
|
50
|
+
var timer = setTimeout(function () {
|
|
51
|
+
setShowAdditionalMessage(true);
|
|
52
|
+
}, LONG_LOADING_DELAY_MS);
|
|
53
|
+
return function () {
|
|
54
|
+
return clearTimeout(timer);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return undefined; // to remove linting error
|
|
58
|
+
}, [courseLanguage, selectedLanguage]);
|
|
40
59
|
return courseLanguage !== selectedLanguage ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
41
60
|
className: "d-flex justify-content-center align-items-center flex-column",
|
|
42
61
|
id: "translating-loader-container",
|
|
43
62
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SVGLoader["default"], {}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
44
63
|
className: "mt-2",
|
|
64
|
+
id: "loader-text",
|
|
45
65
|
children: [formatMessage(_messages["default"].translatingLoaderText), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
46
66
|
className: "ellipsis-container",
|
|
47
67
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -52,6 +72,10 @@ var TranslationsLoader = function TranslationsLoader(_ref) {
|
|
|
52
72
|
children: "."
|
|
53
73
|
})]
|
|
54
74
|
})]
|
|
75
|
+
}), showAdditionalMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
|
|
76
|
+
className: "mt-2",
|
|
77
|
+
id: "additional-message",
|
|
78
|
+
children: [formatMessage(_messages["default"].translatingLoaderAdditionalTextFirstLine), " ", /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {}), formatMessage(_messages["default"].translatingLoaderAdditionalTextWaitNote)]
|
|
55
79
|
})]
|
|
56
80
|
}) : defaultLoaderComponent;
|
|
57
81
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_reactUnitTestUtils","_modelStore","_i18n","_localStorage","_messages","_SVGLoader","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","e","WeakMap","r","t","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","Array","from","test","len","length","arr2","l","Symbol","iterator","f","next","done","push","value","isArray","selectedLanguageKey","exports","stateKeys","StrictDict","selectedLanguage","LONG_LOADING_DELAY_MS","TranslationsLoader","_ref","courseId","defaultLoaderComponent","_useIntl","useIntl","formatMessage","_useModel","useModel","language","courseLanguage","selectedLanguageItem","getLocalStorage","_useKeyedState","useKeyedState","_useKeyedState2","_useState","useState","_useState2","showAdditionalMessage","setShowAdditionalMessage","useEffect","timer","setTimeout","clearTimeout","undefined","jsxs","className","id","children","jsx","messages","translatingLoaderText","translatingLoaderAdditionalTextFirstLine","translatingLoaderAdditionalTextWaitNote","propTypes","PropTypes","string","isRequired","node","_default"],"sources":["../../src/translations-loader/index.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { StrictDict, useKeyedState } from '@edx/react-unit-test-utils';\nimport { useModel } from '@src/generic/model-store';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { getLocalStorage } from '@src/data/localStorage';\n\nimport messages from './messages';\nimport SVGLoader from './SVGLoader';\nimport './index.scss';\n\nexport const selectedLanguageKey = 'selectedLanguages';\nexport const stateKeys = StrictDict({\n selectedLanguage: 'selectedLanguage',\n});\n\nexport const LONG_LOADING_DELAY_MS = 2000;\n\nconst TranslationsLoader = ({ courseId, defaultLoaderComponent }) => {\n const { formatMessage } = useIntl();\n const { language } = useModel('coursewareMeta', courseId);\n const courseLanguage = language || 'en';\n const selectedLanguageItem = getLocalStorage(selectedLanguageKey) || {};\n const [selectedLanguage] = useKeyedState(\n stateKeys.selectedLanguage,\n selectedLanguageItem[courseId] || courseLanguage,\n );\n\n const [showAdditionalMessage, setShowAdditionalMessage] = useState(false);\n\n useEffect(() => {\n if (courseLanguage !== selectedLanguage) {\n const timer = setTimeout(() => {\n setShowAdditionalMessage(true);\n }, LONG_LOADING_DELAY_MS);\n\n return () => clearTimeout(timer);\n }\n return undefined; // to remove linting error\n }, [courseLanguage, selectedLanguage]);\n\n return courseLanguage !== selectedLanguage ? (\n <div\n className=\"d-flex justify-content-center align-items-center flex-column\"\n id=\"translating-loader-container\"\n >\n <SVGLoader />\n <p className=\"mt-2\" id=\"loader-text\">\n {formatMessage(messages.translatingLoaderText)}\n <span className=\"ellipsis-container\">\n <span>.</span>\n <span>.</span>\n <span>.</span>\n </span>\n </p>\n {showAdditionalMessage && (\n <p className=\"mt-2\" id=\"additional-message\">\n {formatMessage(messages.translatingLoaderAdditionalTextFirstLine)} <br />\n {formatMessage(messages.translatingLoaderAdditionalTextWaitNote)}\n </p>\n )}\n </div>\n ) : (\n defaultLoaderComponent\n );\n};\n\nTranslationsLoader.propTypes = {\n courseId: PropTypes.string.isRequired,\n defaultLoaderComponent: PropTypes.node.isRequired,\n};\n\nexport default TranslationsLoader;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,8 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
p {
|
|
6
6
|
font-weight: 400;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
}
|
|
8
|
+
#loader-text{
|
|
9
|
+
font-size: 1.37rem;
|
|
10
|
+
line-height: 2.25rem;
|
|
11
|
+
}
|
|
12
|
+
#additional-message{
|
|
13
|
+
font-size: 0.875rem;
|
|
14
|
+
line-height: 1.5rem;
|
|
15
|
+
text-align: center;
|
|
16
|
+
word-wrap: break-word;
|
|
9
17
|
}
|
|
10
18
|
}
|
|
11
19
|
|
|
@@ -10,6 +10,16 @@ var messages = (0, _i18n.defineMessages)({
|
|
|
10
10
|
id: 'unit-translation-selector-plugin.translationsLoader.loaderText',
|
|
11
11
|
defaultMessage: 'Translating',
|
|
12
12
|
description: 'Translating text shown when translating to a language'
|
|
13
|
+
},
|
|
14
|
+
translatingLoaderAdditionalTextFirstLine: {
|
|
15
|
+
id: 'unit-translation-selector-plugin.translationsLoader.additionalTextFirstLine',
|
|
16
|
+
defaultMessage: 'Wow, you’re the first person to translate to this language!',
|
|
17
|
+
description: 'First line of additional message shown after a short delay if translation takes longer than expected'
|
|
18
|
+
},
|
|
19
|
+
translatingLoaderAdditionalTextWaitNote: {
|
|
20
|
+
id: 'unit-translation-selector-plugin.translationsLoader.additionalTextWaitNote',
|
|
21
|
+
defaultMessage: 'This may take a few more seconds than usual, hang tight.',
|
|
22
|
+
description: 'Wait note for additional message'
|
|
13
23
|
}
|
|
14
24
|
});
|
|
15
25
|
var _default = exports["default"] = messages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","translatingLoaderText","id","defaultMessage","description","_default","exports"],"sources":["../../src/translations-loader/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n translatingLoaderText: {\n id: 'unit-translation-selector-plugin.translationsLoader.loaderText',\n defaultMessage: 'Translating',\n description: 'Translating text shown when translating to a language',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,qBAAqB,EAAE;IACrBC,EAAE,EAAE,gEAAgE;IACpEC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,
|
|
1
|
+
{"version":3,"file":"messages.js","names":["_i18n","require","messages","defineMessages","translatingLoaderText","id","defaultMessage","description","translatingLoaderAdditionalTextFirstLine","translatingLoaderAdditionalTextWaitNote","_default","exports"],"sources":["../../src/translations-loader/messages.js"],"sourcesContent":["import { defineMessages } from '@edx/frontend-platform/i18n';\n\nconst messages = defineMessages({\n translatingLoaderText: {\n id: 'unit-translation-selector-plugin.translationsLoader.loaderText',\n defaultMessage: 'Translating',\n description: 'Translating text shown when translating to a language',\n },\n translatingLoaderAdditionalTextFirstLine: {\n id: 'unit-translation-selector-plugin.translationsLoader.additionalTextFirstLine',\n defaultMessage: 'Wow, you’re the first person to translate to this language!',\n description: 'First line of additional message shown after a short delay if translation takes longer than expected',\n },\n translatingLoaderAdditionalTextWaitNote: {\n id: 'unit-translation-selector-plugin.translationsLoader.additionalTextWaitNote',\n defaultMessage: 'This may take a few more seconds than usual, hang tight.',\n description: 'Wait note for additional message',\n },\n});\n\nexport default messages;\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAMC,QAAQ,GAAG,IAAAC,oBAAc,EAAC;EAC9BC,qBAAqB,EAAE;IACrBC,EAAE,EAAE,gEAAgE;IACpEC,cAAc,EAAE,aAAa;IAC7BC,WAAW,EAAE;EACf,CAAC;EACDC,wCAAwC,EAAE;IACxCH,EAAE,EAAE,6EAA6E;IACjFC,cAAc,EAAE,6DAA6D;IAC7EC,WAAW,EAAE;EACf,CAAC;EACDE,uCAAuC,EAAE;IACvCJ,EAAE,EAAE,4EAA4E;IAChFC,cAAc,EAAE,0DAA0D;IAC1EC,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,cAEYT,QAAQ","ignoreList":[]}
|
package/dist/utils/cookie.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.getCookies = getCookies;
|
|
6
7
|
exports.handleCorrelationIDCookie = void 0;
|
|
7
8
|
exports.setCookie = setCookie;
|
|
8
9
|
// general cookie setter, expires after 30 minutes
|
|
@@ -18,4 +19,20 @@ var handleCorrelationIDCookie = exports.handleCorrelationIDCookie = function han
|
|
|
18
19
|
setCookie('tglr_correlation_id', correlationId);
|
|
19
20
|
return correlationId;
|
|
20
21
|
};
|
|
22
|
+
function getCookies() {
|
|
23
|
+
var cookies = document.cookie.split(';');
|
|
24
|
+
var cookieObj = {};
|
|
25
|
+
for (var i = 0; i < cookies.length; i++) {
|
|
26
|
+
var cookie = cookies[i].trim();
|
|
27
|
+
var parts = cookie.split('=');
|
|
28
|
+
var key = parts[0];
|
|
29
|
+
var value = parts.slice(1).join('=');
|
|
30
|
+
try {
|
|
31
|
+
cookieObj[key] = decodeURIComponent(value);
|
|
32
|
+
} catch (e) {
|
|
33
|
+
cookieObj[key] = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return cookieObj;
|
|
37
|
+
}
|
|
21
38
|
//# sourceMappingURL=cookie.js.map
|
package/dist/utils/cookie.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","names":["setCookie","cookieName","cookieValue","a","Date","setTime","getTime","document","cookie","concat","toGMTString","handleCorrelationIDCookie","exports","correlationId","window","crypto","randomUUID"],"sources":["../../src/utils/cookie.js"],"sourcesContent":["// general cookie setter, expires after 30 minutes\nexport function setCookie(cookieName, cookieValue) {\n const a = new Date();\n // set to expire after 30 minutes, or 1.8 million milliseconds\n a.setTime(a.getTime() + 1800000);\n document.cookie = `${cookieName}\\x3d${cookieValue}; expires\\x3d${a.toGMTString()}; path\\x3d/; domain\\x3d.edx.org;`;\n}\n\nexport const handleCorrelationIDCookie = () => {\n // set correlation ID to a random UUID\n const correlationId = window.crypto.randomUUID();\n\n setCookie('tglr_correlation_id', correlationId);\n return correlationId;\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["setCookie","cookieName","cookieValue","a","Date","setTime","getTime","document","cookie","concat","toGMTString","handleCorrelationIDCookie","exports","correlationId","window","crypto","randomUUID","getCookies","cookies","split","cookieObj","i","length","trim","parts","key","value","slice","join","decodeURIComponent","e"],"sources":["../../src/utils/cookie.js"],"sourcesContent":["// general cookie setter, expires after 30 minutes\nexport function setCookie(cookieName, cookieValue) {\n const a = new Date();\n // set to expire after 30 minutes, or 1.8 million milliseconds\n a.setTime(a.getTime() + 1800000);\n document.cookie = `${cookieName}\\x3d${cookieValue}; expires\\x3d${a.toGMTString()}; path\\x3d/; domain\\x3d.edx.org;`;\n}\n\nexport const handleCorrelationIDCookie = () => {\n // set correlation ID to a random UUID\n const correlationId = window.crypto.randomUUID();\n\n setCookie('tglr_correlation_id', correlationId);\n return correlationId;\n};\n\nexport function getCookies() {\n const cookies = document.cookie.split(';');\n const cookieObj = {};\n\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i].trim();\n const parts = cookie.split('=');\n const key = parts[0];\n const value = parts.slice(1).join('=');\n try {\n cookieObj[key] = decodeURIComponent(value);\n } catch (e) {\n cookieObj[key] = value;\n }\n }\n return cookieObj;\n}\n"],"mappings":";;;;;;;;AAAA;AACO,SAASA,SAASA,CAACC,UAAU,EAAEC,WAAW,EAAE;EACjD,IAAMC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC;EACpB;EACAD,CAAC,CAACE,OAAO,CAACF,CAAC,CAACG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC;EAChCC,QAAQ,CAACC,MAAM,MAAAC,MAAA,CAAMR,UAAU,OAAAQ,MAAA,CAAOP,WAAW,gBAAAO,MAAA,CAAgBN,CAAC,CAACO,WAAW,CAAC,CAAC,+BAAkC;AACpH;AAEO,IAAMC,yBAAyB,GAAAC,OAAA,CAAAD,yBAAA,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EAC7C;EACA,IAAME,aAAa,GAAGC,MAAM,CAACC,MAAM,CAACC,UAAU,CAAC,CAAC;EAEhDhB,SAAS,CAAC,qBAAqB,EAAEa,aAAa,CAAC;EAC/C,OAAOA,aAAa;AACtB,CAAC;AAEM,SAASI,UAAUA,CAAA,EAAG;EAC3B,IAAMC,OAAO,GAAGX,QAAQ,CAACC,MAAM,CAACW,KAAK,CAAC,GAAG,CAAC;EAC1C,IAAMC,SAAS,GAAG,CAAC,CAAC;EAEpB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,OAAO,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IACvC,IAAMb,MAAM,GAAGU,OAAO,CAACG,CAAC,CAAC,CAACE,IAAI,CAAC,CAAC;IAChC,IAAMC,KAAK,GAAGhB,MAAM,CAACW,KAAK,CAAC,GAAG,CAAC;IAC/B,IAAMM,GAAG,GAAGD,KAAK,CAAC,CAAC,CAAC;IACpB,IAAME,KAAK,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IACtC,IAAI;MACFR,SAAS,CAACK,GAAG,CAAC,GAAGI,kBAAkB,CAACH,KAAK,CAAC;IAC5C,CAAC,CAAC,OAAOI,CAAC,EAAE;MACVV,SAAS,CAACK,GAAG,CAAC,GAAGC,KAAK;IACxB;EACF;EACA,OAAON,SAAS;AAClB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edx/unit-title-plugin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"description": "Unit title plugin in frontend-app-learning",
|
|
5
5
|
"main": "dist",
|
|
6
6
|
"author": "edX",
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"rosie": "^2.1.1"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "c779833bef24ef851afcb927a759b17572a7aec2"
|
|
51
51
|
}
|