1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2471],{35556:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/platform/learning/roadmap",function(){return n(54869)}])},49408:function(e,t,n){"use strict";n.d(t,{h:function(){return i}});var r=n(75271),o=n(93726),a=n(14960),l=n(42065);function i(){var e,t;let n=(0,o.useRouter)(),{userData:i,isUserLoading:s,isUserFetched:u}=(0,a.v$)(),d=(0,r.useRef)(!1),c=null==n?void 0:null===(e=n.query)||void 0===e?void 0:e.mode,h=Array.isArray(c)?null!==(t=c[0])&&void 0!==t?t:null:null!=c?c:null,p=u&&!s&&!!(null==i?void 0:i.isTestUnlocked)&&(0,l.Wb)(null==n?void 0:n.pathname,h);return(0,r.useEffect)(()=>{p&&!d.current&&(d.current=!0,n.replace(l.uf))},[p,n]),p}},79121:function(e,t,n){"use strict";n.d(t,{X:function(){return o},l:function(){return r}});let r="/platform/learning/roadmap";function o(e,t){if(!e)return!1;let n=(null==t?void 0:t.syllabus_id)?String(t.syllabus_id):null,r=(null==t?void 0:t.latest_syllabus_id)?String(t.latest_syllabus_id):null;return e===n||e===r}},42065:function(e,t,n){"use strict";n.d(t,{HY:function(){return a},Wb:function(){return o},uf:function(){return r}});let r="/platform?view=skill";function o(e,t){let n=e||"";return!!n.startsWith("/platform/learning")||n.startsWith("/platform")&&"training"===(t||"").toLowerCase()}function a(e){return!e.testModeActive&&!e.knowledgeUnlocked&&!e.skillUnlocked}},73038:function(e,t,n){"use strict";n.d(t,{Lz:function(){return o},cC:function(){return l},k0:function(){return a}});let r={knowledge:"tour-arrow-knowledge",skill:"tour-arrow-skill",neutral:"tour-arrow-neutral"};function o(e,t){let{tour:n,arrow:o,highlightElement:a,clearHighlight:l,backBtn:i,nextBtn:s}=e,u="skill"===o?"skill":"knowledge",d="skill"===o?r.skill:r.knowledge;t.includeSpark&&n.addStep({id:"manu-spark",title:"Ask Manu about a card",text:"Clicking the AI Icon on each card triggers an ask to Manu and you either get relevant insights or an explanation of the relevant data.",classes:d,attachTo:{element:'[data-tour="dashboard-manu-spark"]',on:"left"},beforeShowPromise:async()=>{t.onBeforeSpark&&await t.onBeforeSpark(),function(e){let t=e.getById("manu-spark"),n=document.querySelector('[data-tour="dashboard-manu-spark"]');if(!t||!n)return;let{width:r,height:o}=n.getBoundingClientRect();r<2||o<2||(t.options.modalOverlayOpeningPadding=6,t.options.modalOverlayOpeningRadius=Math.min(r+12,o+12)/2)}(n)},when:{show:()=>a('[data-tour="dashboard-manu-spark"]',u),hide:l},buttons:[i,s]}),n.addStep({id:"manu-ai",title:"Meet Manu",text:"Our agentic AI coach who benefits from our combined 5 decades of anti-financial crime due diligence expertise and uses that to deliver tailored upskilling. Please note that Manu is not a chatbot so being a coach means coaching and not just providing you answers to questions you have so prepare to be challenged at times.",classes:d,attachTo:{element:"#manu-chat-container",on:"left"},when:{show:()=>{try{window.dispatchEvent(new CustomEvent("dashboardTourShowManu"))}catch(e){}a("#manu-chat-container",u),setTimeout(()=>a("#manu-chat-container",u),300)},hide:l},buttons:[i,s]}),n.addStep({id:"chat-input",title:"Ask Manu",text:"Ask a question and the more specific you are the better. As with all AI responses you still need to use judgement and, if you need a second opinion, we always have humans-in-the-loop",classes:d,attachTo:{element:"#manu-chat-container textarea",on:"left"},when:{show:()=>a("#manu-chat-container textarea",u),hide:l},buttons:[i,s]})}function a(e){let{tour:t,highlightElement:n,clearHighlight:o,backBtn:a,nextBtn:l}=e;t.addStep({id:"help-icon",title:"Help",text:"Seek help as needed.",classes:r.neutral,attachTo:{element:"svg.lucide-circle-help",on:"bottom"},when:{show:()=>n("svg.lucide-circle-help"),hide:o},buttons:[a,l]}),t.addStep({id:"roadmap-icon",title:"Learning roadmap",text:"Access the program roadmap that is currently active or go to your profile page to access all programs.",classes:r.neutral,attachTo:{element:"svg.lucide-map",on:"bottom"},when:{show:()=>n("svg.lucide-map"),hide:o},buttons:[a,l]}),t.addStep({id:"home-icon",title:"Home",text:"Go home",classes:r.neutral,attachTo:{element:"svg.lucide-house",on:"bottom"},when:{show:()=>n("svg.lucide-house"),hide:o},buttons:[a,l]})}function l(e,t,n){let r=e.steps;r.length<2||r[r.length-1].updateStepOptions({buttons:[t,n]})}},85454:function(e,t,n){"use strict";n.d(t,{E:function(){return o}});let r=["shepherd-target-highlight--knowledge","shepherd-target-highlight--skill","shepherd-target-highlight--neutral"];function o(e){var t;let n=null!==(t=null==e?void 0:e.defaultTone)&&void 0!==t?t:"neutral",o=null,a=()=>{o&&(o.classList.remove("shepherd-target-highlight",...r),o=null)};return{clearHighlight:a,highlightElement:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n;if(a(),!e)return;let r="string"==typeof e?document.querySelector(e):e;r instanceof HTMLElement&&(r.classList.add("shepherd-target-highlight","shepherd-target-highlight--".concat(t)),o=r)}}}},61308:function(e,t,n){"use strict";function r(e,t){var n;
1let r=null!==(n=null==t?void 0:t.timeoutMs)&&void 0!==n?n:4e3;e.steps.forEach(t=>{let n=t.options.attachTo,o=n&&"string"==typeof n.element?n.element:null;if(!o)return;let a=t.options.beforeShowPromise;t.options.beforeShowPromise=function(){return("function"==typeof a?Promise.resolve(a.call(this)):Promise.resolve()).then(()=>new Promise(e=>{let t=Date.now(),n=()=>{if(document.querySelector(o)){e(!0);return}if(Date.now()-t>=r){e(!1);return}setTimeout(n,100)};n()})).then(n=>{n||setTimeout(()=>{let n=e.getCurrentStep();n&&n.id===t.id&&(e.steps[e.steps.length-1]===t?e.complete():e.next())},0)})}})}n.d(t,{S:function(){return r}})},40923:function(e,t,n){"use strict";n.d(t,{s:function(){return l},u:function(){return a}});let r="cddp_tour_autostarted";function o(){try{return JSON.parse(sessionStorage.getItem(r)||"{}")}catch(e){return{}}}function a(e,t){return!!e&&!0===o()["".concat(e,"#").concat(t)]}function l(e,t){if(e)try{let n=o();n["".concat(e,"#").concat(t)]=!0,sessionStorage.setItem(r,JSON.stringify(n))}catch(e){}}},54869:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return A}});var r=n(52676),o=n(75271),a=n(93726),l=n(34619);let i=(0,l.Z)("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]),s=(0,l.Z)("ArrowUpRight",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var u=n(65211),d=n(45986),c=n(59080),h=n(58488),p=n(62904),m=n(79121),f=n(71161),g=n(90168),b=n(94529),w=n(85656);n(1695);var v=n(85454),k=n(61308),x=n(73038);async function y(e){let t=Date.now();for(;Date.now()-t<8e3;){if(document.querySelector(e))return!0;await new Promise(e=>setTimeout(e,100))}return!1}var _=n(49408),S=n(40923),T=n(70381),j=n(67917);let M=e=>{let{unlocked:t,onClick:n}=e;return t?(0,r.jsx)("button",{type:"button","data-tour":"roadmap-dashboard-button",onClick:n,title:"Open your dashboard",className:"group relative transition-transform outline-none focus:outline-none focus-visible:outline-none cursor-pointer hover:scale-105",children:(0,r.jsxs)("span",{className:(0,j.cn)("relative flex h-11 w-11 shrink-0 items-center justify-center rounded-md border border-white/[0.06] bg-brandAmber/60 text-brandAmberVibrant","transition-all group-hover:bg-brandAmber/40 "),children:[(0,r.jsx)(i,{}),(0,r.jsx)("span",{className:"absolute -top-1.5 -right-1.5 flex h-4 w-4 items-center justify-center rounded-full border border-white/10 bg-dark text-brandAmberVibrant",children:(0,r.jsx)(s,{className:"h-2.5 w-2.5",strokeWidth:2.5})})]})}):null};var A=()=>{var e,t,n,l;let{setPage:i}=(0,c.w)(),s=(0,a.useRouter)(),{data:j,isLoading:A,isError:C,isConfirmedUnassigned:E}=(0,h._)("cddp"),{email:N}=(0,f.xV)(),{data:P}=(0,g.a)(N),O=!!(null==P?void 0:P.knowledge_dashboard_unlocked),{getTourCompleted:I,markTourCompleted:R}=(0,b.n)(),L=N?I(N):null,{shouldAutoStartTour:Z,onTourStarted:D,onTourFinished:q}=(0,T.GB)({email:N,tourCompleted:L,tourCompletedKey:"roadmap_tour"}),B=(0,o.useRef)(!1),W=function(e){let{markTourCompleted:t,email:n,onTourComplete:r}=e;return(0,o.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],o=new w.Z.Tour({defaultStepOptions:{scrollTo:{behavior:"smooth",block:"center"},cancelIcon:{enabled:!0},classes:"shepherd-dashboard-tour shepherd-theme-arrows",buttons:[{text:"Skip",classes:"shepherd-button-secondary",action(){return e&&t("roadmap_tour",null!=n?n:void 0),this.cancel()}}]},useModalOverlay:!0}),{clearHighlight:a,highlightElement:l}=(0,v.E)(),i={text:"Back",classes:"shepherd-button-secondary",action(){return this.back()}},s={text:"Next",action(){return this.next()}};o.addStep({id:"roadmap-welcome",title:"Welcome to your learning roadmap",text:"This is the CDDP learning roadmap. It is your structured learning path which shows you what to learn and in what order. Let's walk through it.",classes:"tour-arrow-knowledge",buttons:[{text:"Skip",classes:"shepherd-button-secondary",action(){return e&&t("roadmap_tour",null!=n?n:void 0),this.cancel()}},{text:"Start",action(){return this.next()}}]}),(0,x.Lz)({tour:o,arrow:"knowledge",highlightElement:l,clearHighlight:a,backBtn:i,nextBtn:s},{includeSpark:!1}),(0,x.k0)({tour:o,arrow:"knowledge",highlightElement:l,clearHighlight:a,backBtn:i,nextBtn:s}),(0,x.cC)(o,i,{text:"Finish tour",action(){return a(),t("roadmap_tour",null!=n?n:void 0),this.complete()}}),o.on("complete",()=>{a(),t("roadmap_tour",null!=n?n:void 0),null==r||r()}),o.on("cancel",()=>{a(),e&&t("roadmap_tour",null!=n?n:void 0)}),(async()=>
1{if(!await y('[data-tour="roadmap-path"]')){e&&t("roadmap_tour",null!=n?n:void 0);return}(0,k.S)(o),e&&t("roadmap_tour",null!=n?n:void 0),o.start()})()},[t,n,r])}({markTourCompleted:R,email:N,onTourComplete:q}),G=(0,o.useRef)(!1),V=function(e){let{markTourCompleted:t,email:n,onGoToDashboard:r}=e;return(0,o.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(w.Z.activeTour)return;let o=new w.Z.Tour({defaultStepOptions:{cancelIcon:{enabled:!0},classes:"shepherd-dashboard-tour shepherd-theme-arrows"},useModalOverlay:!0}),a=()=>t("dashboard_unlock_hint",null!=n?n:void 0);o.addStep({id:"dashboard-unlocked",title:"Great, Module 1 done!",text:"Take a minute to view your progress on the 'Knowledge Dashboard.",classes:"tour-arrow-knowledge",buttons:[{text:"Maybe later",classes:"shepherd-button-secondary",action(){return a(),this.cancel()}},{text:"Go to Dashboard",action(){a(),this.complete(),r()}}]}),o.on("complete",a),o.on("cancel",a),e&&a(),o.start()},[t,n,r])}({markTourCompleted:R,email:N,onGoToDashboard:()=>s.push("/platform")}),z=(0,_.h)();(0,o.useEffect)(()=>{i("learning_roadmap")},[i]),(0,o.useEffect)(()=>{if(G.current||!N||!O||!L||L.dashboard_unlock_hint||(0,S.u)(N,"dashboard_unlock_hint"))return;let e=window.setTimeout(()=>{!G.current&&((0,S.u)(N,"dashboard_unlock_hint")||(G.current=!0,(0,S.s)(N,"dashboard_unlock_hint"),V(!0)))},800);return()=>window.clearTimeout(e)},[N,O,L,V]),(0,o.useEffect)(()=>{if(B.current||!Z||!N||(0,S.u)(N,"roadmap_tour"))return;let e=window.setTimeout(()=>{!B.current&&((0,S.u)(N,"roadmap_tour")||(B.current=!0,(0,S.s)(N,"roadmap_tour"),D(),(null==L?void 0:L.first_tour_auto_triggered)||R("first_tour_auto_triggered",N)))},600);return()=>window.clearTimeout(e)},[Z,N,null==L?void 0:L.first_tour_auto_triggered,R,D,W]),(0,o.useEffect)(()=>{let e=window;return e.startRoadmapTour=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return W(e)},()=>{delete e.startRoadmapTour}},[W]);let H=null!==(e=null==j?void 0:j.syllabus_id)&&void 0!==e?e:null,U=null!==(t=null==j?void 0:j.curriculum_error)&&void 0!==t?t:null,X=null!==(n=null==j?void 0:j.has_curriculum_update)&&void 0!==n&&n,J=null!==(l=null==j?void 0:j.latest_syllabus_id)&&void 0!==l?l:null;return((0,o.useEffect)(()=>{!A&&E&&s.replace("/")},[A,E,s]),z)?null:!A&&(H||C||void 0!==j)?C&&!H?(0,r.jsx)(u.Z,{isPlatform:!0,children:(0,r.jsx)("div",{className:"p-4 text-light2 text-sm",children:"Couldn't load roadmap. Refresh to try again."})}):U?(0,r.jsx)(u.Z,{isPlatform:!0,children:(0,r.jsx)(p.b,{error:U})}):H?(0,r.jsx)(u.Z,{isPlatform:!0,children:(0,r.jsxs)("div",{className:"text-light flex flex-col h-[calc(100vh-70px)] min-h-0 overflow-hidden w-full",children:[X&&(0,r.jsxs)("div",{className:"flex-shrink-0 flex items-center justify-between gap-3 bg-amber/10 border-b border-amber/20 px-4 py-2 text-xs text-amber",children:[(0,r.jsx)("span",{children:"Curriculum update available â your programme content has been refreshed."}),J&&(0,r.jsx)("a",{href:m.l,className:"font-semibold underline underline-offset-2 hover:text-amberVibrant transition-colors whitespace-nowrap",children:"View updated roadmap"})]}),(0,r.jsx)("div",{className:"flex-1 min-h-0 overflow-hidden flex flex-col","data-tour":"roadmap-path",children:(0,r.jsx)(d.Z,{syllabusId:H,hideAssessmentsStat:!0,dashboardSlot:(0,r.jsx)(M,{unlocked:O,onClick:()=>s.push("/platform")})})})]})}):null:(0,r.jsx)(u.Z,{isPlatform:!0,children:(0,r.jsx)("div",{className:"p-4 text-light2 text-sm",children:"Loading..."})})}}},function(e){e.O(0,[6951,6610,4766,2592,8199,6415,4435,5761,8274,5309,3518,9557,3480,5211,7323,1116,2375,8945,9788,4068,9782,4256,5986,2888,9774,179],function(){return e(e.s=35556)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.