diff --git a/index.html b/index.html index f89ecbe..5fb253f 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ -Open Telekom Cloud Status Dashboard
+Open Telekom Cloud Status Dashboard
- \ No newline at end of file + \ No newline at end of file diff --git a/index_6a10.607c49ce.js b/index_6a10.607c49ce.js new file mode 100644 index 0000000..139d9de --- /dev/null +++ b/index_6a10.607c49ce.js @@ -0,0 +1,2 @@ +(function(_){for(var r in _){_[r].__farm_resource_pot__='index_6a10.js';window['48f482be4dd400a82c616a2a754e954c'].__farm_module_system__.register(r,_[r])}})({"01332dcd":function e(e,l,n,c){e._m(l),e.o(l,"ProfileMenu",()=>r);var i=n("036dd75c"),t=n("8c585220"),s=n("725e471d"),o=n("0e1b3d7c");function r(){var e,l=s.useAuth();return i.jsx(t.ScaleTelekomNavItem,{hideOnMobile:!0,children:i.jsxs(t.ScaleMenuFlyout,{children:[i.jsx(t.ScaleButton,{slot:"trigger",variant:"secondary",iconOnly:!0,children:i.jsx(t.ScaleIconUserFileUser,{"accessibility-title":"Menu"})}),i.jsxs(t.ScaleMenuFlyoutList,{children:[i.jsxs(o.Authorized,{children:[i.jsxs(t.ScaleMenuFlyoutItem,{children:["Hi, ",null===(e=l.user)||void 0===e?void 0:e.profile.name]}),i.jsx(t.ScaleMenuFlyoutItem,{"onScale-select":()=>l.signoutRedirect(),children:"Logout"}),i.jsx(t.ScaleMenuFlyoutItem,{children:i.jsx("a",{className:"text-black no-underline",href:"/NewEvent",children:"New Event"})})]}),i.jsx(o.NotAuthorized,{children:i.jsx(t.ScaleMenuFlyoutItem,{"onScale-select":()=>l.signinRedirect(),children:"Login"})})]})]})});}},"06e54471":async function i(i,a,l,t){let[e,c,n,r]=await Promise.all([l("036dd75c"),l("c43b3a33"),l("639fcbf9"),l("442900fb")]);function s(){return e.jsxs(e.Fragment,{children:[e.jsx(c.Helmet,{children:e.jsx("title",{children:"Availability - OTC Status Dashboard"})}),e.jsx(r.RegionSelector,{Title:"OTC Availability Matrix",Topic:"Availability"}),e.jsx(n.AvailaMatrix,{})]});}i._m(a),i.o(a,"Availability",()=>s);},"0d5d3bf9":function e(e,a,l,i){e._m(a),e.o(a,"TopNavBar",()=>c);var s=l("036dd75c"),t=l("8c585220"),n=l("ea7f23b6"),o=l("dc6fa42f"),r=l("01332dcd");function c(){return s.jsxs(t.ScaleTelekomHeader,{appName:"Open Telekom Cloud",appNameLink:"/",logoHref:"/",slot:"header",type:"slim",children:[s.jsxs(t.ScaleTelekomNavList,{"aria-label":"Main Navigation Links",slot:"main-nav",children:[s.jsx(o.NavItem,{Href:"/History",Label:"History"}),s.jsx(o.NavItem,{Href:"/Availability",Label:"Availability"}),s.jsx(t.ScaleTelekomNavItem,{"aria-label":"Docs",children:s.jsx("a",{href:"https://docs.otc.t-systems.com/status-dashboard/index.html",target:"_black",children:"Docs"})})]}),s.jsxs(t.ScaleTelekomNavList,{alignment:"right","aria-label":"Functions Menu",slot:"functions",variant:"functions",children:[s.jsx(r.ProfileMenu,{}),s.jsx(n.MobileMenu,{})]})]});}},"0e1b3d7c":function t(t,n,u,i){t._m(n),t.o(n,"Authorized",()=>r),t.o(n,"NotAuthorized",()=>d),u("da0b8b76");var e=u("725e471d");function r(t){var n=t.children,u=e.useAuth();return u.isLoading?"Authenticating...":u.isAuthenticated?n:null;}function d(t){var n=t.children;return e.useAuth().isAuthenticated?null:n;}},"10a4c0c8":function e(e,n,i,o){var t,a,r,s;e._m(n),e.o(n,"EventType",()=>t),e.o(n,"EventStatus",()=>a),(r=t||(t={})).Operational="Operational",r.Maintenance="Maintenance",r.MinorIssue="Minor Issue",r.MajorIssue="Major Issue",r.Outage="Outage",(s=a||(a={})).Investigating="Investigating",s.Fixing="Fixing",s.Monitoring="Monitoring",s.Resolved="Resolved",s.Scheduled="Scheduled",s.Performing="Performing",s.Completed="Completed",s.Cancelled="Cancelled";},"15ac19ff":function e(e,n,i,o){var d,g,r,s;e._m(n),e.o(n,"NameEnum",()=>d),e.o(n,"StatusEnum",()=>g),(r=d||(d={})).Category="category",r.Region="region",r.Type="type",(s=g||(g={})).Analyzing="analyzing",s.Changed="changed",s.Completed="completed",s.Description="description",s.Fixing="fixing",s.InProgress="in progress",s.Modified="modified",s.Observing="observing",s.Reopened="reopened",s.Resolved="resolved",s.Scheduled="scheduled",s.System="SYSTEM";},"1e25dce2":function e(e,o,t,l){e._m(o),e.o(o,"PageFooter",()=>c);var i=t("036dd75c"),n=t("8c585220");function c(){return i.jsx(n.ScaleTelekomFooter,{slot:"footer",type:"minimal",class:"mt-auto pt-8","data-mode":"dark",children:i.jsxs(n.ScaleTelekomFooterContent,{children:[i.jsx("span",{slot:"notice",children:" © Deutsche Telekom AG "}),i.jsxs("ul",{slot:"navigation",children:[i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/imprint",children:"Imprint"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/data-protection",children:"Data privacy"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/disclaimer-of-liability",children:"Disclaimer of liability"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/contact",children:"Contact"})})]})]})});}},"24987bf2":function e(e,a,n,t){e._m(a),e.o(a,"TabItem",()=>o);var c=n("036dd75c"),l=n("8c585220"),s=n("630730d4"),d=n("791ca373");function o(e){var a=e.Item,n=e.Topic,t=s.useCreation(()=>d.Station.get(n),[]);return c.jsxs(c.Fragment,{children:[c.jsx(l.ScaleTabHeader,{slot:"tab","onScale-select":()=>t.next(a),children:a.Name}),c.jsx(l.ScaleTabPanel,{className:"hidden",slot:"panel"})]});}n("fc5b6de8");},"280fd75c":function e(e,l,t,a){e._m(l),e.o(l,"EventEditor",()=>d);var c=t("f38b32a3"),n=t("036dd75c"),s=t("8c585220"),i=t("630730d4");t("fc5b6de8");var o=t("10a4c0c8");function d(e){var l=e.Event,t=c._(i.useBoolean(),2),a=t[0],d=t[1],r=d.setTrue,u=d.setFalse;return n.jsxs(n.Fragment,{children:[n.jsxs(s.ScaleButton,{onClick:r,size:"small",children:[n.jsx(s.ScaleIconActionEdit,{}),"Edit"]}),n.jsx(s.ScaleModal,{heading:"Edit Event",opened:a,omitCloseButton:!0,size:"small",class:"absolute","onScale-before-close":e=>e.preventDefault(),children:n.jsxs("div",{className:"flex flex-col gap-y-6",children:[n.jsx(s.ScaleTextField,{inputAutocomplete:"off",class:"w-full",placeholder:"Please give the title of event",required:!0,label:"Title"}),n.jsx(s.ScaleDropdownSelect,{label:"Type",children:Object.values(o.EventType).slice(1).map((e,l)=>n.jsx(s.ScaleDropdownSelectItem,{value:e,children:e},l))}),n.jsx(s.ScaleDropdownSelect,{label:"Status",children:Object.values(o.EventStatus).slice(l.Type===o.EventType.Maintenance?4:0,l.Type===o.EventType.Maintenance?void 0:4).map((e,l)=>n.jsx(s.ScaleDropdownSelectItem,{value:e,children:e},l))}),n.jsxs("div",{className:"flex gap-x-3 self-end",children:[n.jsx(s.ScaleButton,{onClick:u,variant:"secondary",children:"Cancel"}),n.jsx(s.ScaleButton,{children:"Submit"})]})]})})]});}},"2c6e69f1":async function e(e,r,t,o){let[c,a,n,d,s,i,l]=await Promise.all([t("036dd75c"),t("b8ba6bc5"),t("21e336be"),t("5ec5fb5a"),t("793f703f"),t("9f0b6ac9"),t("a198c3de")]);e._m(r),a.defineCustomElements();var u=document.querySelector("#root");n.createRoot(u).render(c.jsx(s.BrowserRouter,{children:c.jsx(d.OIDCProvider,{children:c.jsx(l.StatusContext,{children:c.jsx(i.Layout,{})})})}));},"41aa22d0":function e(e,t,n,a){e._m(t),e.o(t,"Transformer",()=>l),n("582a891d"),n("65ea514d"),n("f1a0b902"),n("51ca05ff"),n("3e63fd8f");var r=e.i(n("a29c3460")),i=n("8effc9a2"),u=n("10a4c0c8"),s=n("fdad05c1"),d=n("a198c3de"),v=n("15ac19ff");n("fc5b6de8");var o=new s.Logger("Service","Status","Transformer");function l(t){var n=0,a=d.EmptyDB();if(!(null==t?void 0:t.length))return o.warn("Empty List."),a;var s=!0,l=!1,S=void 0;try{for(var c,f=t[Symbol.iterator]();!(s=(c=f.next()).done);s=!0)!function(){var t=c.value;if(t.attributes.length<3)return o.debug("Skipped Hidden Item.",t);var s=null===(E=t.attributes.find(e=>e.name===v.NameEnum.Category))||void 0===E?void 0:E.value;if(!s)return o.debug("Skipped Null Category.",t);var d=a.Categories.find(e=>e.Name===s);d||(d={Id:n++,Name:s,Services:new Set},a.Categories.push(d));var l=null===(g=t.attributes.find(e=>e.name===v.NameEnum.Region))||void 0===g?void 0:g.value;if(!l)return o.debug("Skipped Null Region.",t);var S=a.Regions.find(e=>e.Name===l);S||(S={Id:n++,Name:l,Services:new Set},a.Regions.push(S));var f=t.name,m=a.Services.find(e=>e.Name===f);if(!m){var E,g,p,y,h=null===(y=t.attributes.find(e=>e.name===v.NameEnum.Type))||void 0===y?void 0:y.value;if(!h)return o.debug("Skipped Null Abbr.",t);m={Id:n++,Name:f,Abbr:h,Category:d,Regions:new Set([S])},a.Services.push(m);}m.Regions.add(S),S.Services.add(m),d.Services.add(m);var b=a.RegionService.find(e=>e.Region===S&&e.Service===m);if(b||(b={Region:S,Service:m,Events:new Set},a.RegionService.push(b)),null===(p=t.incidents)||void 0===p?void 0:p.length){var R=!0,w=!1,C=void 0;try{for(var I,N=t.incidents[Symbol.iterator]();!(R=(I=N.next()).done);R=!0)!function(){var t=I.value,s=a.Events.find(e=>e.Id===t.id);if(s)s.RegionServices.add(b);else{var d=(()=>{switch(t.impact){case 0:return u.EventType.Maintenance;case 1:return u.EventType.MinorIssue;case 2:return u.EventType.MajorIssue;default:return u.EventType.Outage;}})();if(s={Id:t.id,Title:t.text,Start:e.f(r)(t.start_date).toDate(),Type:d,Status:d===u.EventType.Maintenance?u.EventStatus.Scheduled:u.EventStatus.Investigating,Histories:new Set,RegionServices:new Set([b])},t.end_date&&(s.End=e.f(r)(t.end_date).toDate()),null===(f=t.updates)||void 0===f?void 0:f.length){var l=!0,S=!1,c=void 0;try{for(var f,m,E,g=t.updates[Symbol.iterator]();!(l=(E=g.next()).done);l=!0)!function(){var a=E.value,i=(()=>{switch(a.status){case v.StatusEnum.System:return t.end_date?u.EventStatus.Cancelled:u.EventStatus.Investigating;case v.StatusEnum.Analyzing:return u.EventStatus.Investigating;case v.StatusEnum.Reopened:s.End=void 0;case v.StatusEnum.Fixing:return u.EventStatus.Fixing;case v.StatusEnum.Observing:return u.EventStatus.Monitoring;case v.StatusEnum.Resolved:case v.StatusEnum.Changed:return u.EventStatus.Resolved;case v.StatusEnum.Description:case v.StatusEnum.Scheduled:case v.StatusEnum.Modified:return u.EventStatus.Scheduled;case v.StatusEnum.InProgress:return u.EventStatus.Performing;case v.StatusEnum.Completed:return u.EventStatus.Completed;}})();if(!i)return o.debug("Skipped Unknown Status.",a,t);var d={Id:n++,Message:a.text,Created:e.f(r)(a.timestamp).toDate(),Status:i,Event:s};s.Histories.add(d);}();}catch(e){S=!0,c=e;}finally{try{l||null==g.return||g.return();}finally{if(S)throw c;}}var p=null===(m=i.orderBy(Array.from(s.Histories),e=>e.Created,"desc").at(0))||void 0===m?void 0:m.Status;p&&(s.Status=p);}s.End&&s.Type===u.EventType.Maintenance&&s.Status!==u.EventStatus.Cancelled&&e.f(r)(s.End).isBefore(e.f(r)())&&(s.Status=u.EventStatus.Completed),a.Events.push(s);}b.Events.add(s);}();}catch(e){w=!0,C=e;}finally{try{R||null==N.return||N.return();}finally{if(w)throw C;}}}}();}catch(e){l=!0,S=e;}finally{try{s||null==f.return||f.return();}finally{if(l)throw S;}}return o.info("Status data loaded.",a),a;}},"442900fb":async function e(e,l,s,t){let[c,i,a,n]=await Promise.all([s("036dd75c"),s("8c585220"),s("a198c3de"),s("24987bf2")]);function o(e){var l=e.Title,s=e.Topic,t=a.useStatus().DB.Regions;return c.jsxs("section",{className:"flex flex-col",id:"RegionSelector",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("label",{className:"text-3xl font-medium text-slate-800",children:l}),c.jsx(i.ScaleTabNav,{children:t.map((e,l)=>c.jsx(n.TabItem,{Item:e,Topic:s},l))})]}),c.jsx(i.ScaleDivider,{})]});}e._m(l),e.o(l,"RegionSelector",()=>o);},"506278c7":async function e(e,a,r,t){let[c,,n,s,i,d,l,o,m,]=await Promise.all([r("f38b32a3"),r("e128c079"),r("036dd75c"),r("630730d4"),r("8effc9a2"),r("da0b8b76"),r("791ca373"),r("bd30708b"),r("a198c3de"),r("fc5b6de8")]);function u(e){var a=e.Category,r=e.Topic,t=m.useStatus().DB,u=c._(d.useState(t.Regions[0]),2),b=u[0],x=u[1],g=s.useCreation(()=>l.Station.get(r),[]);d.useEffect(()=>{var e=g.subscribe(x);return()=>e.unsubscribe();},[]);var h=c._(d.useMemo(()=>{var e=i.chain(t.RegionService).filter(e=>e.Region.Id===b.Id).filter(e=>e.Service.Category.Id===a.Id).orderBy(e=>e.Service.Name).value(),r=i.chain(e).map(e=>o.Calc6Months(e)).value();return[e,r];},[t,b,a]),2),v=h[0],f=h[1];function N(e){var a=e>=99.95?"emerald":e>=99?"amber":"rose";return"bg-".concat(a,"-100 hover:bg-").concat(a,"-200");}return n.jsxs(n.Fragment,{children:[n.jsxs("tr",{children:[n.jsx("td",{rowSpan:v.length,className:"text-lg",children:a.Name}),n.jsx("td",{className:"text-lg",children:v[0].Service.Name}),f[0].map((e,a)=>n.jsx("td",{className:"border-l text-center ".concat(N(e)),children:e.toFixed(2)},a))]}),v.slice(1).map((e,a)=>n.jsxs("tr",{children:[n.jsx("td",{className:"text-lg",children:e.Service.Name}),f[a+1].map((e,a)=>n.jsx("td",{className:"border-l text-center ".concat(N(e)),children:e.toFixed(2)},a))]},a))]});}e._m(a),e.o(a,"CategoryGroup",()=>u);},"5ec5fb5a":function e(e,t,r,o){e._m(t),e.o(t,"OIDCProvider",()=>l);var i=r("036dd75c"),a=r("630730d4"),c=r("ccd7586e");r("da0b8b76");var s=r("725e471d"),d=r("791ca373"),n=r("fdad05c1"),u=r("793f703f");function l(e){var t=e.children,r=u.useRouter().Rep;return i.jsxs(s.AuthProvider,{client_id:"status-dashboard",scope:"openid profile email",userStore:new c.WebStorageStateStore({store:window.localStorage}),onSigninCallback:()=>{r("/"),location.reload();},authority:"https://keycloak.eco.tsi-dev.otc-service.com/realms/eco",post_logout_redirect_uri:"https://sd3.eco.tsi-dev.otc-service.com/Logout",redirect_uri:"https://sd3.eco.tsi-dev.otc-service.com/Login",children:[i.jsx(h,{}),t]});}var v=new n.Logger("Auth");function h(){var e=d.Common.AuthSlot=s.useAuth(),t=u.useRouter(),r=t.Paths,o=t.Rep;return a.useMount(()=>{if("Logout"===r.at(0))return e.removeUser(),o("/");s.hasAuthParams()||e.isAuthenticated||e.activeNavigator||e.isLoading||e.signinRedirect();}),a.useUpdateEffect(()=>{e.error&&v.warn(e.error);},[e.error]),null;}},"619a6aa0":function e(e,r,a,n){e._m(r),e.o(r,"EventAffected",()=>l);var t=a("f38b32a3");a("3e63fd8f"),a("2d8dcc70"),a("65ea514d"),a("f1a0b902"),a("51ca05ff"),a("582a891d");var c=a("036dd75c"),d=a("8c585220"),i=a("da0b8b76");a("fc5b6de8");var f=a("10a4c0c8");function l(e){var r=e.Event,a=i.useMemo(()=>{var e=Array.from(r.RegionServices),a=new Map;if(r.Type===f.EventType.Maintenance){var n=!0,t=!1,c=void 0;try{for(var d,i=e[Symbol.iterator]();!(n=(d=i.next()).done);n=!0){var l=d.value,s=l.Service.Name,o=l.Region.Name;a.has(s)?a.get(s).add(o):a.set(s,new Set([o]));}}catch(e){t=!0,c=e;}finally{try{n||null==i.return||i.return();}finally{if(t)throw c;}}}return Array.from(a.entries());},[r]);return c.jsx(d.ScaleTable,{children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Service Name"}),c.jsx("th",{children:"Affected Regions"})]})}),c.jsx("tbody",{children:a.map((e,r)=>{var a=t._(e,2),n=a[0],d=a[1];return c.jsxs("tr",{children:[c.jsx("td",{children:n}),c.jsx("td",{children:Array.from(d).join(", ")})]},r);})})]})});}},"63902083":function e(e,t,a,n){e._m(t),e.o(t,"EventItem",()=>d),a("3e63fd8f");var s=a("036dd75c"),r=a("8c585220"),l=e.i(a("a29c3460")),c=a("8effc9a2"),i=a("da0b8b76");a("fc5b6de8");var o=a("10a4c0c8"),m=a("a2cf9b72");function d(t){var a,n=t.Prev,d=t.Curr,f=i.useMemo(()=>!n||n.Start.getMonth()!=d.Start.getMonth(),[n]),u=i.useRef(null);i.useEffect(()=>{if(u.current){var e=u.current.previousElementSibling;e&&e instanceof HTMLElement&&(e.style.paddingBottom="0",e.classList.add("mb-6"));}},[u.current]);var g=i.useMemo(()=>c.chain(Array.from(d.RegionServices)).map(e=>e.Service).uniqBy(e=>e.Id).value(),[d.RegionServices]),b=g.map(e=>({Name:e.Name,Abbr:e.Abbr.toUpperCase()})),v=b.length>3?b.slice(0,3).map(e=>e.Abbr).join(", ")+" (+".concat(b.length-3,")"):b.map(e=>e.Abbr).join(", "),h=i.useMemo(()=>c.chain(Array.from(d.RegionServices)).map(e=>e.Region.Name).uniq().value(),[d.RegionServices]),x=h.length>2?h.slice(0,2).join(", ")+" (+".concat(h.length-2,")"):h.join(", ");switch(d.Status){case o.EventStatus.Investigating:case o.EventStatus.Fixing:case o.EventStatus.Monitoring:a="yellow";break;case o.EventStatus.Scheduled:case o.EventStatus.Performing:a="violet";break;case o.EventStatus.Resolved:case o.EventStatus.Completed:a="green";break;default:a="standard";}return s.jsxs(s.Fragment,{children:[f&&s.jsx("label",{ref:u,className:"mb-6 text-2xl font-medium text-slate-800",children:e.f(l)(d.Start).format("MMMM YYYY")}),s.jsxs("li",{className:"border-l-2 relative flex flex-col gap-y-2.5 border-slate-300 pb-10 pl-7 last:pb-0",children:[s.jsxs("a",{className:"w-fit text-2xl font-medium hover:underline",href:"/Event/".concat(d.Id),children:[v," ",x," ",d.Type]}),s.jsxs("div",{className:"flex gap-x-2.5",children:[s.jsx(r.ScaleTag,{color:a,children:d.Status}),g.slice(0,3).map(e=>s.jsx(r.ScaleTag,{children:e.Name},e.Abbr)),g.length>3&&s.jsxs(r.ScaleTag,{children:["+",g.length-3]})]}),s.jsxs("label",{className:"text-lg font-bold text-slate-500",children:[e.f(l)(d.Start).format("DD MMM, HH:mm"),d.End&&s.jsxs(s.Fragment,{children:[" - ",e.f(l)(d.End).format("DD MMM, HH:mm [UTC]")]})]}),s.jsx(m.Indicator,{Class:"absolute -left-3.5 top-0.5 bg-zinc-50",Type:d.Type})]})]});}},"639fcbf9":async function e(e,a,r,s){let[t,,c,l,o,i,n,b,m,d,h,x]=await Promise.all([r("f38b32a3"),r("3e63fd8f"),r("036dd75c"),r("8c585220"),r("630730d4"),r("a29c3460"),r("8effc9a2"),r("da0b8b76"),r("32966282"),r("791ca373"),r("a198c3de"),r("506278c7")]);e._m(a),e.o(a,"AvailaMatrix",()=>u);var p=e.i(i);function u(){var a=h.useStatus().DB,r=t._(b.useState(a.Regions[0]),2),s=r[0],i=r[1],u="Availability",g=o.useCreation(()=>d.Station.get(u,()=>{var e=a.Regions[0];return new m.BehaviorSubject(e);}),[]);return b.useEffect(()=>{var e=g.subscribe(i);return()=>e.unsubscribe();},[]),c.jsxs(l.ScaleTable,{className:"relative",children:[c.jsxs("table",{children:[c.jsxs("thead",{className:"sticky top-16",children:[c.jsxs("tr",{children:[c.jsx("th",{className:"!text-lg",rowSpan:2,scope:"col",children:"Category"}),c.jsx("th",{className:"!text-lg",rowSpan:2,scope:"col",children:"Service"}),c.jsx("th",{className:"!py-2 !text-center !text-lg",colSpan:6,scope:"colgroup",children:"Availability, %"})]}),c.jsx("tr",{children:Array.from({length:6}).map((a,r)=>{var s=e.f(p)().subtract(5-r,"month"),t=s.format("MMMM"),l=s.year();return c.jsxs("th",{className:"!pb-1 !text-lg !text-center w-1/12",scope:"col",children:[l," ",c.jsx("br",{})," ",t]},r);})})]}),c.jsx("tbody",{children:n.chain(Array.from(s.Services)).map(e=>e.Category).uniqBy(e=>e.Id).orderBy(e=>e.Name).map((e,a)=>c.jsx(x.CategoryGroup,{Category:e,Topic:u},a)).value()})]}),c.jsxs("template",{children:[c.jsx("p",{className:"bg-emerald-100 hover:bg-emerald-200"}),c.jsx("p",{className:"bg-amber-100 hover:bg-amber-200"}),c.jsx("p",{className:"bg-rose-100 hover:bg-rose-200"})]})]});}},"70dc5a36":function e(e,s,d,r){e._m(s),e.o(s,"EventLog",()=>n),d("3e63fd8f");var a=d("036dd75c"),t=d("8c585220"),c=e.i(d("a29c3460")),l=d("8effc9a2");function n(s){var d=s.Event,r=l.chain(Array.from(d.Histories)).orderBy(e=>e.Created,"desc").value();return a.jsx(t.ScaleTable,{class:"rounded-md bg-white p-6 shadow-md",children:a.jsxs("table",{children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Updates"}),a.jsx("th",{children:"Information"})]})}),a.jsx("tbody",{children:r.map((s,d)=>a.jsxs("tr",{children:[a.jsxs("td",{className:"flex flex-col",children:[a.jsx("label",{className:"font-medium",children:s.Status}),a.jsx("label",{children:e.f(c)(s.Created).format("YYYY-MM-DD HH:mm [UTC]")})]}),a.jsx("td",{className:"text-pretty",children:s.Message})]},d))})]})});}d("fc5b6de8");},"72aa5c4a":async function e(e,s,l,t){let[a,i,n,c,r,d,x,m,o]=await Promise.all([l("f38b32a3"),l("036dd75c"),l("b0da6a28"),l("630730d4"),l("8effc9a2"),l("da0b8b76"),l("c43b3a33"),l("63902083"),l("a198c3de")]);function h(){var e=o.useStatus().DB,s=d.useRef(null),l=a._(c.useInViewport(s),1)[0],t=a._(c.useBoolean(!0),1)[0];return i.jsxs(i.Fragment,{children:[i.jsx(x.Helmet,{children:i.jsx("title",{children:"Timeline - OTC Status Dashboard"})}),i.jsx("section",{className:"flex flex-col gap-y-2",children:i.jsx("h3",{className:"text-3xl font-medium text-slate-800",children:"OTC Event Timeline"})}),i.jsx("ol",{className:"flex flex-col",children:r.chain(e.Events).orderBy(e=>e.Start,"desc").map((e,s,l)=>[l[s-1],e]).map(e=>{var s=a._(e,2),l=s[0],t=s[1];return i.jsx(m.EventItem,{Prev:l,Curr:t},t.Id);}).value()}),i.jsx(n.FluentProvider,{theme:n.webLightTheme,className:"-ml-3",ref:s,children:i.jsxs(n.Skeleton,{className:"gap-x-5",style:{display:l&&!t?"flex":"none"},children:[i.jsx(n.SkeletonItem,{size:24,shape:"circle"}),i.jsxs("div",{className:"flex flex-col gap-y-3",children:[i.jsx(n.SkeletonItem,{size:32,style:{width:"25vw"}}),i.jsxs("div",{className:"flex gap-x-2.5",children:[i.jsx(n.SkeletonItem,{size:28,style:{width:"5vw"}}),i.jsx(n.SkeletonItem,{size:28,style:{width:"10vw"}})]}),i.jsx(n.SkeletonItem,{size:28,style:{width:"25vw"}})]})]})})]});}e._m(s),e.o(s,"History",()=>h);},"791ca373":function t(t,e,s,a){t._m(e),t.o(e,"Dic",()=>i),t.o(e,"Station",()=>o),t.o(e,"Common",()=>n);var c=s("fc664c3a");s("2d8dcc70"),s("65ea514d"),s("f1a0b902"),s("247036ec");var r=s("ccd7586e");s("725e471d");var i={Name:"SD3"};class o{static get(t,e){if(!this.subjects.has(t)){if(e)this.subjects.set(t,e());else throw Error("Subject '".concat(t,"' not found."));}return this.subjects.get(t);}static delete(t){this.subjects.delete(t);}}c._(o,"subjects",new Map);class n{static get LocalUser(){var t=localStorage.getItem("oidc.user:https://keycloak.eco.tsi-dev.otc-service.com/realms/eco:status-dashboard");return t?r.User.fromStorageString(t):null;}static get Auth(){return new Promise(t=>{if(this.AuthSlot)return t(this.AuthSlot);var e=setInterval(()=>{this.AuthSlot&&(clearInterval(e),t(this.AuthSlot));},100);});}static async AccessToken(){var t=await this.Auth,e=t.isAuthenticated,s=t.user,a=t.signinSilent;if(e||(s=await a()),s)return s.access_token;}}c._(n,"AuthSlot",void 0);},"793f703f":function t(t,a,e,n){t._m(a),t.o(a,"useRouter",()=>h),t.o(a,"BrowserRouter",()=>f);var r=e("53d8b9b1"),o=e("f38b32a3");e("37ae98ec"),e("f1fabaeb"),e("29f90b2a"),e("2ffbb52c"),e("a5f716e6"),e("65ea514d"),e("f1a0b902"),e("9b65a17c"),e("057993e1");var c=e("036dd75c"),i=e("630730d4"),l=e("da0b8b76");function u(t){var a=t.filter(t=>t).map(t=>t.toString().replace(/^\/+/,"")).join("/");return"/".concat(a);}var s=l.createContext({});function h(){return l.useContext(s);}function f(t){var a=t.children,e=o._(l.useState(()=>({Paths:location.pathname.split("/").filter(t=>t),Search:new URLSearchParams(location.search),Put:f,Nav:function(){for(var t=arguments.length,a=Array(t),e=0;e{var t=a.length?u(a):location.pathname;history.pushState(null,"",t),p(t);},100);}})),2),n=e[0],h=e[1];function f(t){history.replaceState(null,"","".concat(location.pathname).concat(t.size?"?":"").concat(t.toString())),n.Search=new URLSearchParams(t),h(r._({},n));}function p(t){n.Paths=t.split("/").filter(t=>t),n.Search=new URLSearchParams(location.search),h(r._({},n));}function v(t){history.pushState(null,"",t),p(t);}function d(t){history.replaceState(null,"",t),p(t);}return i.useMount(()=>{"/"===location.pathname&&location.search.startsWith("?/")&&d(location.search.substring(2)),addEventListener("click",t=>{var a,e=null===(a=t.target)||void 0===a?void 0:a.closest("a");if(e){if(e.origin!==location.origin){e.target="_blank";return;}t.preventDefault(),v(e.pathname);}}),addEventListener("popstate",t=>{t.preventDefault(),p(location.pathname);});}),c.jsx(s.Provider,{value:n,children:a});}},"9b8b5f60":async function e(e,t,a,s){let[c,,,,,n,l,i,r,d,f,,o,v]=await Promise.all([a("f38b32a3"),a("65ea514d"),a("f1a0b902"),a("f2ff81c5"),a("35b9195c"),a("036dd75c"),a("b0da6a28"),a("a29c3460"),a("8effc9a2"),a("da0b8b76"),a("a198c3de"),a("fc5b6de8"),a("10a4c0c8"),a("a2cf9b72")]);e._m(t),e.o(t,"ServiceItem",()=>m);var u=e.i(i);function m(t){var a=t.RegionService,s=f.useStatus().DB,i=c._(d.useState(o.EventType.Operational),2),m=i[0],p=i[1],x=c._(d.useState(!1),2),h=x[0],y=x[1],E=c._(d.useState(),2),S=E[0],b=E[1];return d.useEffect(()=>{var t=r.chain([...a.Events]).filter(e=>(e.Type===o.EventType.Maintenance||!e.End)&&![o.EventStatus.Completed,o.EventStatus.Resolved,o.EventStatus.Cancelled].includes(e.Status)).orderBy(e=>e.Type,"desc").head().value();t?(p(t.Type),y(e.f(u)(t.Start).isAfter(e.f(u)())),b(t.Id)):(p(o.EventType.Operational),y(!1),b(void 0));},[s,a]),n.jsxs("li",{className:"flex items-center py-2",children:[h?n.jsx("a",{className:"flex h-6",href:"/Event/".concat(S),children:n.jsxs(l.FluentProvider,{className:"with-dot",theme:l.webLightTheme,children:[n.jsx(v.Indicator,{Type:o.EventType.Operational}),n.jsx(l.CounterBadge,{className:"blue-dot",dot:!0})]})}):S?n.jsx("a",{className:"flex items-center",href:"/Event/".concat(S),children:n.jsx(v.Indicator,{Type:m})}):n.jsx(v.Indicator,{Type:m}),n.jsx("label",{className:"ml-2.5 text-xl font-medium text-slate-700",children:a.Service.Name})]});}},"9f0b6ac9":async function e(e,a,s,n){let[i,l,t,r,c,o,x,u,d,f,g]=await Promise.all([s("036dd75c"),s("8c585220"),s("da0b8b76"),s("1e25dce2"),s("0d5d3bf9"),s("793f703f"),s("e2c85664"),s("06e54471"),s("f10ba0fa"),s("72aa5c4a"),s("a0e9c023")]);function j(){var e=o.useRouter().Paths.at(0),a=t.useMemo(()=>{switch(e){case"Login":return i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Login Redirecting..."});case"Reload":return i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Reloading..."});case"Event":return i.jsx(d.Event,{});case"History":return i.jsx(f.History,{});case"Availability":return i.jsx(u.Availability,{});case"":case void 0:return i.jsx(g.Home,{});default:return i.jsx(x.NotFound,{});}},[e]);return i.jsxs("div",{className:"absolute flex min-h-full w-full min-w-96 flex-col bg-zinc-50",children:[i.jsx(c.TopNavBar,{}),i.jsx("main",{className:"mx-auto flex w-full max-w-screen-xl flex-col gap-y-8 px-3 pt-8",children:i.jsx(t.Suspense,{fallback:i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Loading..."}),children:a})}),i.jsx(r.PageFooter,{})]});}e._m(a),e.o(a,"Layout",()=>j);},"a0e9c023":async function e(e,a,s,t){let[n,,,,,,,i,r,c,l,d,o,u,g,f,v,m,x,p,b,j]=await Promise.all([s("f38b32a3"),s("f2ff81c5"),s("35b9195c"),s("7d9fd692"),s("18177523"),s("65ea514d"),s("f1a0b902"),s("036dd75c"),s("8c585220"),s("630730d4"),s("8effc9a2"),s("da0b8b76"),s("c43b3a33"),s("32966282"),s("10a4c0c8"),s("a3a19a02"),s("a2cf9b72"),s("442900fb"),s("daf32047"),s("791ca373"),s("fdad05c1"),s("a198c3de")]);e._m(a),e.o(a,"Home",()=>S);var h=new b.Logger("Home");function S(){var e=j.useStatus().DB,a=n._(d.useState(e.Regions[0]),2),s=a[0],t=a[1],b="HomeRegion",S=c.useCreation(()=>p.Station.get(b,()=>{var a=e.Regions[0];return new u.BehaviorSubject(a);}),[]);d.useEffect(()=>{var e=S.subscribe(t);return()=>e.unsubscribe();},[]);var y=d.useMemo(()=>l.chain(e.RegionService).filter(e=>e.Region.Id===s.Id).map(e=>e.Service.Category).uniq().orderBy(e=>e.Name).value(),[e,s]),w=d.useMemo(()=>{var a=l.chain(e.Events).filter(e=>!e.End).filter(e=>e.Type!==g.EventType.Maintenance).filter(e=>![g.EventStatus.Completed,g.EventStatus.Resolved,g.EventStatus.Cancelled].includes(e.Status)).flatMap(e=>[...e.RegionServices]).map(e=>e.Service).uniqBy(e=>e.Id).value();return h.debug(a),a.length;},[e]);return i.jsxs(i.Fragment,{children:[i.jsx(o.Helmet,{children:i.jsx("title",{children:"OTC Status Dashboard"})}),i.jsx(r.ScaleNotification,{heading:w>0?"".concat(w," components have issue, but don't worry, we are working on it."):"All Systems Operational",opened:!0,variant:w>0?"warning":"success"}),i.jsx(f.EventGrid,{}),i.jsx(m.RegionSelector,{Title:"OTC Current Status",Topic:b}),i.jsx("section",{className:"grid-cols-1 grid gap-x-7 gap-y-8 md:grid-cols-2 lg:grid-cols-3",children:y.map((e,a)=>i.jsx(x.StatusCard,{Category:e},a))}),i.jsxs("section",{className:"flex flex-wrap justify-between gap-y-2 py-2",children:[i.jsxs("div",{className:"flex items-center gap-x-2",children:[i.jsx("div",{className:"Blink"}),i.jsx("label",{children:"Auto Refresh Enabled"})]}),i.jsx("legend",{className:"flex flex-wrap items-center gap-x-6 gap-y-2.5",children:Object.values(g.EventType).map((e,a)=>i.jsxs("div",{className:"flex gap-x-2",children:[i.jsx(v.Indicator,{Type:e}),i.jsx("label",{children:e})]},a))})]})]});}},"a198c3de":async function e(e,a,t,n){let[r,o,,c,s,i,u,d,f,,,v]=await Promise.all([t("53d8b9b1"),t("f38b32a3"),t("247036ec"),t("036dd75c"),t("630730d4"),t("5f940e28"),t("da0b8b76"),t("791ca373"),t("fdad05c1"),t("15ac19ff"),t("fc5b6de8"),t("41aa22d0")]);function l(){return{Services:[],Categories:[],Regions:[],Events:[],Histories:[],RegionService:[]};}e._m(a),e.o(a,"EmptyDB",()=>l),e.o(a,"DB",()=>g),e.o(a,"useStatus",()=>y),e.o(a,"StatusContext",()=>D);var g=l(),w=u.createContext({}),S="Status";function b(){return i.openDB(d.Dic.Name,1,{upgrade(e){e.createObjectStore(S);}});}async function m(){var e=await b();await e.put(S,g,S),e.close();}async function h(){var e=await b(),a=await e.get(S,S);a&&(g=a),e.close();}await h();var p=new f.Logger("Service","Status");function y(){var e=u.useContext(w);if(g.Regions.length<1)throw new Promise(a=>{var t=setInterval(()=>{g.Regions.length>0&&(clearInterval(t),a(e));},100);});return e;}function D(e){var a=e.children,t=o._(u.useState(g),2),n=t[0],i=t[1];function d(e){i(g=r._({},e)),m();}return s.useRequest(async()=>{p.info("Loading status data...");var e=await fetch("/mock.json"),a=await e.json();return p.debug("Status data loaded.",a),a;},{cacheKey:p.namespace,onSuccess:e=>d(v.Transformer(e))}),c.jsx(w.Provider,{value:{DB:n,Update:d},children:a});}},"a2cf9b72":function e(e,n,c,a){e._m(n),e.o(n,"Indicator",()=>i);var t=c("53d8b9b1"),r=c("da0b8b76"),s=c("10a4c0c8");function i(e){var n=e.Type,c=e.Size,a=e.Class,i="var(--telekom-color-",o="functional-",u="".concat(i,"text-and-icon-").concat(o),l=r.useMemo(()=>{switch(n){case s.EventType.Maintenance:return"service-maintanance";case s.EventType.MinorIssue:return"action-minus-circle";case s.EventType.MajorIssue:return"alert-warning";case s.EventType.Outage:return"action-circle-close";default:return"action-success";}},[n]),v=r.useMemo(()=>{switch(n){case s.EventType.Maintenance:return"".concat(u,"informational)");case s.EventType.MinorIssue:return"".concat(i).concat(o,"warning-standard)");case s.EventType.MajorIssue:return"".concat(u,"warning)");case s.EventType.Outage:return"".concat(u,"danger)");default:return"".concat(u,"success)");}},[n]);return r.createElement("".concat("scale-icon-").concat(l),t._({"accessibility-title":n,fill:v,class:a},c?{size:c}:{}));}},"a3a19a02":async function e(e,t,a,n){let[r,c,,,,o,s,l,i,d,u,v,y]=await Promise.all([a("53d8b9b1"),a("efec1ee8"),a("3e63fd8f"),a("f2ff81c5"),a("35b9195c"),a("036dd75c"),a("8c585220"),a("630730d4"),a("a29c3460"),a("8effc9a2"),a("da0b8b76"),a("a198c3de"),a("10a4c0c8")]);e._m(t),e.o(t,"EventGrid",()=>b);var f=e.i(i);function b(){var t=v.useStatus().DB,a=u.useRef(null),n=l.useCreation(()=>new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&e.querySelectorAll(".tbody__cell").forEach(e=>{e.querySelector(".tbody__actions")&&(e.style.paddingTop="0",e.style.paddingBottom="0");});});});}),[]);return u.useEffect(()=>{if(a.current){var o=a.current;n.disconnect(),n.observe(o.shadowRoot,{childList:!0,subtree:!0}),o.fields=[{type:"number",label:"ID"},{type:"tags",label:"Type"},{type:"date",label:"Start"},{type:"text",label:"Status / Plan"},{type:"text",label:"Region",sortable:!0},{type:"text",label:"Service",sortable:!0,stretchWeight:.7},{type:"actions",label:"Detail"}];var s=d.chain(t.Events).map(e=>{var t=Array.from(e.RegionServices),a=d.chain(t).map(e=>e.Service.Name).uniq().value(),n=d.chain(t).map(e=>e.Region.Name).uniq().value();return c._(r._({},e),{Services:a,Regions:n,Status:e.Status});}).filter(e=>(e.Type===y.EventType.Maintenance||!e.End)&&![y.EventStatus.Completed,y.EventStatus.Resolved,y.EventStatus.Cancelled].includes(e.Status)).orderBy(e=>e.Start,"desc").map(t=>{var a;switch(t.Type){case y.EventType.MinorIssue:a={content:"Minor",color:"yellow"};break;case y.EventType.MajorIssue:a={content:"Major",color:"orange"};break;case y.EventType.Outage:a={content:"Outage",color:"red"};break;default:a={content:"Maintain",color:"cyan"};}return[t.Id,[a],e.f(f)(t.Start).format("YYYY-MM-DD HH:mm [UTC]"),t.End?e.f(f)(t.End).format("MM-DD HH:mm"):t.Status,t.Regions.length>1?"".concat(t.Regions[0]," +").concat(t.Regions.length-1):t.Regions[0],t.Services.length>1?"".concat(t.Services[0]," +").concat(t.Services.length-1):t.Services[0],[{label:"↗",variant:"secondary",href:"/Event/".concat(t.Id)}]];}).value();o.rows=s;}},[a.current,t]),o.jsx(s.ScaleDataGrid,{className:"rounded-lg bg-white shadow-md",pageSize:4,heading:"Current Events",hideBorder:!0,ref:a});}},"bd30708b":function t(t,e,f,r){t._m(e),t.o(e,"Calc6Months",()=>c),f("4ceb87b9"),f("3e63fd8f"),f("54855603");var n=t.i(f("a29c3460")),a=f("8effc9a2"),i=f("10a4c0c8");function c(e){for(var f=t.f(n)(),r=f.subtract(6,"month"),c=a.chain(Array.from(e.Events)).filter(e=>t.f(n)(e.Start).isAfter(r)&&e.Type!==i.EventType.Maintenance).value(),o=[],u=0;u<6;u++)!function(e){var r=t.f(n)().startOf("month").subtract(e,"month"),a=r.endOf("month"),i=c.filter(e=>{var i;return t.f(n)(e.Start).isBefore(a)&&t.f(n)(null!==(i=e.End)&&void 0!==i?i:f).isAfter(r);}).reduce((e,f)=>{var i=t.f(n)(f.Start).isBefore(r)?r:t.f(n)(f.Start);return e+(f.End&&t.f(n)(f.End).isBefore(a)?t.f(n)(f.End):a).diff(i,"minute");},0),u=a.diff(r,"minute");o.push(Math.max((u-i)/u*100,0));}(u);return o.reverse(),o;}f("fc5b6de8");},"daf32047":async function e(e,a,t,i){let[s,r,c,d,n,o,l,u,,m]=await Promise.all([t("f38b32a3"),t("036dd75c"),t("8c585220"),t("630730d4"),t("8effc9a2"),t("da0b8b76"),t("791ca373"),t("a198c3de"),t("fc5b6de8"),t("9b8b5f60")]);function f(e){var a=e.Category,t=u.useStatus().DB,i=s._(o.useState(t.Regions[0]),2),f=i[0],x=i[1],b=d.useCreation(()=>l.Station.get("HomeRegion"),[]);o.useEffect(()=>{var e=b.subscribe(x);return()=>e.unsubscribe();},[]);var v=o.useMemo(()=>n.chain(t.RegionService).filter(e=>e.Region.Id===f.Id).filter(e=>e.Service.Category.Id===a.Id).orderBy(e=>e.Service.Name).value(),[t,f,a]);return r.jsxs("div",{className:"flex h-fit flex-col rounded-md bg-white px-3.5 py-5 shadow-md",children:[r.jsx("h3",{className:"px-3.5 text-2xl font-medium text-slate-800",children:a.Name}),r.jsx(c.ScaleDivider,{className:"h-auto"}),r.jsx("ul",{className:"px-3.5",children:v.map((e,a)=>r.jsx(m.ServiceItem,{RegionService:e},a))})]});}e._m(a),e.o(a,"StatusCard",()=>f);},"db2400ba":function e(e,t,l,a){e._m(t),e.o(t,"EventCard",()=>i);var s=l("036dd75c"),x=e.i(l("a29c3460"));l("fc5b6de8");var n=l("a2cf9b72"),c=l("10a4c0c8"),d=l("619a6aa0"),m=l("280fd75c");function i(t){var l=t.Event;return s.jsxs("section",{className:"flex flex-col gap-y-4 rounded-md bg-white px-8 py-6 shadow-md",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsxs("div",{className:"flex items-center gap-x-3",children:[s.jsx(n.Indicator,{Type:l.Type}),s.jsx("h3",{className:"text-2xl font-medium text-slate-800",children:l.Title})]}),s.jsx(m.EventEditor,{Event:l})]}),s.jsxs("div",{className:"flex gap-x-2.5",children:[s.jsxs("div",{className:"flex flex-col gap-y-2",children:[s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Impact Type:"}),s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Current Status:"}),s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Start At:"}),s.jsxs("label",{className:"text-xl font-medium text-slate-600",children:[l.Type===c.EventType.Maintenance&&l.Status!==c.EventStatus.Completed&&"(Plan)"," End At:"]})]}),s.jsxs("div",{className:"flex flex-col gap-y-2",children:[s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.Type}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.Status}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:e.f(x)(l.Start).format("YYYY-MM-DD HH:mm [UTC]")}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.End?e.f(x)(l.End).format("YYYY-MM-DD HH:mm [UTC]"):"Still Ongoing"})]})]}),s.jsx("div",{className:"flex max-h-60 flex-col overflow-y-auto",children:s.jsx(d.EventAffected,{Event:l})})]});}},"dc6fa42f":function e(e,a,c,r){e._m(a),e.o(a,"NavItem",()=>d);var f=c("53d8b9b1"),t=c("efec1ee8");c("f2ff81c5"),c("35b9195c");var l=c("036dd75c"),n=c("8c585220"),i=c("793f703f");function d(e){var a=e.Href,c=e.Label,r=i.useRouter().Paths.at(0);return l.jsx(n.ScaleTelekomNavItem,t._(f._({"aria-label":c},a.includes(r)?{active:!0}:{}),{children:l.jsx("a",{href:a,children:c})}));}},"e2c85664":function e(e,n,t,o){e._m(n),e.o(n,"NotFound",()=>d);var i=t("036dd75c"),c=t("8c585220"),r=t("c43b3a33"),s=t("793f703f"),a=t("791ca373");function d(){var e=s.useRouter().Rep;return setTimeout(()=>e("/"),3e3),i.jsxs(i.Fragment,{children:[i.jsxs(r.Helmet,{children:[i.jsxs("title",{children:["Redirect - Not Found - ",a.Dic.Name]}),i.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),i.jsx(c.ScaleLoadingSpinner,{size:"large",text:"404, Redirecting..."})]});}},"ea7f23b6":function e(e,l,i,n){e._m(l),e.o(l,"MobileMenu",()=>a);var t=i("036dd75c"),o=i("8c585220"),c=i("725e471d"),s=i("0e1b3d7c");function a(){var e,l=c.useAuth();return t.jsxs(o.ScaleTelekomNavItem,{hideOnDesktop:!0,children:[t.jsx("button",{children:t.jsx(o.ScaleIconActionMenu,{"accessibility-title":"Menu"})}),t.jsx(o.ScaleTelekomNavFlyout,{children:t.jsx(o.ScaleTelekomMobileFlyoutCanvas,{children:t.jsxs(o.ScaleTelekomMobileMenu,{slot:"mobile-main-nav",children:[t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/History",children:"History"})}),t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/Availability",children:"Availability"})}),t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"https://docs.otc.t-systems.com/status-dashboard/index.html",target:"_black",children:"Docs"})}),t.jsxs(s.Authorized,{children:[t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/NewEvent",children:"New Event"})}),t.jsxs(o.ScaleTelekomMobileMenuItem,{"onScale-set-menu-item-active":()=>l.signoutRedirect(),children:["Logout ",null===(e=l.user)||void 0===e?void 0:e.profile.name]})]}),t.jsx(s.NotAuthorized,{children:t.jsx(o.ScaleTelekomMobileMenuItem,{"onScale-set-menu-item-active":()=>l.signinRedirect(),children:"Login"})})]})})})]});}},"f10ba0fa":async function t(t,e,n,a){let[,,s,c,d,r,i,o,u]=await Promise.all([n("91f67c56"),n("37ae98ec"),n("036dd75c"),n("c43b3a33"),n("db2400ba"),n("70dc5a36"),n("793f703f"),n("a198c3de"),n("e2c85664")]);function l(){var t=o.useStatus().DB,e=parseInt(i.useRouter().Paths.at(1)),n=t.Events.find(t=>t.Id===e);return isNaN(e)||!n?s.jsx(u.NotFound,{}):s.jsxs(s.Fragment,{children:[s.jsx(c.Helmet,{children:s.jsxs("title",{children:["Event ",e.toString()," - OTC Status Dashboard"]})}),s.jsx(d.EventCard,{Event:n}),s.jsx(r.EventLog,{Event:n})]});}t._m(e),t.o(e,"Event",()=>l);},"fc5b6de8":function c(c,n,a,f){c._m(n),a("10a4c0c8");},"fdad05c1":function o(o,i,s,r){o._m(i),o.o(i,"Logger",()=>e);var n=s("fc664c3a");s("65ea514d"),s("f1a0b902");var t=o.i(s("a29c3460"));class e{With(){for(var o=arguments.length,i=Array(o),s=0;s "),this.error=console.error.bind(this,this.baseColor(101,"error"),"\n "),this.warn=console.warn.bind(this,this.baseColor(103,"warn"),"\n "),this.info=console.info.bind(this,this.baseColor(104,"info"),"\n "),this.debug=console.debug.bind(this,this.baseColor(102,"debug"),"\n "),this.throw=console.log.bind(this,this.baseColor(105,"throw"),"↓ The Following Error is Thrown ↓");}}},}); +//# sourceMappingURL=index_6a10.607c49ce.js.map \ No newline at end of file diff --git a/index_6a10.607c49ce.js.map b/index_6a10.607c49ce.js.map new file mode 100644 index 0000000..ea3303e --- /dev/null +++ b/index_6a10.607c49ce.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["/src/Components/Layout/ProfileMenu.tsx","/src/Pages/Availability.tsx","/src/Components/Layout/TopNavBar.tsx","/src/Components/Auth/With.tsx","/src/Components/Event/Enums.ts","/src/Services/Status.Entities.ts","/src/Components/Layout/PageFooter.tsx","/src/Components/Home/TabItem.tsx","/src/Components/Event/EventEditor.tsx","/src/index.tsx","/src/Services/Status.Trans.ts","/src/Components/Home/RegionSelector.tsx","/src/Components/Availability/CategoryGroup.tsx","/src/Components/Auth/index.tsx","/src/Components/Event/EventAffected.tsx","/src/Components/History/EventItem.tsx","/src/Components/Availability/AvailaMatrix.tsx","/src/Components/Event/EventLog.tsx","/src/Pages/History.tsx","/src/Helpers/Entities.ts","/src/Components/Router.tsx","/src/Components/Home/ServiceItem.tsx","/src/Pages/index.tsx","/src/Pages/Home.tsx","/src/Services/Status.tsx","/src/Components/Home/Indicator.ts","/src/Components/Home/EventGrid.tsx","/src/Helpers/SLA.ts","/src/Components/Home/StatusCard.tsx","/src/Components/Event/EventCard.tsx","/src/Components/Layout/NavItem.tsx","/src/Pages/404.tsx","/src/Components/Layout/MobileMenu.tsx","/src/Pages/Event.tsx","/src/Services/Status.Models.ts","/src/Helpers/Logger.ts"],"sourcesContent":["import { ScaleButton, ScaleIconUserFileUser, ScaleMenuFlyout, ScaleMenuFlyoutItem, ScaleMenuFlyoutList, ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useAuth } from \"react-oidc-context\";\nimport { Authorized, NotAuthorized } from \"../Auth/With\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function ProfileMenu() {\n const auth = useAuth();\n\n return (\n \n \n\n \n \n \n\n \n \n \n Hi, {auth.user?.profile.name}\n \n\n auth.signoutRedirect()}>\n Logout\n \n\n \n \n New Event\n \n \n \n\n \n auth.signinRedirect()}>\n Login\n \n \n \n\n \n \n );\n}\n","import { Helmet } from \"react-helmet\";\nimport { AvailaMatrix } from \"~/Components/Availability/AvailaMatrix\";\nimport { RegionSelector } from \"~/Components/Home/RegionSelector\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Availability() {\n return <>\n \n Availability - OTC Status Dashboard\n \n\n \n\n \n ;\n}\n","import { ScaleTelekomHeader, ScaleTelekomNavItem, ScaleTelekomNavList } from \"@telekom/scale-components-react\";\nimport { MobileMenu } from \"./MobileMenu\";\nimport { NavItem } from \"./NavItem\";\nimport { ProfileMenu } from \"./ProfileMenu\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function TopNavBar() {\n return (\n \n\n \n \n\n \n\n \n \n Docs\n \n \n \n\n \n \n \n \n\n \n );\n}\n","import { ReactNode } from \"react\";\nimport { useAuth } from \"react-oidc-context\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Authorized({ children }: { children: ReactNode }): ReactNode {\n const auth = useAuth();\n\n if (auth.isLoading) {\n return \"Authenticating...\";\n }\n\n if (auth.isAuthenticated) {\n return children;\n }\n\n return null;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function NotAuthorized({ children }: { children: ReactNode }): ReactNode {\n const auth = useAuth();\n\n if (auth.isAuthenticated) {\n return null;\n }\n\n return children;\n}\n","/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport enum EventType {\n Operational = \"Operational\",\n Maintenance = \"Maintenance\",\n MinorIssue = \"Minor Issue\",\n MajorIssue = \"Major Issue\",\n Outage = \"Outage\",\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport enum EventStatus {\n Investigating = \"Investigating\",\n Fixing = \"Fixing\",\n Monitoring = \"Monitoring\",\n Resolved = \"Resolved\",\n\n Scheduled = \"Scheduled\",\n Performing = \"Performing\",\n Completed = \"Completed\",\n Cancelled = \"Cancelled\",\n}\n","/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport interface StatusEntity {\n attributes: AttributeEntity[];\n id: number;\n incidents: IncidentEntity[];\n name: string;\n}\n\ninterface AttributeEntity {\n name: NameEnum;\n value: string;\n}\n\nexport const enum NameEnum {\n Category = \"category\",\n Region = \"region\",\n Type = \"type\",\n}\n\ninterface IncidentEntity {\n end_date: null | string;\n id: number;\n impact: number;\n start_date: string;\n text: string;\n updates: UpdateEntity[];\n}\n\ninterface UpdateEntity {\n status: StatusEnum;\n text: string;\n timestamp: string;\n}\n\nexport const enum StatusEnum {\n Analyzing = \"analyzing\",\n Changed = \"changed\",\n Completed = \"completed\",\n Description = \"description\",\n Fixing = \"fixing\",\n InProgress = \"in progress\",\n Modified = \"modified\",\n Observing = \"observing\",\n Reopened = \"reopened\",\n Resolved = \"resolved\",\n Scheduled = \"scheduled\",\n System = \"SYSTEM\",\n}\n","import { ScaleTelekomFooter, ScaleTelekomFooterContent } from \"@telekom/scale-components-react\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function PageFooter() {\n return (\n \n \n © Deutsche Telekom AG \n \n \n \n );\n}\n","import { ScaleTabHeader, ScaleTabPanel } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Models } from \"~/Services/Status.Models\";\n\ninterface INavWorkaround {\n Item: Models.IRegion;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function TabItem({ Item, Topic }: INavWorkaround) {\n const regionSub = useCreation(\n () => Station.get>(Topic), []);\n\n return <>\n regionSub.next(Item)}\n >\n {Item.Name}\n \n \n ;\n}\n","import { ScaleButton, ScaleDropdownSelect, ScaleDropdownSelectItem, ScaleIconActionEdit, ScaleModal, ScaleTextField } from \"@telekom/scale-components-react\";\nimport { useBoolean } from \"ahooks\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventStatus, EventType } from \"./Enums\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventEditor({ Event }: { Event: Models.IEvent }) {\n const [open, { setTrue, setFalse }] = useBoolean();\n\n return <>\n \n \n Edit\n \n\n e.preventDefault()}\n >\n
\n \n\n \n {Object.values(EventType).slice(1).map((type, i) =>\n \n {type}\n )}\n \n\n \n {Object.values(EventStatus)\n .slice(\n Event.Type === EventType.Maintenance ? 4 : 0,\n Event.Type === EventType.Maintenance ? undefined : 4\n ).map((status, i) =>\n \n {status}\n )}\n \n\n
\n \n Cancel\n \n\n \n Submit\n \n
\n
\n \n ;\n}\n","import \"@telekom/scale-components/dist/scale-components/scale-components.css\";\nimport \"./index.css\";\n\nimport { defineCustomElements } from \"@telekom/scale-components/loader\";\nimport { createRoot } from \"react-dom/client\";\nimport { OIDCProvider } from \"./Components/Auth\";\nimport { BrowserRouter } from \"./Components/Router\";\nimport { Layout } from \"./Pages\";\nimport { StatusContext } from \"./Services/Status\";\n\ndefineCustomElements();\n\nconst container = document.querySelector(\"#root\")!;\nconst root = createRoot(container);\n\nroot.render(\n \n \n \n \n \n \n \n);\n","import dayjs from \"dayjs\";\nimport { orderBy } from \"lodash\";\nimport { EventStatus, EventType } from \"~/Components/Event/Enums\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { EmptyDB } from \"./Status\";\nimport { NameEnum, StatusEntity, StatusEnum } from \"./Status.Entities\";\nimport { IStatusContext } from \"./Status.Models\";\n\nconst log = new Logger(\"Service\", \"Status\", \"Transformer\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Transformer(list: StatusEntity[]): IStatusContext {\n let id = 0;\n const db = EmptyDB();\n\n if (!list?.length) {\n log.warn(\"Empty List.\");\n return db;\n }\n\n for (const item of list) {\n if (item.attributes.length < 3) {\n log.debug(\"Skipped Hidden Item.\", item);\n continue;\n }\n\n const targetCate = item.attributes.find(\n (x) => x.name === NameEnum.Category\n )?.value;\n if (!targetCate) {\n log.debug(\"Skipped Null Category.\", item);\n continue;\n }\n\n let dbCate = db.Categories.find((x) => x.Name === targetCate);\n if (!dbCate) {\n dbCate = { Id: id++, Name: targetCate, Services: new Set() };\n db.Categories.push(dbCate);\n }\n\n const targetRegion = item.attributes.find(\n (x) => x.name === NameEnum.Region\n )?.value;\n if (!targetRegion) {\n log.debug(\"Skipped Null Region.\", item);\n continue;\n }\n\n let dbRegion = db.Regions.find((x) => x.Name === targetRegion);\n if (!dbRegion) {\n dbRegion = { Id: id++, Name: targetRegion, Services: new Set() };\n db.Regions.push(dbRegion);\n }\n\n const targetService = item.name;\n\n let dbService = db.Services.find((x) => x.Name === targetService);\n if (!dbService) {\n const abbr = item.attributes.find(\n (x) => x.name === NameEnum.Type\n )?.value;\n if (!abbr) {\n log.debug(\"Skipped Null Abbr.\", item);\n continue;\n }\n\n dbService = {\n Id: id++,\n Name: targetService,\n Abbr: abbr,\n Category: dbCate,\n Regions: new Set([dbRegion]),\n };\n db.Services.push(dbService);\n }\n\n dbService.Regions.add(dbRegion);\n dbRegion.Services.add(dbService);\n dbCate.Services.add(dbService);\n\n let regionService = db.RegionService.find(\n (x) => x.Region === dbRegion && x.Service === dbService\n );\n if (!regionService) {\n regionService = {\n Region: dbRegion,\n Service: dbService,\n Events: new Set(),\n };\n db.RegionService.push(regionService);\n }\n\n if (!item.incidents?.length) {\n continue;\n }\n\n for (const incident of item.incidents) {\n let dbEvent = db.Events.find((x) => x.Id === incident.id);\n\n if (!dbEvent) {\n const type = (() => {\n switch (incident.impact) {\n case 0:\n return EventType.Maintenance;\n case 1:\n return EventType.MinorIssue;\n case 2:\n return EventType.MajorIssue;\n default:\n return EventType.Outage;\n }\n })();\n\n dbEvent = {\n Id: incident.id,\n Title: incident.text,\n Start: dayjs(incident.start_date).toDate(),\n Type: type,\n Status: type === EventType.Maintenance ? EventStatus.Scheduled : EventStatus.Investigating,\n Histories: new Set(),\n RegionServices: new Set([regionService]),\n };\n\n if (incident.end_date) {\n dbEvent.End = dayjs(incident.end_date).toDate();\n }\n\n if (incident.updates?.length) {\n for (const update of incident.updates) {\n const status = (() => {\n switch (update.status) {\n case StatusEnum.System:\n return incident.end_date\n ? EventStatus.Cancelled\n : EventStatus.Investigating;\n\n case StatusEnum.Analyzing:\n return EventStatus.Investigating;\n // @ts-expect-error\n case StatusEnum.Reopened:\n dbEvent.End = undefined;\n case StatusEnum.Fixing:\n return EventStatus.Fixing;\n case StatusEnum.Observing:\n return EventStatus.Monitoring;\n case StatusEnum.Resolved:\n case StatusEnum.Changed:\n return EventStatus.Resolved;\n\n case StatusEnum.Description:\n case StatusEnum.Scheduled:\n case StatusEnum.Modified:\n return EventStatus.Scheduled;\n case StatusEnum.InProgress:\n return EventStatus.Performing;\n case StatusEnum.Completed:\n return EventStatus.Completed;\n\n default:\n break;\n }\n })();\n\n if (!status) {\n log.debug(\"Skipped Unknown Status.\", update, incident);\n continue;\n }\n\n const history = {\n Id: id++,\n Message: update.text,\n Created: dayjs(update.timestamp).toDate(),\n Status: status,\n Event: dbEvent,\n };\n\n dbEvent.Histories.add(history);\n }\n\n const status = orderBy(Array.from(dbEvent.Histories), x => x.Created, \"desc\").at(0)?.Status;\n if (status) {\n dbEvent.Status = status;\n }\n }\n\n if (dbEvent.End &&\n dbEvent.Type === EventType.Maintenance &&\n dbEvent.Status !== EventStatus.Cancelled &&\n dayjs(dbEvent.End).isBefore(dayjs())) {\n dbEvent.Status = EventStatus.Completed;\n }\n\n db.Events.push(dbEvent);\n } else {\n dbEvent.RegionServices.add(regionService);\n }\n\n regionService.Events.add(dbEvent);\n }\n }\n\n log.info(\"Status data loaded.\", db);\n return db;\n}\n","import { ScaleDivider, ScaleTabNav } from \"@telekom/scale-components-react\";\nimport { useStatus } from \"~/Services/Status\";\nimport \"./RegionSelector.css\";\nimport { TabItem } from \"./TabItem\";\n\ninterface IRegionSelector {\n Title: string;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function RegionSelector({ Title, Topic }: IRegionSelector) {\n const { DB: { Regions } } = useStatus();\n\n return (\n
\n
\n \n\n \n {Regions.map((item, i) =>\n )}\n \n
\n\n \n
\n );\n}\n","import { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Calc6Months } from \"~/Helpers/SLA\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\n\ninterface ICategoryGroup {\n Category: Models.ICategory;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function CategoryGroup({ Category, Topic }: ICategoryGroup) {\n const { DB } = useStatus();\n\n const [region, setRegion] = useState(DB.Regions[0]);\n const regionSub = useCreation(\n () => Station.get>(Topic), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const [services, slas] = useMemo(() => {\n const s = chain(DB.RegionService)\n .filter(x => x.Region.Id === region.Id)\n .filter(x => x.Service.Category.Id === Category.Id)\n .orderBy(x => x.Service.Name)\n .value();\n\n const a = chain(s)\n .map(x => Calc6Months(x))\n .value();\n\n return [s, a];\n }, [DB, region, Category]);\n\n function getColor(val: number): string {\n const color = val >= 99.95\n ? \"emerald\" : val >= 99\n ? \"amber\" : \"rose\";\n\n return `bg-${color}-100 hover:bg-${color}-200`;\n }\n\n return <>\n \n \n {Category.Name}\n \n\n \n {services[0].Service.Name}\n \n\n {slas[0].map((sla, i) => (\n \n {sla.toFixed(2)}\n \n ))}\n \n\n {services.slice(1).map((service, i) => (\n \n \n {service.Service.Name}\n \n\n {slas[i + 1].map((sla, j) => (\n \n {sla.toFixed(2)}\n \n ))}\n \n ))}\n ;\n}\n","import { useMount, useUpdateEffect } from \"ahooks\";\nimport { WebStorageStateStore } from \"oidc-client-ts\";\nimport { ReactNode } from \"react\";\nimport { AuthProvider, hasAuthParams, useAuth } from \"react-oidc-context\";\nimport { Common } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { useRouter } from \"../Router\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function OIDCProvider({ children }: { children: ReactNode }): ReactNode {\n const { Rep } = useRouter();\n\n return (\n {\n Rep(\"/\");\n location.reload();\n }}\n authority={\n \"production\" === \"development\"\n ? \"http://80.158.108.251:8080/realms/sd2\"\n : \"https://keycloak.eco.tsi-dev.otc-service.com/realms/eco\"\n }\n post_logout_redirect_uri={\n \"production\" === \"development\"\n ? \"http://localhost:9000/Logout\"\n : \"https://sd3.eco.tsi-dev.otc-service.com/Logout\"\n }\n redirect_uri={\n \"production\" === \"development\"\n ? \"http://localhost:9000/Login\"\n : \"https://sd3.eco.tsi-dev.otc-service.com/Login\"\n }\n >\n \n {children}\n \n );\n}\n\nconst log = new Logger(\"Auth\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nfunction AuthHandler() {\n const auth = (Common.AuthSlot = useAuth());\n const { Paths, Rep } = useRouter();\n\n useMount(() => {\n if (Paths.at(0) === \"Logout\") {\n auth.removeUser();\n return Rep(\"/\");\n }\n\n if (\n !hasAuthParams() &&\n !auth.isAuthenticated &&\n !auth.activeNavigator &&\n !auth.isLoading\n )\n auth.signinRedirect();\n });\n\n useUpdateEffect(() => {\n if (auth.error) log.warn(auth.error);\n }, [auth.error]);\n\n return null;\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport { useMemo } from \"react\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventType } from \"./Enums\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventAffected({ Event }: { Event: Models.IEvent }) {\n const list = useMemo(() => {\n const all = Array.from(Event.RegionServices);\n const l = new Map>();\n\n if (Event.Type === EventType.Maintenance) {\n for (const item of all) {\n const service = item.Service.Name;\n const region = item.Region.Name;\n\n if (!l.has(service)) {\n l.set(service, new Set([region]));\n } else {\n l.get(service)!.add(region);\n }\n }\n }\n\n return Array.from(l.entries());\n }, [Event]);\n\n return (\n \n \n \n \n \n \n \n \n\n \n {list.map(([service, regions], i) => (\n \n \n \n \n ))}\n \n
Service NameAffected Regions
{service}{Array.from(regions).join(\", \")}
\n
\n );\n}\n","import { ScaleTag } from \"@telekom/scale-components-react\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventStatus } from \"../Event/Enums\";\nimport { Indicator } from \"../Home/Indicator\";\n\ninterface IEventItem {\n Prev?: Models.IEvent;\n Curr: Models.IEvent;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventItem({ Prev, Curr }: IEventItem) {\n const isBegin = useMemo(() => {\n if (!Prev)\n return true;\n\n return Prev.Start.getMonth() != Curr.Start.getMonth();\n }, [Prev]);\n\n const label = useRef(null);\n\n useEffect(() => {\n if (label.current) {\n const prev = label.current.previousElementSibling;\n if (prev && prev instanceof HTMLElement) {\n prev.style.paddingBottom = \"0\";\n prev.classList.add(\"mb-6\");\n }\n }\n }, [label.current]);\n\n const services = useMemo(() => {\n return chain(Array.from(Curr.RegionServices))\n .map(x => x.Service)\n .uniqBy(x => x.Id)\n .value();\n }, [Curr.RegionServices]);\n\n const upper = services.map(x => ({\n Name: x.Name,\n Abbr: x.Abbr.toUpperCase()\n }));\n\n const servicesTxt = upper.length > 3\n ? upper.slice(0, 3).map(x => x.Abbr).join(\", \") + ` (+${upper.length - 3})`\n : upper.map(x => x.Abbr).join(\", \");\n\n const regions = useMemo(() => {\n return chain(Array.from(Curr.RegionServices))\n .map(x => x.Region.Name)\n .uniq()\n .value();\n }, [Curr.RegionServices]);\n\n const regionsTxt = regions.length > 2\n ? regions.slice(0, 2).join(\", \") + ` (+${regions.length - 2})`\n : regions.join(\", \");\n\n let color: any;\n\n switch (Curr.Status) {\n case EventStatus.Investigating:\n case EventStatus.Fixing:\n case EventStatus.Monitoring:\n color = \"yellow\";\n break;\n\n case EventStatus.Scheduled:\n case EventStatus.Performing:\n color = \"violet\";\n break;\n\n case EventStatus.Resolved:\n case EventStatus.Completed:\n color = \"green\";\n break;\n\n default:\n color = \"standard\";\n break;\n }\n\n return (\n <>\n {isBegin &&\n \n {dayjs(Curr.Start).format(\"MMMM YYYY\")}\n }\n\n
  • \n \n {servicesTxt} {regionsTxt} {Curr.Type}\n \n\n
    \n \n {Curr.Status}\n \n\n {services.slice(0, 3).map(service => (\n \n {service.Name}\n \n ))}\n\n {services.length > 3 && (\n \n +{services.length - 3}\n \n )}\n
    \n\n \n\n \n
  • \n \n );\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { useStatus } from \"~/Services/Status\";\nimport { CategoryGroup } from \"./CategoryGroup\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function AvailaMatrix() {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const topic = \"Availability\";\n const regionSub = useCreation(\n () => Station.get(topic, () => {\n const first = DB.Regions[0];\n return new BehaviorSubject(first);\n }), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n return (\n \n \n \n \n \n\n \n\n \n \n\n \n {Array.from({ length: 6 }).map((_, i) => {\n const date = dayjs().subtract(5 - i, 'month');\n const month = date.format('MMMM');\n const year = date.year();\n\n return (\n \n );\n })}\n \n \n\n \n {chain(Array.from(region.Services))\n .map(x => x.Category)\n .uniqBy(x => x.Id)\n .orderBy(x => x.Name)\n .map((x, i) => )\n .value()}\n \n
    \n Category\n \n Service\n \n Availability, %\n
    \n {year}
    {month}\n
    \n\n \n
    \n );\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { Models } from \"~/Services/Status.Models\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventLog({ Event }: { Event: Models.IEvent }) {\n const list = chain(Array.from(Event.Histories))\n .orderBy(x => x.Created, \"desc\")\n .value();\n\n return (\n \n \n \n \n \n \n \n \n\n \n {list.map((history, i) => (\n \n \n\n \n \n ))}\n \n
    UpdatesInformation
    \n \n\n \n {history.Message}
    \n
    \n );\n}\n","import { FluentProvider, Skeleton, SkeletonItem, webLightTheme } from \"@fluentui/react-components\";\nimport { useBoolean, useInViewport } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useRef } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { EventItem } from \"~/Components/History/EventItem\";\nimport { useStatus } from \"~/Services/Status\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function History() {\n const { DB } = useStatus();\n\n const skel = useRef(null);\n const [isBottom] = useInViewport(skel);\n const [isEnd] = useBoolean(true);\n\n const loading = isBottom && !isEnd;\n\n return <>\n \n Timeline - OTC Status Dashboard\n \n\n
    \n

    \n OTC Event Timeline\n

    \n
    \n\n
      \n {chain(DB.Events)\n .orderBy(x => x.Start, \"desc\")\n .map((event, index, events) => [events[index - 1], event])\n .map(([prev, curr]) => (\n \n ))\n .value()}\n
    \n\n \n \n \n\n
    \n \n\n
    \n \n \n
    \n\n \n
    \n
    \n \n ;\n}\n","import { User } from \"oidc-client-ts\";\nimport { AuthContextProps } from \"react-oidc-context\";\nimport { SubjectLike } from \"rxjs\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport const Dic = {\n Name: \"SD3\",\n};\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport abstract class Station {\n private static readonly subjects: Map> = new Map();\n\n public static get>(topic: string, factor?: () => T): T {\n if (!this.subjects.has(topic)) {\n if (factor) {\n this.subjects.set(topic, factor());\n } else {\n throw new Error(`Subject '${topic}' not found.`);\n }\n }\n\n return this.subjects.get(topic) as T;\n }\n\n public static delete(topic: string): void {\n this.subjects.delete(topic);\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport abstract class Common {\n public static get LocalUser(): User | null {\n const str = localStorage.getItem(\n \"production\" === \"development\"\n ? \"oidc.user:http://80.158.108.251:8080/realms/sd2:status-dashboard\"\n : \"oidc.user:https://keycloak.eco.tsi-dev.otc-service.com/realms/eco:status-dashboard\"\n );\n\n if (!str) return null;\n return User.fromStorageString(str);\n }\n\n public static AuthSlot?: AuthContextProps;\n\n public static get Auth(): Promise {\n return new Promise(resolve => {\n if (this.AuthSlot)\n return resolve(this.AuthSlot);\n\n const interval = setInterval(() => {\n if (this.AuthSlot) {\n clearInterval(interval);\n resolve(this.AuthSlot);\n }\n }, 100);\n });\n }\n\n public static async AccessToken(): Promise {\n let { isAuthenticated, user, signinSilent } = await this.Auth;\n\n if (!isAuthenticated)\n user = await signinSilent();\n\n if (user)\n return user.access_token;\n }\n}\n","import { useMount } from \"ahooks\";\nimport { ReactNode, createContext, useContext, useState } from \"react\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nfunction combine(paths: readonly any[]): string {\n const p = paths\n .filter(x => x)\n .map(x => x!.toString().replace(/^\\/+/, \"\"))\n .join(\"/\");\n\n return `/${p}`;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\ninterface IRouter {\n Paths: readonly string[],\n Search: URLSearchParams,\n readonly Put: (search: URLSearchParams) => void,\n readonly Nav: (...paths: readonly any[]) => void,\n readonly Rep: (...paths: readonly any[]) => void,\n readonly Reload: (...paths: readonly any[]) => void,\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nconst Router = createContext({} as IRouter);\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function useRouter() {\n return useContext(Router);\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function BrowserRouter({ children }: { children: ReactNode }): ReactNode {\n const [router, setRouter] = useState(() => ({\n Paths: location.pathname.split(\"/\").filter(x => x),\n Search: new URLSearchParams(location.search),\n Put: put,\n Nav: (...p) => nav(combine(p)),\n Rep: (...p) => rep(combine(p)),\n Reload: (...p) => reload(p),\n }));\n\n function put(search: URLSearchParams) {\n history.replaceState(null, \"\", `${location.pathname}${search.size ? \"?\" : \"\"}${search.toString()}`);\n router.Search = new URLSearchParams(search);\n setRouter({ ...router });\n }\n\n function update(path: string) {\n router.Paths = path.split(\"/\").filter(x => x);\n router.Search = new URLSearchParams(location.search);\n setRouter({ ...router });\n }\n\n function nav(path: string) {\n history.pushState(null, \"\", path);\n update(path);\n }\n\n function rep(path: string) {\n history.replaceState(null, \"\", path);\n update(path);\n }\n\n function reload(paths: readonly string[]) {\n history.replaceState(null, \"\", \"/Reload\");\n update(\"/Reload\");\n\n setTimeout(() => {\n const path = paths.length ? combine(paths) : location.pathname;\n history.pushState(null, \"\", path);\n update(path);\n }, 100);\n }\n\n useMount(() => {\n if (location.pathname === \"/\")\n if (location.search.startsWith(\"?/\"))\n rep(location.search.substring(2));\n\n addEventListener(\"click\", e => {\n const target = (e.target as HTMLElement)?.closest(\"a\");\n\n if (target) {\n if (target.origin !== location.origin) {\n target.target = \"_blank\";\n return;\n }\n\n e.preventDefault();\n nav(target.pathname);\n }\n });\n\n addEventListener(\"popstate\", e => {\n e.preventDefault();\n update(location.pathname);\n });\n });\n\n return (\n \n {children}\n \n );\n}\n","import { CounterBadge, FluentProvider, webLightTheme } from \"@fluentui/react-components\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventStatus, EventType } from \"../Event/Enums\";\nimport { Indicator } from \"./Indicator\";\nimport \"./ServiceItem.css\";\n\ninterface IServiceItem {\n RegionService: Models.IRegionService;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function ServiceItem({ RegionService }: IServiceItem) {\n const { DB } = useStatus();\n\n const [status, setStatus] = useState(EventType.Operational);\n const [future, setFuture] = useState(false);\n const [id, setId] = useState();\n\n useEffect(() => {\n const res = chain([...RegionService.Events])\n .filter(x => {\n if (x.Type !== EventType.Maintenance && x.End) {\n return false;\n }\n\n return ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled]\n .includes(x.Status);\n })\n .orderBy(x => x.Type, 'desc')\n .head()\n .value();\n\n if (res) {\n setStatus(res.Type);\n setFuture(dayjs(res.Start).isAfter(dayjs()));\n setId(res.Id);\n }\n else {\n setStatus(EventType.Operational);\n setFuture(false);\n setId(undefined);\n }\n }, [DB, RegionService]);\n\n return (\n
  • \n {future ? (\n \n \n \n\n \n \n \n ) :\n id ? (\n \n \n \n ) : (\n \n )}\n\n \n
  • \n );\n}\n","import { ScaleLoadingSpinner } from \"@telekom/scale-components-react\";\nimport { Suspense, useMemo } from \"react\";\nimport { PageFooter } from \"~/Components/Layout/PageFooter\";\nimport { TopNavBar } from \"~/Components/Layout/TopNavBar\";\nimport { useRouter } from \"~/Components/Router\";\nimport { NotFound } from \"./404\";\nimport { Availability } from \"./Availability\";\nimport { Event } from \"./Event\";\nimport { History } from \"./History\";\nimport { Home } from \"./Home\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Layout() {\n const { Paths } = useRouter();\n const path = Paths.at(0);\n\n const match = useMemo(() => {\n switch (path) {\n case \"Login\":\n return ;\n\n case \"Reload\":\n return ;\n\n case \"Event\":\n return ;\n\n case \"History\":\n return ;\n\n case \"Availability\":\n return ;\n\n case \"\":\n case undefined:\n return ;\n\n default:\n return ;\n }\n }, [path]);\n\n return (\n
    \n \n\n
    \n }>\n {match}\n \n
    \n\n \n
    \n );\n}\n","import { ScaleNotification } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { EventStatus, EventType } from \"~/Components/Event/Enums\";\nimport { EventGrid } from \"~/Components/Home/EventGrid\";\nimport \"~/Components/Home/Home.css\";\nimport { Indicator } from \"~/Components/Home/Indicator\";\nimport { RegionSelector } from \"~/Components/Home/RegionSelector\";\nimport { StatusCard } from \"~/Components/Home/StatusCard\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { useStatus } from \"~/Services/Status\";\n\nconst log = new Logger(\"Home\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Home() {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const topic = \"HomeRegion\";\n const regionSub = useCreation(\n () => Station.get(topic, () => {\n const first = DB.Regions[0];\n return new BehaviorSubject(first);\n }), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const categories = useMemo(() => {\n return chain(DB.RegionService)\n .filter(rs => rs.Region.Id === region.Id)\n .map(rs => rs.Service.Category)\n .uniq()\n .orderBy(x => x.Name)\n .value();\n }, [DB, region]);\n\n const abnormalCount = useMemo(() => {\n const service = chain(DB.Events)\n .filter(e => !e.End)\n .filter(e => e.Type !== EventType.Maintenance)\n .filter(e => ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled].includes(e.Status))\n .flatMap(e => [...e.RegionServices])\n .map(rs => rs.Service)\n .uniqBy(s => s.Id)\n .value();\n\n log.debug(service);\n return service.length;\n }, [DB]);\n\n const heading = abnormalCount > 0\n ? `${abnormalCount} components have issue, but don't worry, we are working on it.`\n : \"All Systems Operational\";\n\n return (\n <>\n \n OTC Status Dashboard\n \n\n 0 ? \"warning\" : \"success\"}\n />\n\n \n\n \n\n
    \n {categories.map((cate, i) => (\n \n ))}\n
    \n\n
    \n
    \n
    \n \n
    \n\n \n {Object.values(EventType).map((state, i) => (\n
    \n \n \n
    \n ))}\n
    \n
    \n \n );\n}\n","import { useRequest } from \"ahooks\";\nimport { openDB } from \"idb\";\nimport { createContext, useContext, useState } from \"react\";\nimport { Dic } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { StatusEntity } from \"./Status.Entities\";\nimport { IStatusContext } from \"./Status.Models\";\nimport { Transformer } from \"./Status.Trans\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EmptyDB(): IStatusContext {\n return {\n Services: [],\n Categories: [],\n Regions: [],\n Events: [],\n Histories: [],\n RegionService: [],\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport let DB = EmptyDB();\n\ninterface IContext {\n DB: IStatusContext;\n Update: (data: IStatusContext) => void;\n}\n\nconst CTX = createContext({} as IContext);\nconst Store = \"Status\";\n\nfunction init() {\n return openDB(Dic.Name, 1, {\n upgrade(db) {\n db.createObjectStore(Store);\n },\n });\n}\n\nasync function save() {\n const db = await init();\n await db.put(Store, DB, Store);\n db.close();\n}\n\nasync function load() {\n const db = await init();\n const res = await db.get(Store, Store) as IStatusContext;\n if (res) {\n DB = res;\n }\n db.close();\n}\n\nawait load();\n\nconst log = new Logger(\"Service\", \"Status\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function useStatus() {\n const ctx = useContext(CTX);\n\n if (DB.Regions.length < 1) {\n throw new Promise((res) => {\n const i = setInterval(() => {\n if (DB.Regions.length > 0) {\n clearInterval(i);\n res(ctx);\n }\n }, 100);\n });\n }\n\n return ctx;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function StatusContext({ children }: { children: JSX.Element }) {\n const [db, setDB] = useState(DB);\n const url = \"http://localhost:9000\";\n const uri = \"/api/v1\";\n const file = \"true\" === \"true\";\n\n useRequest(\n async () => {\n log.info(\"Loading status data...\");\n\n const link = file ? \"/mock.json\" : `${url}${uri}/component_status`;\n const response = await fetch(link);\n const data = await response.json();\n\n log.debug(\"Status data loaded.\", data);\n return data as StatusEntity[];\n },\n {\n cacheKey: log.namespace,\n onSuccess: (list) => update(Transformer(list)),\n }\n );\n\n function update(data: IStatusContext) {\n DB = { ...data };\n setDB(DB);\n save();\n }\n\n return (\n {children}\n );\n}\n","import { createElement, useMemo } from \"react\";\nimport { EventType } from \"../Event/Enums\";\n\ninterface IIndicator {\n Type: EventType;\n Size?: number;\n Class?: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Indicator({ Type, Size, Class }: IIndicator) {\n const scaleIcon = \"scale-icon-\";\n const scaleColor = \"var(--telekom-color-\";\n const func = \"functional-\";\n const text = `${scaleColor}text-and-icon-${func}`;\n\n const iconName = useMemo(() => {\n switch (Type) {\n case EventType.Maintenance:\n return \"service-maintanance\";\n case EventType.MinorIssue:\n return \"action-minus-circle\";\n case EventType.MajorIssue:\n return \"alert-warning\";\n case EventType.Outage:\n return \"action-circle-close\";\n default:\n return \"action-success\";\n }\n }, [Type]);\n\n const fillColor = useMemo(() => {\n switch (Type) {\n case EventType.Maintenance:\n return `${text}informational)`;\n case EventType.MinorIssue:\n return `${scaleColor}${func}warning-standard)`;\n case EventType.MajorIssue:\n return `${text}warning)`;\n case EventType.Outage:\n return `${text}danger)`;\n default:\n return `${text}success)`;\n }\n }, [Type]);\n\n return createElement(\n `${scaleIcon}${iconName}`,\n {\n \"accessibility-title\": Type,\n fill: fillColor,\n class: Class,\n ...(Size ? { size: Size } : {}),\n }\n );\n}\n","import { ScaleDataGrid } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\nimport { useStatus } from \"~/Services/Status\";\nimport { EventStatus, EventType } from \"../Event/Enums\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventGrid() {\n const { DB } = useStatus();\n const ref = useRef(null);\n\n const observer = useCreation(() => {\n return new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === \"childList\") {\n const added = mutation.addedNodes as NodeListOf;\n\n added.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const cells = node.querySelectorAll(\".tbody__cell\") as NodeListOf;\n\n cells.forEach((cell) => {\n if (cell.querySelector(\".tbody__actions\")) {\n cell.style.paddingTop = \"0\";\n cell.style.paddingBottom = \"0\";\n }\n });\n }\n });\n }\n });\n });\n }, []);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const grid = ref.current;\n\n observer.disconnect();\n observer.observe(grid.shadowRoot!, {\n childList: true,\n subtree: true\n });\n\n grid.fields = [\n { type: \"number\", label: \"ID\" },\n { type: \"tags\", label: \"Type\" },\n { type: \"date\", label: \"Start\" },\n { type: \"text\", label: \"Status / Plan\" },\n { type: \"text\", label: \"Region\", sortable: true },\n { type: \"text\", label: \"Service\", sortable: true, stretchWeight: 0.7 },\n { type: \"actions\", label: \"Detail\" },\n ];\n\n const events = chain(DB.Events)\n .map((x) => {\n const rs = Array.from(x.RegionServices);\n\n const Services = chain(rs)\n .map(s => s.Service.Name)\n .uniq()\n .value();\n\n const Regions = chain(rs)\n .map(r => r.Region.Name)\n .uniq()\n .value();\n\n return {\n ...x,\n Services,\n Regions,\n Status: x.Status\n }\n })\n .filter(x => {\n if (x.Type !== EventType.Maintenance && x.End) {\n return false;\n }\n\n return ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled]\n .includes(x.Status);\n })\n .orderBy(x => x.Start, \"desc\")\n .map(x => {\n let tag;\n\n switch (x.Type) {\n case EventType.MinorIssue:\n tag = { content: \"Minor\", color: \"yellow\" };\n break;\n case EventType.MajorIssue:\n tag = { content: \"Major\", color: \"orange\" };\n break;\n case EventType.Outage:\n tag = { content: \"Outage\", color: \"red\" };\n break;\n default:\n tag = { content: \"Maintain\", color: \"cyan\" };\n break;\n }\n\n return [\n x.Id,\n [tag],\n dayjs(x.Start).format(\"YYYY-MM-DD HH:mm [UTC]\"),\n x.End\n ? dayjs(x.End).format(\"MM-DD HH:mm\")\n : x.Status,\n x.Regions.length > 1\n ? `${x.Regions[0]} +${x.Regions.length - 1}`\n : x.Regions[0],\n x.Services.length > 1\n ? `${x.Services[0]} +${x.Services.length - 1}`\n : x.Services[0],\n [\n {\n label: \"↗\",\n variant: \"secondary\",\n href: `/Event/${x.Id}`\n }\n ]\n ];\n })\n .value();\n\n grid.rows = events;\n }, [ref.current, DB]);\n\n return (\n \n );\n}\n","import dayjs from 'dayjs';\nimport { chain } from 'lodash';\nimport { EventType } from '~/Components/Event/Enums';\nimport { Models } from \"~/Services/Status.Models\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Calc6Months(service: Models.IRegionService) {\n const now = dayjs();\n const sixMonth = now.subtract(6, 'month');\n\n const events = chain(Array.from(service.Events))\n .filter(e =>\n dayjs(e.Start).isAfter(sixMonth) &&\n e.Type !== EventType.Maintenance)\n .value();\n\n const results = [];\n\n for (let i = 0; i < 6; i++) {\n const startOfMonth = dayjs().startOf('month').subtract(i, 'month');\n const endOfMonth = startOfMonth.endOf('month');\n\n const monthlyEvents = events.filter(e =>\n dayjs(e.Start).isBefore(endOfMonth) &&\n dayjs(e.End ?? now).isAfter(startOfMonth)\n );\n\n const totalDowntime = monthlyEvents.reduce((sum, evt) => {\n const start = dayjs(evt.Start).isBefore(startOfMonth)\n ? startOfMonth : dayjs(evt.Start);\n\n const end = (evt.End && dayjs(evt.End).isBefore(endOfMonth))\n ? dayjs(evt.End) : endOfMonth;\n\n return sum + end.diff(start, 'minute');\n }, 0);\n\n const totalMinutes = endOfMonth.diff(startOfMonth, 'minute');\n const uptimePercentage = ((totalMinutes - totalDowntime) / totalMinutes) * 100;\n results.push(Math.max(uptimePercentage, 0));\n }\n\n results.reverse();\n return results;\n}\n","import { ScaleDivider } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { ServiceItem } from \"./ServiceItem\";\n\ninterface IStatusCard {\n Category: Models.ICategory;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function StatusCard({ Category }: IStatusCard) {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const regionSub = useCreation(\n () => Station.get>(\"HomeRegion\"), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const services = useMemo(() =>\n chain(DB.RegionService)\n .filter(x => x.Region.Id === region.Id)\n .filter(x => x.Service.Category.Id === Category.Id)\n .orderBy(x => x.Service.Name)\n .value()\n , [DB, region, Category]);\n\n return (\n
    \n

    \n {Category.Name}\n

    \n\n \n\n
      \n {services.map((item, i) => (\n \n ))}\n
    \n
    \n );\n}\n","import dayjs from \"dayjs\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { Indicator } from \"../Home/Indicator\";\nimport { EventStatus, EventType } from \"./Enums\";\nimport { EventAffected } from \"./EventAffected\";\nimport { EventEditor } from \"./EventEditor\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventCard({ Event }: { Event: Models.IEvent }) {\n return (\n
    \n
    \n
    \n \n\n

    \n {Event.Title}\n

    \n
    \n\n \n
    \n\n
    \n
    \n \n\n \n\n \n\n \n
    \n\n
    \n \n\n \n\n \n\n \n
    \n
    \n\n
    \n \n
    \n
    \n );\n}\n","import { ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useRouter } from \"../Router\";\n\ninterface INavItem {\n Href: string;\n Label: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function NavItem({ Href, Label }: INavItem) {\n const { Paths } = useRouter();\n const path = Paths.at(0);\n\n return (\n \n {Label}\n \n );\n}\n","import { ScaleLoadingSpinner } from \"@telekom/scale-components-react\";\nimport { Helmet } from \"react-helmet\";\nimport { useRouter } from \"~/Components/Router\";\nimport { Dic } from \"~/Helpers/Entities\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function NotFound() {\n const { Rep } = useRouter();\n setTimeout(() => Rep(\"/\"), 3000);\n\n return <>\n \n Redirect - Not Found - {Dic.Name}\n \n \n\n \n ;\n}\n","import { ScaleIconActionMenu, ScaleTelekomMobileFlyoutCanvas, ScaleTelekomMobileMenu, ScaleTelekomMobileMenuItem, ScaleTelekomNavFlyout, ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useAuth } from \"react-oidc-context\";\nimport { Authorized, NotAuthorized } from \"../Auth/With\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function MobileMenu() {\n const auth = useAuth();\n\n return (\n \n \n\n \n \n \n\n \n History\n \n\n \n Availability\n \n\n \n \n Docs\n \n \n\n \n \n New Event\n \n\n auth.signoutRedirect()}>\n Logout {auth.user?.profile.name}\n \n \n\n \n auth.signinRedirect()}>\n Login\n \n \n\n \n \n \n \n );\n}\n","import { Helmet } from \"react-helmet\";\nimport { EventCard } from \"~/Components/Event/EventCard\";\nimport { EventLog } from \"~/Components/Event/EventLog\";\nimport { useRouter } from \"~/Components/Router\";\nimport { useStatus } from \"~/Services/Status\";\nimport { NotFound } from \"./404\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Event() {\n const { DB } = useStatus();\n\n const { Paths } = useRouter();\n const id = parseInt(Paths.at(1)!);\n\n const event = DB.Events.find(e => e.Id === id);\n\n if (isNaN(id) || !event) {\n return ;\n }\n\n return <>\n \n Event {id.toString()} - OTC Status Dashboard\n \n\n \n \n \n}\n","function c(c,n,a,f){c._m(n),a(\"10a4c0c8\");}","import dayjs from \"dayjs\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nconst enum ANSI {\n black = 30,\n black_hl = 90,\n balck_bg = 40,\n black_bg_hl = 100,\n\n red = 31,\n red_hl = 91,\n red_bg = 41,\n red_bg_hl = 101,\n\n green = 32,\n green_hl = 92,\n green_bg = 42,\n green_bg_hl = 102,\n\n yellow = 33,\n yellow_hl = 93,\n yellow_bg = 43,\n yellow_bg_hl = 103,\n\n blue = 34,\n blue_hl = 94,\n blue_bg = 44,\n blue_bg_hl = 104,\n\n magenta = 35,\n magenta_hl = 95,\n magenta_bg = 45,\n magenta_bg_hl = 105,\n\n cyan = 36,\n cyan_hl = 96,\n cyan_bg = 46,\n cyan_bg_hl = 106,\n\n white = 37,\n white_hl = 97,\n white_bg = 47,\n white_bg_hl = 107,\n\n default = 39,\n default_bg = 49,\n};\n\ntype level = \"error\" | \"warn\" | \"info\" | \"debug\" | \"throw\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport class Logger {\n public readonly namespace;\n\n public readonly info;\n public readonly error;\n public readonly warn;\n public readonly debug;\n public readonly throw;\n\n public constructor(...namespace: string[]) {\n this.namespace = namespace.join(\" > \");\n\n this.error = console.error.bind(this,\n this.baseColor(\n ANSI.red_bg_hl,\n \"error\"\n ), \"\\n\\t\");\n\n this.warn = console.warn.bind(this,\n this.baseColor(\n ANSI.yellow_bg_hl,\n \"warn\"\n ), \"\\n\\t\");\n\n this.info = console.info.bind(this,\n this.baseColor(\n ANSI.blue_bg_hl,\n \"info\"\n ), \"\\n\\t\");\n\n this.debug = console.debug.bind(this,\n this.baseColor(\n ANSI.green_bg_hl,\n \"debug\"\n ), \"\\n\\t\");\n\n this.throw = console.log.bind(this,\n this.baseColor(\n ANSI.magenta_bg_hl,\n \"throw\"\n ),\n \"↓ The Following Error is Thrown ↓\"\n );\n }\n\n public With(...names: string[]): Logger {\n return new Logger(this.namespace, ...names);\n }\n\n private baseColor(color: ANSI, level: level): string {\n return `\\x1b[${color};${ANSI.black};1m ${level.toUpperCase()} `\n + `\\x1b[0m\\x1b[${ANSI.black_bg_hl};${ANSI.white_hl}m ${dayjs().format(\"YY-M-D H:m:s\")} `\n + `\\x1b[1m\\x1b[${ANSI.balck_bg};${ANSI.white_hl}m ${this.namespace} `;\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport interface ICompLog {\n ParentLog: Logger\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/index_6a10.d4bd1878.js b/index_6a10.d4bd1878.js deleted file mode 100644 index d321bdb..0000000 --- a/index_6a10.d4bd1878.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(_){for(var r in _){_[r].__farm_resource_pot__='index_6a10.js';window['48f482be4dd400a82c616a2a754e954c'].__farm_module_system__.register(r,_[r])}})({"01332dcd":function e(e,l,n,c){e._m(l),e.o(l,"ProfileMenu",()=>r);var i=n("036dd75c"),t=n("8c585220"),s=n("725e471d"),o=n("0e1b3d7c");function r(){var e,l=s.useAuth();return i.jsx(t.ScaleTelekomNavItem,{hideOnMobile:!0,children:i.jsxs(t.ScaleMenuFlyout,{children:[i.jsx(t.ScaleButton,{slot:"trigger",variant:"secondary",iconOnly:!0,children:i.jsx(t.ScaleIconUserFileUser,{"accessibility-title":"Menu"})}),i.jsxs(t.ScaleMenuFlyoutList,{children:[i.jsxs(o.Authorized,{children:[i.jsxs(t.ScaleMenuFlyoutItem,{children:["Hi, ",null===(e=l.user)||void 0===e?void 0:e.profile.name]}),i.jsx(t.ScaleMenuFlyoutItem,{"onScale-select":()=>l.signoutRedirect(),children:"Logout"}),i.jsx(t.ScaleMenuFlyoutItem,{children:i.jsx("a",{className:"text-black no-underline",href:"/NewEvent",children:"New Event"})})]}),i.jsx(o.NotAuthorized,{children:i.jsx(t.ScaleMenuFlyoutItem,{"onScale-select":()=>l.signinRedirect(),children:"Login"})})]})]})});}},"06e54471":async function i(i,a,l,t){let[e,c,n,r]=await Promise.all([l("036dd75c"),l("c43b3a33"),l("639fcbf9"),l("442900fb")]);function s(){return e.jsxs(e.Fragment,{children:[e.jsx(c.Helmet,{children:e.jsx("title",{children:"Availability - OTC Status Dashboard"})}),e.jsx(r.RegionSelector,{Title:"OTC Availability Matrix",Topic:"Availability"}),e.jsx(n.AvailaMatrix,{})]});}i._m(a),i.o(a,"Availability",()=>s);},"0d5d3bf9":function e(e,a,l,i){e._m(a),e.o(a,"TopNavBar",()=>c);var s=l("036dd75c"),t=l("8c585220"),n=l("ea7f23b6"),o=l("dc6fa42f"),r=l("01332dcd");function c(){return s.jsxs(t.ScaleTelekomHeader,{appName:"Open Telekom Cloud",appNameLink:"/",logoHref:"/",slot:"header",type:"slim",children:[s.jsxs(t.ScaleTelekomNavList,{"aria-label":"Main Navigation Links",slot:"main-nav",children:[s.jsx(o.NavItem,{Href:"/History",Label:"History"}),s.jsx(o.NavItem,{Href:"/Availability",Label:"Availability"}),s.jsx(t.ScaleTelekomNavItem,{"aria-label":"Docs",children:s.jsx("a",{href:"https://docs.otc.t-systems.com/status-dashboard/index.html",target:"_black",children:"Docs"})})]}),s.jsxs(t.ScaleTelekomNavList,{alignment:"right","aria-label":"Functions Menu",slot:"functions",variant:"functions",children:[s.jsx(r.ProfileMenu,{}),s.jsx(n.MobileMenu,{})]})]});}},"0e1b3d7c":function t(t,n,u,i){t._m(n),t.o(n,"Authorized",()=>r),t.o(n,"NotAuthorized",()=>d),u("da0b8b76");var e=u("725e471d");function r(t){var n=t.children,u=e.useAuth();return u.isLoading?"Authenticating...":u.isAuthenticated?n:null;}function d(t){var n=t.children;return e.useAuth().isAuthenticated?null:n;}},"10a4c0c8":function e(e,n,i,o){var t,a,r,s;e._m(n),e.o(n,"EventType",()=>t),e.o(n,"EventStatus",()=>a),(r=t||(t={})).Operational="Operational",r.Maintenance="Maintenance",r.MinorIssue="Minor Issue",r.MajorIssue="Major Issue",r.Outage="Outage",(s=a||(a={})).Investigating="Investigating",s.Fixing="Fixing",s.Monitoring="Monitoring",s.Resolved="Resolved",s.Scheduled="Scheduled",s.Performing="Performing",s.Completed="Completed",s.Cancelled="Cancelled";},"15ac19ff":function e(e,n,i,o){var d,g,r,s;e._m(n),e.o(n,"NameEnum",()=>d),e.o(n,"StatusEnum",()=>g),(r=d||(d={})).Category="category",r.Region="region",r.Type="type",(s=g||(g={})).Analyzing="analyzing",s.Changed="changed",s.Completed="completed",s.Description="description",s.Fixing="fixing",s.InProgress="in progress",s.Modified="modified",s.Observing="observing",s.Reopened="reopened",s.Resolved="resolved",s.Scheduled="scheduled",s.System="SYSTEM";},"1e25dce2":function e(e,o,t,l){e._m(o),e.o(o,"PageFooter",()=>c);var i=t("036dd75c"),n=t("8c585220");function c(){return i.jsx(n.ScaleTelekomFooter,{slot:"footer",type:"minimal",class:"mt-auto pt-8","data-mode":"dark",children:i.jsxs(n.ScaleTelekomFooterContent,{children:[i.jsx("span",{slot:"notice",children:" © Deutsche Telekom AG "}),i.jsxs("ul",{slot:"navigation",children:[i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/imprint",children:"Imprint"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/data-protection",children:"Data privacy"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/disclaimer-of-liability",children:"Disclaimer of liability"})}),i.jsx("li",{children:i.jsx("a",{href:"https://open-telekom-cloud.com/en/contact",children:"Contact"})})]})]})});}},"24987bf2":function e(e,a,n,t){e._m(a),e.o(a,"TabItem",()=>o);var c=n("036dd75c"),l=n("8c585220"),s=n("630730d4"),d=n("791ca373");function o(e){var a=e.Item,n=e.Topic,t=s.useCreation(()=>d.Station.get(n),[]);return c.jsxs(c.Fragment,{children:[c.jsx(l.ScaleTabHeader,{slot:"tab","onScale-select":()=>t.next(a),children:a.Name}),c.jsx(l.ScaleTabPanel,{className:"hidden",slot:"panel"})]});}n("fc5b6de8");},"280fd75c":function e(e,t,l,n){e._m(t),e.o(t,"EventEditor",()=>c);var s=l("f38b32a3"),o=l("036dd75c"),i=l("8c585220"),a=l("630730d4");function c(e){e.Event;var t=s._(a.useBoolean(),2),l=t[0],n=t[1],c=n.setTrue;return n.setFalse,o.jsxs(o.Fragment,{children:[o.jsxs(i.ScaleButton,{onClick:c,size:"small",children:[o.jsx(i.ScaleIconActionEdit,{}),"Edit"]}),o.jsx(i.ScaleModal,{heading:"Edit Event",opened:l,omitCloseButton:!0,size:"small",class:"absolute",children:o.jsx(i.ScaleTextField,{inputAutocomplete:"off",class:"w-full",placeholder:"Please give the title of event",required:!0})})]});}l("fc5b6de8");},"2c6e69f1":async function e(e,r,t,o){let[c,a,n,d,s,i,l]=await Promise.all([t("036dd75c"),t("b8ba6bc5"),t("21e336be"),t("5ec5fb5a"),t("793f703f"),t("9f0b6ac9"),t("a198c3de")]);e._m(r),a.defineCustomElements();var u=document.querySelector("#root");n.createRoot(u).render(c.jsx(s.BrowserRouter,{children:c.jsx(d.OIDCProvider,{children:c.jsx(l.StatusContext,{children:c.jsx(i.Layout,{})})})}));},"41aa22d0":function e(e,t,n,a){e._m(t),e.o(t,"Transformer",()=>l),n("582a891d"),n("65ea514d"),n("f1a0b902"),n("51ca05ff"),n("3e63fd8f");var r=e.i(n("a29c3460")),i=n("8effc9a2"),u=n("10a4c0c8"),s=n("fdad05c1"),d=n("a198c3de"),v=n("15ac19ff");n("fc5b6de8");var o=new s.Logger("Service","Status","Transformer");function l(t){var n=0,a=d.EmptyDB();if(!(null==t?void 0:t.length))return o.warn("Empty List."),a;var s=!0,l=!1,S=void 0;try{for(var c,f=t[Symbol.iterator]();!(s=(c=f.next()).done);s=!0)!function(){var t=c.value;if(t.attributes.length<3)return o.debug("Skipped Hidden Item.",t);var s=null===(E=t.attributes.find(e=>e.name===v.NameEnum.Category))||void 0===E?void 0:E.value;if(!s)return o.debug("Skipped Null Category.",t);var d=a.Categories.find(e=>e.Name===s);d||(d={Id:n++,Name:s,Services:new Set},a.Categories.push(d));var l=null===(g=t.attributes.find(e=>e.name===v.NameEnum.Region))||void 0===g?void 0:g.value;if(!l)return o.debug("Skipped Null Region.",t);var S=a.Regions.find(e=>e.Name===l);S||(S={Id:n++,Name:l,Services:new Set},a.Regions.push(S));var f=t.name,m=a.Services.find(e=>e.Name===f);if(!m){var E,g,p,y,h=null===(y=t.attributes.find(e=>e.name===v.NameEnum.Type))||void 0===y?void 0:y.value;if(!h)return o.debug("Skipped Null Abbr.",t);m={Id:n++,Name:f,Abbr:h,Category:d,Regions:new Set([S])},a.Services.push(m);}m.Regions.add(S),S.Services.add(m),d.Services.add(m);var b=a.RegionService.find(e=>e.Region===S&&e.Service===m);if(b||(b={Region:S,Service:m,Events:new Set},a.RegionService.push(b)),null===(p=t.incidents)||void 0===p?void 0:p.length){var R=!0,w=!1,C=void 0;try{for(var I,N=t.incidents[Symbol.iterator]();!(R=(I=N.next()).done);R=!0)!function(){var t=I.value,s=a.Events.find(e=>e.Id===t.id);if(s)s.RegionServices.add(b);else{var d=(()=>{switch(t.impact){case 0:return u.EventType.Maintenance;case 1:return u.EventType.MinorIssue;case 2:return u.EventType.MajorIssue;default:return u.EventType.Outage;}})();if(s={Id:t.id,Title:t.text,Start:e.f(r)(t.start_date).toDate(),Type:d,Status:d===u.EventType.Maintenance?u.EventStatus.Scheduled:u.EventStatus.Investigating,Histories:new Set,RegionServices:new Set([b])},t.end_date&&(s.End=e.f(r)(t.end_date).toDate()),null===(f=t.updates)||void 0===f?void 0:f.length){var l=!0,S=!1,c=void 0;try{for(var f,m,E,g=t.updates[Symbol.iterator]();!(l=(E=g.next()).done);l=!0)!function(){var a=E.value,i=(()=>{switch(a.status){case v.StatusEnum.System:return t.end_date?u.EventStatus.Cancelled:u.EventStatus.Investigating;case v.StatusEnum.Analyzing:return u.EventStatus.Investigating;case v.StatusEnum.Reopened:s.End=void 0;case v.StatusEnum.Fixing:return u.EventStatus.Fixing;case v.StatusEnum.Observing:return u.EventStatus.Monitoring;case v.StatusEnum.Resolved:case v.StatusEnum.Changed:return u.EventStatus.Resolved;case v.StatusEnum.Description:case v.StatusEnum.Scheduled:case v.StatusEnum.Modified:return u.EventStatus.Scheduled;case v.StatusEnum.InProgress:return u.EventStatus.Performing;case v.StatusEnum.Completed:return u.EventStatus.Completed;}})();if(!i)return o.debug("Skipped Unknown Status.",a,t);var d={Id:n++,Message:a.text,Created:e.f(r)(a.timestamp).toDate(),Status:i,Event:s};s.Histories.add(d);}();}catch(e){S=!0,c=e;}finally{try{l||null==g.return||g.return();}finally{if(S)throw c;}}var p=null===(m=i.orderBy(Array.from(s.Histories),e=>e.Created,"desc").at(0))||void 0===m?void 0:m.Status;p&&(s.Status=p);}s.End&&s.Type===u.EventType.Maintenance&&s.Status!==u.EventStatus.Cancelled&&e.f(r)(s.End).isBefore(e.f(r)())&&(s.Status=u.EventStatus.Completed),a.Events.push(s);}b.Events.add(s);}();}catch(e){w=!0,C=e;}finally{try{R||null==N.return||N.return();}finally{if(w)throw C;}}}}();}catch(e){l=!0,S=e;}finally{try{s||null==f.return||f.return();}finally{if(l)throw S;}}return o.info("Status data loaded.",a),a;}},"442900fb":async function e(e,l,s,t){let[c,i,a,n]=await Promise.all([s("036dd75c"),s("8c585220"),s("a198c3de"),s("24987bf2")]);function o(e){var l=e.Title,s=e.Topic,t=a.useStatus().DB.Regions;return c.jsxs("section",{className:"flex flex-col",id:"RegionSelector",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("label",{className:"text-3xl font-medium text-slate-800",children:l}),c.jsx(i.ScaleTabNav,{children:t.map((e,l)=>c.jsx(n.TabItem,{Item:e,Topic:s},l))})]}),c.jsx(i.ScaleDivider,{})]});}e._m(l),e.o(l,"RegionSelector",()=>o);},"506278c7":async function e(e,a,r,t){let[c,,n,s,i,d,l,o,m,]=await Promise.all([r("f38b32a3"),r("e128c079"),r("036dd75c"),r("630730d4"),r("8effc9a2"),r("da0b8b76"),r("791ca373"),r("bd30708b"),r("a198c3de"),r("fc5b6de8")]);function u(e){var a=e.Category,r=e.Topic,t=m.useStatus().DB,u=c._(d.useState(t.Regions[0]),2),b=u[0],x=u[1],g=s.useCreation(()=>l.Station.get(r),[]);d.useEffect(()=>{var e=g.subscribe(x);return()=>e.unsubscribe();},[]);var h=c._(d.useMemo(()=>{var e=i.chain(t.RegionService).filter(e=>e.Region.Id===b.Id).filter(e=>e.Service.Category.Id===a.Id).orderBy(e=>e.Service.Name).value(),r=i.chain(e).map(e=>o.Calc6Months(e)).value();return[e,r];},[t,b,a]),2),v=h[0],f=h[1];function N(e){var a=e>=99.95?"emerald":e>=99?"amber":"rose";return"bg-".concat(a,"-100 hover:bg-").concat(a,"-200");}return n.jsxs(n.Fragment,{children:[n.jsxs("tr",{children:[n.jsx("td",{rowSpan:v.length,className:"text-lg",children:a.Name}),n.jsx("td",{className:"text-lg",children:v[0].Service.Name}),f[0].map((e,a)=>n.jsx("td",{className:"border-l text-center ".concat(N(e)),children:e.toFixed(2)},a))]}),v.slice(1).map((e,a)=>n.jsxs("tr",{children:[n.jsx("td",{className:"text-lg",children:e.Service.Name}),f[a+1].map((e,a)=>n.jsx("td",{className:"border-l text-center ".concat(N(e)),children:e.toFixed(2)},a))]},a))]});}e._m(a),e.o(a,"CategoryGroup",()=>u);},"5ec5fb5a":function e(e,t,r,o){e._m(t),e.o(t,"OIDCProvider",()=>l);var i=r("036dd75c"),a=r("630730d4"),c=r("ccd7586e");r("da0b8b76");var s=r("725e471d"),d=r("791ca373"),n=r("fdad05c1"),u=r("793f703f");function l(e){var t=e.children,r=u.useRouter().Rep;return i.jsxs(s.AuthProvider,{client_id:"status-dashboard",scope:"openid profile email",userStore:new c.WebStorageStateStore({store:window.localStorage}),onSigninCallback:()=>{r("/"),location.reload();},authority:"https://keycloak.eco.tsi-dev.otc-service.com/realms/eco",post_logout_redirect_uri:"https://sd3.eco.tsi-dev.otc-service.com/Logout",redirect_uri:"https://sd3.eco.tsi-dev.otc-service.com/Login",children:[i.jsx(h,{}),t]});}var v=new n.Logger("Auth");function h(){var e=d.Common.AuthSlot=s.useAuth(),t=u.useRouter(),r=t.Paths,o=t.Rep;return a.useMount(()=>{if("Logout"===r.at(0))return e.removeUser(),o("/");s.hasAuthParams()||e.isAuthenticated||e.activeNavigator||e.isLoading||e.signinRedirect();}),a.useUpdateEffect(()=>{e.error&&v.warn(e.error);},[e.error]),null;}},"619a6aa0":function e(e,r,a,n){e._m(r),e.o(r,"EventAffected",()=>l);var t=a("f38b32a3");a("3e63fd8f"),a("2d8dcc70"),a("65ea514d"),a("f1a0b902"),a("51ca05ff"),a("582a891d");var c=a("036dd75c"),d=a("8c585220"),i=a("da0b8b76");a("fc5b6de8");var f=a("10a4c0c8");function l(e){var r=e.Event,a=i.useMemo(()=>{var e=Array.from(r.RegionServices),a=new Map;if(r.Type===f.EventType.Maintenance){var n=!0,t=!1,c=void 0;try{for(var d,i=e[Symbol.iterator]();!(n=(d=i.next()).done);n=!0){var l=d.value,s=l.Service.Name,o=l.Region.Name;a.has(s)?a.get(s).add(o):a.set(s,new Set([o]));}}catch(e){t=!0,c=e;}finally{try{n||null==i.return||i.return();}finally{if(t)throw c;}}}return Array.from(a.entries());},[r]);return c.jsx(d.ScaleTable,{children:c.jsxs("table",{children:[c.jsx("thead",{children:c.jsxs("tr",{children:[c.jsx("th",{children:"Service Name"}),c.jsx("th",{children:"Affected Regions"})]})}),c.jsx("tbody",{children:a.map((e,r)=>{var a=t._(e,2),n=a[0],d=a[1];return c.jsxs("tr",{children:[c.jsx("td",{children:n}),c.jsx("td",{children:Array.from(d).join(", ")})]},r);})})]})});}},"63902083":function e(e,t,a,n){e._m(t),e.o(t,"EventItem",()=>d),a("3e63fd8f");var s=a("036dd75c"),r=a("8c585220"),l=e.i(a("a29c3460")),c=a("8effc9a2"),i=a("da0b8b76");a("fc5b6de8");var o=a("10a4c0c8"),m=a("a2cf9b72");function d(t){var a,n=t.Prev,d=t.Curr,f=i.useMemo(()=>!n||n.Start.getMonth()!=d.Start.getMonth(),[n]),u=i.useRef(null);i.useEffect(()=>{if(u.current){var e=u.current.previousElementSibling;e&&e instanceof HTMLElement&&(e.style.paddingBottom="0",e.classList.add("mb-6"));}},[u.current]);var g=i.useMemo(()=>c.chain(Array.from(d.RegionServices)).map(e=>e.Service).uniqBy(e=>e.Id).value(),[d.RegionServices]),b=g.map(e=>({Name:e.Name,Abbr:e.Abbr.toUpperCase()})),v=b.length>3?b.slice(0,3).map(e=>e.Abbr).join(", ")+" (+".concat(b.length-3,")"):b.map(e=>e.Abbr).join(", "),h=i.useMemo(()=>c.chain(Array.from(d.RegionServices)).map(e=>e.Region.Name).uniq().value(),[d.RegionServices]),x=h.length>2?h.slice(0,2).join(", ")+" (+".concat(h.length-2,")"):h.join(", ");switch(d.Status){case o.EventStatus.Investigating:case o.EventStatus.Fixing:case o.EventStatus.Monitoring:a="yellow";break;case o.EventStatus.Scheduled:case o.EventStatus.Performing:a="violet";break;case o.EventStatus.Resolved:case o.EventStatus.Completed:a="green";break;default:a="standard";}return s.jsxs(s.Fragment,{children:[f&&s.jsx("label",{ref:u,className:"mb-6 text-2xl font-medium text-slate-800",children:e.f(l)(d.Start).format("MMMM YYYY")}),s.jsxs("li",{className:"border-l-2 relative flex flex-col gap-y-2.5 border-slate-300 pb-10 pl-7 last:pb-0",children:[s.jsxs("a",{className:"w-fit text-2xl font-medium hover:underline",href:"/Event/".concat(d.Id),children:[v," ",x," ",d.Type]}),s.jsxs("div",{className:"flex gap-x-2.5",children:[s.jsx(r.ScaleTag,{color:a,children:d.Status}),g.slice(0,3).map(e=>s.jsx(r.ScaleTag,{children:e.Name},e.Abbr)),g.length>3&&s.jsxs(r.ScaleTag,{children:["+",g.length-3]})]}),s.jsxs("label",{className:"text-lg font-bold text-slate-500",children:[e.f(l)(d.Start).format("DD MMM, HH:mm"),d.End&&s.jsxs(s.Fragment,{children:[" - ",e.f(l)(d.End).format("DD MMM, HH:mm [UTC]")]})]}),s.jsx(m.Indicator,{Class:"absolute -left-3.5 top-0.5 bg-zinc-50",Type:d.Type})]})]});}},"639fcbf9":async function e(e,a,r,s){let[t,,c,l,o,i,n,b,m,d,h,x]=await Promise.all([r("f38b32a3"),r("3e63fd8f"),r("036dd75c"),r("8c585220"),r("630730d4"),r("a29c3460"),r("8effc9a2"),r("da0b8b76"),r("32966282"),r("791ca373"),r("a198c3de"),r("506278c7")]);e._m(a),e.o(a,"AvailaMatrix",()=>u);var p=e.i(i);function u(){var a=h.useStatus().DB,r=t._(b.useState(a.Regions[0]),2),s=r[0],i=r[1],u="Availability",g=o.useCreation(()=>d.Station.get(u,()=>{var e=a.Regions[0];return new m.BehaviorSubject(e);}),[]);return b.useEffect(()=>{var e=g.subscribe(i);return()=>e.unsubscribe();},[]),c.jsxs(l.ScaleTable,{className:"relative",children:[c.jsxs("table",{children:[c.jsxs("thead",{className:"sticky top-16",children:[c.jsxs("tr",{children:[c.jsx("th",{className:"!text-lg",rowSpan:2,scope:"col",children:"Category"}),c.jsx("th",{className:"!text-lg",rowSpan:2,scope:"col",children:"Service"}),c.jsx("th",{className:"!py-2 !text-center !text-lg",colSpan:6,scope:"colgroup",children:"Availability, %"})]}),c.jsx("tr",{children:Array.from({length:6}).map((a,r)=>{var s=e.f(p)().subtract(5-r,"month"),t=s.format("MMMM"),l=s.year();return c.jsxs("th",{className:"!pb-1 !text-lg !text-center w-1/12",scope:"col",children:[l," ",c.jsx("br",{})," ",t]},r);})})]}),c.jsx("tbody",{children:n.chain(Array.from(s.Services)).map(e=>e.Category).uniqBy(e=>e.Id).orderBy(e=>e.Name).map((e,a)=>c.jsx(x.CategoryGroup,{Category:e,Topic:u},a)).value()})]}),c.jsxs("template",{children:[c.jsx("p",{className:"bg-emerald-100 hover:bg-emerald-200"}),c.jsx("p",{className:"bg-amber-100 hover:bg-amber-200"}),c.jsx("p",{className:"bg-rose-100 hover:bg-rose-200"})]})]});}},"70dc5a36":function e(e,s,d,r){e._m(s),e.o(s,"EventLog",()=>n),d("3e63fd8f");var a=d("036dd75c"),t=d("8c585220"),c=e.i(d("a29c3460")),l=d("8effc9a2");function n(s){var d=s.Event,r=l.chain(Array.from(d.Histories)).orderBy(e=>e.Created,"desc").value();return a.jsx(t.ScaleTable,{class:"rounded-md bg-white p-6 shadow-md",children:a.jsxs("table",{children:[a.jsx("thead",{children:a.jsxs("tr",{children:[a.jsx("th",{children:"Updates"}),a.jsx("th",{children:"Information"})]})}),a.jsx("tbody",{children:r.map((s,d)=>a.jsxs("tr",{children:[a.jsxs("td",{className:"flex flex-col",children:[a.jsx("label",{className:"font-medium",children:s.Status}),a.jsx("label",{children:e.f(c)(s.Created).format("YYYY-MM-DD HH:mm [UTC]")})]}),a.jsx("td",{className:"text-pretty",children:s.Message})]},d))})]})});}d("fc5b6de8");},"72aa5c4a":async function e(e,s,l,t){let[a,i,n,c,r,d,x,m,o]=await Promise.all([l("f38b32a3"),l("036dd75c"),l("b0da6a28"),l("630730d4"),l("8effc9a2"),l("da0b8b76"),l("c43b3a33"),l("63902083"),l("a198c3de")]);function h(){var e=o.useStatus().DB,s=d.useRef(null),l=a._(c.useInViewport(s),1)[0],t=a._(c.useBoolean(!0),1)[0];return i.jsxs(i.Fragment,{children:[i.jsx(x.Helmet,{children:i.jsx("title",{children:"Timeline - OTC Status Dashboard"})}),i.jsx("section",{className:"flex flex-col gap-y-2",children:i.jsx("h3",{className:"text-3xl font-medium text-slate-800",children:"OTC Event Timeline"})}),i.jsx("ol",{className:"flex flex-col",children:r.chain(e.Events).orderBy(e=>e.Start,"desc").map((e,s,l)=>[l[s-1],e]).map(e=>{var s=a._(e,2),l=s[0],t=s[1];return i.jsx(m.EventItem,{Prev:l,Curr:t},t.Id);}).value()}),i.jsx(n.FluentProvider,{theme:n.webLightTheme,className:"-ml-3",ref:s,children:i.jsxs(n.Skeleton,{className:"gap-x-5",style:{display:l&&!t?"flex":"none"},children:[i.jsx(n.SkeletonItem,{size:24,shape:"circle"}),i.jsxs("div",{className:"flex flex-col gap-y-3",children:[i.jsx(n.SkeletonItem,{size:32,style:{width:"25vw"}}),i.jsxs("div",{className:"flex gap-x-2.5",children:[i.jsx(n.SkeletonItem,{size:28,style:{width:"5vw"}}),i.jsx(n.SkeletonItem,{size:28,style:{width:"10vw"}})]}),i.jsx(n.SkeletonItem,{size:28,style:{width:"25vw"}})]})]})})]});}e._m(s),e.o(s,"History",()=>h);},"791ca373":function t(t,e,s,a){t._m(e),t.o(e,"Dic",()=>i),t.o(e,"Station",()=>o),t.o(e,"Common",()=>n);var c=s("fc664c3a");s("2d8dcc70"),s("65ea514d"),s("f1a0b902"),s("247036ec");var r=s("ccd7586e");s("725e471d");var i={Name:"SD3"};class o{static get(t,e){if(!this.subjects.has(t)){if(e)this.subjects.set(t,e());else throw Error("Subject '".concat(t,"' not found."));}return this.subjects.get(t);}static delete(t){this.subjects.delete(t);}}c._(o,"subjects",new Map);class n{static get LocalUser(){var t=localStorage.getItem("oidc.user:https://keycloak.eco.tsi-dev.otc-service.com/realms/eco:status-dashboard");return t?r.User.fromStorageString(t):null;}static get Auth(){return new Promise(t=>{if(this.AuthSlot)return t(this.AuthSlot);var e=setInterval(()=>{this.AuthSlot&&(clearInterval(e),t(this.AuthSlot));},100);});}static async AccessToken(){var t=await this.Auth,e=t.isAuthenticated,s=t.user,a=t.signinSilent;if(e||(s=await a()),s)return s.access_token;}}c._(n,"AuthSlot",void 0);},"793f703f":function t(t,a,e,n){t._m(a),t.o(a,"useRouter",()=>h),t.o(a,"BrowserRouter",()=>f);var r=e("53d8b9b1"),o=e("f38b32a3");e("37ae98ec"),e("f1fabaeb"),e("29f90b2a"),e("2ffbb52c"),e("a5f716e6"),e("65ea514d"),e("f1a0b902"),e("9b65a17c"),e("057993e1");var c=e("036dd75c"),i=e("630730d4"),l=e("da0b8b76");function u(t){var a=t.filter(t=>t).map(t=>t.toString().replace(/^\/+/,"")).join("/");return"/".concat(a);}var s=l.createContext({});function h(){return l.useContext(s);}function f(t){var a=t.children,e=o._(l.useState(()=>({Paths:location.pathname.split("/").filter(t=>t),Search:new URLSearchParams(location.search),Put:f,Nav:function(){for(var t=arguments.length,a=Array(t),e=0;e{var t=a.length?u(a):location.pathname;history.pushState(null,"",t),p(t);},100);}})),2),n=e[0],h=e[1];function f(t){history.replaceState(null,"","".concat(location.pathname).concat(t.size?"?":"").concat(t.toString())),n.Search=new URLSearchParams(t),h(r._({},n));}function p(t){n.Paths=t.split("/").filter(t=>t),n.Search=new URLSearchParams(location.search),h(r._({},n));}function v(t){history.pushState(null,"",t),p(t);}function d(t){history.replaceState(null,"",t),p(t);}return i.useMount(()=>{"/"===location.pathname&&location.search.startsWith("?/")&&d(location.search.substring(2)),addEventListener("click",t=>{var a,e=null===(a=t.target)||void 0===a?void 0:a.closest("a");if(e){if(e.origin!==location.origin){e.target="_blank";return;}t.preventDefault(),v(e.pathname);}}),addEventListener("popstate",t=>{t.preventDefault(),p(location.pathname);});}),c.jsx(s.Provider,{value:n,children:a});}},"9b8b5f60":async function e(e,t,a,s){let[c,,,,,n,l,i,r,d,f,,o,v]=await Promise.all([a("f38b32a3"),a("65ea514d"),a("f1a0b902"),a("f2ff81c5"),a("35b9195c"),a("036dd75c"),a("b0da6a28"),a("a29c3460"),a("8effc9a2"),a("da0b8b76"),a("a198c3de"),a("fc5b6de8"),a("10a4c0c8"),a("a2cf9b72")]);e._m(t),e.o(t,"ServiceItem",()=>m);var u=e.i(i);function m(t){var a=t.RegionService,s=f.useStatus().DB,i=c._(d.useState(o.EventType.Operational),2),m=i[0],p=i[1],x=c._(d.useState(!1),2),h=x[0],y=x[1],E=c._(d.useState(),2),S=E[0],b=E[1];return d.useEffect(()=>{var t=r.chain([...a.Events]).filter(e=>(e.Type===o.EventType.Maintenance||!e.End)&&![o.EventStatus.Completed,o.EventStatus.Resolved,o.EventStatus.Cancelled].includes(e.Status)).orderBy(e=>e.Type,"desc").head().value();t?(p(t.Type),y(e.f(u)(t.Start).isAfter(e.f(u)())),b(t.Id)):(p(o.EventType.Operational),y(!1),b(void 0));},[s,a]),n.jsxs("li",{className:"flex items-center py-2",children:[h?n.jsx("a",{className:"flex h-6",href:"/Event/".concat(S),children:n.jsxs(l.FluentProvider,{className:"with-dot",theme:l.webLightTheme,children:[n.jsx(v.Indicator,{Type:o.EventType.Operational}),n.jsx(l.CounterBadge,{className:"blue-dot",dot:!0})]})}):S?n.jsx("a",{className:"flex items-center",href:"/Event/".concat(S),children:n.jsx(v.Indicator,{Type:m})}):n.jsx(v.Indicator,{Type:m}),n.jsx("label",{className:"ml-2.5 text-xl font-medium text-slate-700",children:a.Service.Name})]});}},"9f0b6ac9":async function e(e,a,s,n){let[i,l,t,r,c,o,x,u,d,f,g]=await Promise.all([s("036dd75c"),s("8c585220"),s("da0b8b76"),s("1e25dce2"),s("0d5d3bf9"),s("793f703f"),s("e2c85664"),s("06e54471"),s("f10ba0fa"),s("72aa5c4a"),s("a0e9c023")]);function j(){var e=o.useRouter().Paths.at(0),a=t.useMemo(()=>{switch(e){case"Login":return i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Login Redirecting..."});case"Reload":return i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Reloading..."});case"Event":return i.jsx(d.Event,{});case"History":return i.jsx(f.History,{});case"Availability":return i.jsx(u.Availability,{});case"":case void 0:return i.jsx(g.Home,{});default:return i.jsx(x.NotFound,{});}},[e]);return i.jsxs("div",{className:"absolute flex min-h-full w-full min-w-96 flex-col bg-zinc-50",children:[i.jsx(c.TopNavBar,{}),i.jsx("main",{className:"mx-auto flex w-full max-w-screen-xl flex-col gap-y-8 px-3 pt-8",children:i.jsx(t.Suspense,{fallback:i.jsx(l.ScaleLoadingSpinner,{size:"large",text:"Loading..."}),children:a})}),i.jsx(r.PageFooter,{})]});}e._m(a),e.o(a,"Layout",()=>j);},"a0e9c023":async function e(e,a,s,t){let[n,,,,,,,i,r,c,l,d,o,u,g,f,v,m,x,p,b,j]=await Promise.all([s("f38b32a3"),s("f2ff81c5"),s("35b9195c"),s("7d9fd692"),s("18177523"),s("65ea514d"),s("f1a0b902"),s("036dd75c"),s("8c585220"),s("630730d4"),s("8effc9a2"),s("da0b8b76"),s("c43b3a33"),s("32966282"),s("10a4c0c8"),s("a3a19a02"),s("a2cf9b72"),s("442900fb"),s("daf32047"),s("791ca373"),s("fdad05c1"),s("a198c3de")]);e._m(a),e.o(a,"Home",()=>S);var h=new b.Logger("Home");function S(){var e=j.useStatus().DB,a=n._(d.useState(e.Regions[0]),2),s=a[0],t=a[1],b="HomeRegion",S=c.useCreation(()=>p.Station.get(b,()=>{var a=e.Regions[0];return new u.BehaviorSubject(a);}),[]);d.useEffect(()=>{var e=S.subscribe(t);return()=>e.unsubscribe();},[]);var y=d.useMemo(()=>l.chain(e.RegionService).filter(e=>e.Region.Id===s.Id).map(e=>e.Service.Category).uniq().orderBy(e=>e.Name).value(),[e,s]),w=d.useMemo(()=>{var a=l.chain(e.Events).filter(e=>!e.End).filter(e=>e.Type!==g.EventType.Maintenance).filter(e=>![g.EventStatus.Completed,g.EventStatus.Resolved,g.EventStatus.Cancelled].includes(e.Status)).flatMap(e=>[...e.RegionServices]).map(e=>e.Service).uniqBy(e=>e.Id).value();return h.debug(a),a.length;},[e]);return i.jsxs(i.Fragment,{children:[i.jsx(o.Helmet,{children:i.jsx("title",{children:"OTC Status Dashboard"})}),i.jsx(r.ScaleNotification,{heading:w>0?"".concat(w," components have issue, but don't worry, we are working on it."):"All Systems Operational",opened:!0,variant:w>0?"warning":"success"}),i.jsx(f.EventGrid,{}),i.jsx(m.RegionSelector,{Title:"OTC Current Status",Topic:b}),i.jsx("section",{className:"grid-cols-1 grid gap-x-7 gap-y-8 md:grid-cols-2 lg:grid-cols-3",children:y.map((e,a)=>i.jsx(x.StatusCard,{Category:e},a))}),i.jsxs("section",{className:"flex flex-wrap justify-between gap-y-2 py-2",children:[i.jsxs("div",{className:"flex items-center gap-x-2",children:[i.jsx("div",{className:"Blink"}),i.jsx("label",{children:"Auto Refresh Enabled"})]}),i.jsx("legend",{className:"flex flex-wrap items-center gap-x-6 gap-y-2.5",children:Object.values(g.EventType).map((e,a)=>i.jsxs("div",{className:"flex gap-x-2",children:[i.jsx(v.Indicator,{Type:e}),i.jsx("label",{children:e})]},a))})]})]});}},"a198c3de":async function e(e,a,t,n){let[r,o,,c,s,i,u,d,f,,,v]=await Promise.all([t("53d8b9b1"),t("f38b32a3"),t("247036ec"),t("036dd75c"),t("630730d4"),t("5f940e28"),t("da0b8b76"),t("791ca373"),t("fdad05c1"),t("15ac19ff"),t("fc5b6de8"),t("41aa22d0")]);function l(){return{Services:[],Categories:[],Regions:[],Events:[],Histories:[],RegionService:[]};}e._m(a),e.o(a,"EmptyDB",()=>l),e.o(a,"DB",()=>g),e.o(a,"useStatus",()=>y),e.o(a,"StatusContext",()=>D);var g=l(),w=u.createContext({}),S="Status";function b(){return i.openDB(d.Dic.Name,1,{upgrade(e){e.createObjectStore(S);}});}async function m(){var e=await b();await e.put(S,g,S),e.close();}async function h(){var e=await b(),a=await e.get(S,S);a&&(g=a),e.close();}await h();var p=new f.Logger("Service","Status");function y(){var e=u.useContext(w);if(g.Regions.length<1)throw new Promise(a=>{var t=setInterval(()=>{g.Regions.length>0&&(clearInterval(t),a(e));},100);});return e;}function D(e){var a=e.children,t=o._(u.useState(g),2),n=t[0],i=t[1];function d(e){i(g=r._({},e)),m();}return s.useRequest(async()=>{p.info("Loading status data...");var e=await fetch("/mock.json"),a=await e.json();return p.debug("Status data loaded.",a),a;},{cacheKey:p.namespace,onSuccess:e=>d(v.Transformer(e))}),c.jsx(w.Provider,{value:{DB:n,Update:d},children:a});}},"a2cf9b72":function e(e,n,c,a){e._m(n),e.o(n,"Indicator",()=>i);var t=c("53d8b9b1"),r=c("da0b8b76"),s=c("10a4c0c8");function i(e){var n=e.Type,c=e.Size,a=e.Class,i="var(--telekom-color-",o="functional-",u="".concat(i,"text-and-icon-").concat(o),l=r.useMemo(()=>{switch(n){case s.EventType.Maintenance:return"service-maintanance";case s.EventType.MinorIssue:return"action-minus-circle";case s.EventType.MajorIssue:return"alert-warning";case s.EventType.Outage:return"action-circle-close";default:return"action-success";}},[n]),v=r.useMemo(()=>{switch(n){case s.EventType.Maintenance:return"".concat(u,"informational)");case s.EventType.MinorIssue:return"".concat(i).concat(o,"warning-standard)");case s.EventType.MajorIssue:return"".concat(u,"warning)");case s.EventType.Outage:return"".concat(u,"danger)");default:return"".concat(u,"success)");}},[n]);return r.createElement("".concat("scale-icon-").concat(l),t._({"accessibility-title":n,fill:v,class:a},c?{size:c}:{}));}},"a3a19a02":async function e(e,t,a,n){let[r,c,,,,o,s,l,i,d,u,v,y]=await Promise.all([a("53d8b9b1"),a("efec1ee8"),a("3e63fd8f"),a("f2ff81c5"),a("35b9195c"),a("036dd75c"),a("8c585220"),a("630730d4"),a("a29c3460"),a("8effc9a2"),a("da0b8b76"),a("a198c3de"),a("10a4c0c8")]);e._m(t),e.o(t,"EventGrid",()=>b);var f=e.i(i);function b(){var t=v.useStatus().DB,a=u.useRef(null),n=l.useCreation(()=>new MutationObserver(e=>{e.forEach(e=>{"childList"===e.type&&e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE&&e.querySelectorAll(".tbody__cell").forEach(e=>{e.querySelector(".tbody__actions")&&(e.style.paddingTop="0",e.style.paddingBottom="0");});});});}),[]);return u.useEffect(()=>{if(a.current){var o=a.current;n.disconnect(),n.observe(o.shadowRoot,{childList:!0,subtree:!0}),o.fields=[{type:"number",label:"ID"},{type:"tags",label:"Type"},{type:"date",label:"Start"},{type:"text",label:"Status / Plan"},{type:"text",label:"Region",sortable:!0},{type:"text",label:"Service",sortable:!0,stretchWeight:.7},{type:"actions",label:"Detail"}];var s=d.chain(t.Events).map(e=>{var t=Array.from(e.RegionServices),a=d.chain(t).map(e=>e.Service.Name).uniq().value(),n=d.chain(t).map(e=>e.Region.Name).uniq().value();return c._(r._({},e),{Services:a,Regions:n,Status:e.Status});}).filter(e=>(e.Type===y.EventType.Maintenance||!e.End)&&![y.EventStatus.Completed,y.EventStatus.Resolved,y.EventStatus.Cancelled].includes(e.Status)).orderBy(e=>e.Start,"desc").map(t=>{var a;switch(t.Type){case y.EventType.MinorIssue:a={content:"Minor",color:"yellow"};break;case y.EventType.MajorIssue:a={content:"Major",color:"orange"};break;case y.EventType.Outage:a={content:"Outage",color:"red"};break;default:a={content:"Maintain",color:"cyan"};}return[t.Id,[a],e.f(f)(t.Start).format("YYYY-MM-DD HH:mm [UTC]"),t.End?e.f(f)(t.End).format("MM-DD HH:mm"):t.Status,t.Regions.length>1?"".concat(t.Regions[0]," +").concat(t.Regions.length-1):t.Regions[0],t.Services.length>1?"".concat(t.Services[0]," +").concat(t.Services.length-1):t.Services[0],[{label:"↗",variant:"secondary",href:"/Event/".concat(t.Id)}]];}).value();o.rows=s;}},[a.current,t]),o.jsx(s.ScaleDataGrid,{className:"rounded-lg bg-white shadow-md",pageSize:4,heading:"Current Events",hideBorder:!0,ref:a});}},"bd30708b":function t(t,e,f,r){t._m(e),t.o(e,"Calc6Months",()=>c),f("4ceb87b9"),f("3e63fd8f"),f("54855603");var n=t.i(f("a29c3460")),a=f("8effc9a2"),i=f("10a4c0c8");function c(e){for(var f=t.f(n)(),r=f.subtract(6,"month"),c=a.chain(Array.from(e.Events)).filter(e=>t.f(n)(e.Start).isAfter(r)&&e.Type!==i.EventType.Maintenance).value(),o=[],u=0;u<6;u++)!function(e){var r=t.f(n)().startOf("month").subtract(e,"month"),a=r.endOf("month"),i=c.filter(e=>{var i;return t.f(n)(e.Start).isBefore(a)&&t.f(n)(null!==(i=e.End)&&void 0!==i?i:f).isAfter(r);}).reduce((e,f)=>{var i=t.f(n)(f.Start).isBefore(r)?r:t.f(n)(f.Start);return e+(f.End&&t.f(n)(f.End).isBefore(a)?t.f(n)(f.End):a).diff(i,"minute");},0),u=a.diff(r,"minute");o.push(Math.max((u-i)/u*100,0));}(u);return o.reverse(),o;}f("fc5b6de8");},"daf32047":async function e(e,a,t,i){let[s,r,c,d,n,o,l,u,,m]=await Promise.all([t("f38b32a3"),t("036dd75c"),t("8c585220"),t("630730d4"),t("8effc9a2"),t("da0b8b76"),t("791ca373"),t("a198c3de"),t("fc5b6de8"),t("9b8b5f60")]);function f(e){var a=e.Category,t=u.useStatus().DB,i=s._(o.useState(t.Regions[0]),2),f=i[0],x=i[1],b=d.useCreation(()=>l.Station.get("HomeRegion"),[]);o.useEffect(()=>{var e=b.subscribe(x);return()=>e.unsubscribe();},[]);var v=o.useMemo(()=>n.chain(t.RegionService).filter(e=>e.Region.Id===f.Id).filter(e=>e.Service.Category.Id===a.Id).orderBy(e=>e.Service.Name).value(),[t,f,a]);return r.jsxs("div",{className:"flex h-fit flex-col rounded-md bg-white px-3.5 py-5 shadow-md",children:[r.jsx("h3",{className:"px-3.5 text-2xl font-medium text-slate-800",children:a.Name}),r.jsx(c.ScaleDivider,{className:"h-auto"}),r.jsx("ul",{className:"px-3.5",children:v.map((e,a)=>r.jsx(m.ServiceItem,{RegionService:e},a))})]});}e._m(a),e.o(a,"StatusCard",()=>f);},"db2400ba":function e(e,t,l,a){e._m(t),e.o(t,"EventCard",()=>i);var s=l("036dd75c"),x=e.i(l("a29c3460"));l("fc5b6de8");var n=l("a2cf9b72"),c=l("10a4c0c8"),d=l("619a6aa0"),m=l("280fd75c");function i(t){var l=t.Event;return s.jsxs("section",{className:"flex flex-col gap-y-4 rounded-md bg-white px-8 py-6 shadow-md",children:[s.jsxs("div",{className:"flex justify-between",children:[s.jsxs("div",{className:"flex items-center gap-x-3",children:[s.jsx(n.Indicator,{Type:l.Type}),s.jsx("h3",{className:"text-2xl font-medium text-slate-800",children:l.Title})]}),s.jsx(m.EventEditor,{Event:l})]}),s.jsxs("div",{className:"flex gap-x-2.5",children:[s.jsxs("div",{className:"flex flex-col gap-y-2",children:[s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Impact Type:"}),s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Current Status:"}),s.jsx("label",{className:"text-xl font-medium text-slate-600",children:"Start At:"}),s.jsxs("label",{className:"text-xl font-medium text-slate-600",children:[l.Type===c.EventType.Maintenance&&l.Status!==c.EventStatus.Completed&&"(Plan)"," End At:"]})]}),s.jsxs("div",{className:"flex flex-col gap-y-2",children:[s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.Type}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.Status}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:e.f(x)(l.Start).format("YYYY-MM-DD HH:mm [UTC]")}),s.jsx("label",{className:"text-xl font-medium text-slate-700",children:l.End?e.f(x)(l.End).format("YYYY-MM-DD HH:mm [UTC]"):"Still Ongoing"})]})]}),s.jsx("div",{className:"flex max-h-60 flex-col overflow-y-auto",children:s.jsx(d.EventAffected,{Event:l})})]});}},"dc6fa42f":function e(e,a,c,r){e._m(a),e.o(a,"NavItem",()=>d);var f=c("53d8b9b1"),t=c("efec1ee8");c("f2ff81c5"),c("35b9195c");var l=c("036dd75c"),n=c("8c585220"),i=c("793f703f");function d(e){var a=e.Href,c=e.Label,r=i.useRouter().Paths.at(0);return l.jsx(n.ScaleTelekomNavItem,t._(f._({"aria-label":c},a.includes(r)?{active:!0}:{}),{children:l.jsx("a",{href:a,children:c})}));}},"e2c85664":function e(e,n,t,o){e._m(n),e.o(n,"NotFound",()=>d);var i=t("036dd75c"),c=t("8c585220"),r=t("c43b3a33"),s=t("793f703f"),a=t("791ca373");function d(){var e=s.useRouter().Rep;return setTimeout(()=>e("/"),3e3),i.jsxs(i.Fragment,{children:[i.jsxs(r.Helmet,{children:[i.jsxs("title",{children:["Redirect - Not Found - ",a.Dic.Name]}),i.jsx("meta",{name:"robots",content:"noindex, nofollow"})]}),i.jsx(c.ScaleLoadingSpinner,{size:"large",text:"404, Redirecting..."})]});}},"ea7f23b6":function e(e,l,i,n){e._m(l),e.o(l,"MobileMenu",()=>a);var t=i("036dd75c"),o=i("8c585220"),c=i("725e471d"),s=i("0e1b3d7c");function a(){var e,l=c.useAuth();return t.jsxs(o.ScaleTelekomNavItem,{hideOnDesktop:!0,children:[t.jsx("button",{children:t.jsx(o.ScaleIconActionMenu,{"accessibility-title":"Menu"})}),t.jsx(o.ScaleTelekomNavFlyout,{children:t.jsx(o.ScaleTelekomMobileFlyoutCanvas,{children:t.jsxs(o.ScaleTelekomMobileMenu,{slot:"mobile-main-nav",children:[t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/History",children:"History"})}),t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/Availability",children:"Availability"})}),t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"https://docs.otc.t-systems.com/status-dashboard/index.html",target:"_black",children:"Docs"})}),t.jsxs(s.Authorized,{children:[t.jsx(o.ScaleTelekomMobileMenuItem,{children:t.jsx("a",{href:"/NewEvent",children:"New Event"})}),t.jsxs(o.ScaleTelekomMobileMenuItem,{"onScale-set-menu-item-active":()=>l.signoutRedirect(),children:["Logout ",null===(e=l.user)||void 0===e?void 0:e.profile.name]})]}),t.jsx(s.NotAuthorized,{children:t.jsx(o.ScaleTelekomMobileMenuItem,{"onScale-set-menu-item-active":()=>l.signinRedirect(),children:"Login"})})]})})})]});}},"f10ba0fa":async function t(t,e,n,a){let[,,s,c,d,r,i,o,u]=await Promise.all([n("91f67c56"),n("37ae98ec"),n("036dd75c"),n("c43b3a33"),n("db2400ba"),n("70dc5a36"),n("793f703f"),n("a198c3de"),n("e2c85664")]);function l(){var t=o.useStatus().DB,e=parseInt(i.useRouter().Paths.at(1)),n=t.Events.find(t=>t.Id===e);return isNaN(e)||!n?s.jsx(u.NotFound,{}):s.jsxs(s.Fragment,{children:[s.jsx(c.Helmet,{children:s.jsxs("title",{children:["Event ",e.toString()," - OTC Status Dashboard"]})}),s.jsx(d.EventCard,{Event:n}),s.jsx(r.EventLog,{Event:n})]});}t._m(e),t.o(e,"Event",()=>l);},"fc5b6de8":function c(c,n,a,f){c._m(n),a("10a4c0c8");},"fdad05c1":function o(o,i,s,r){o._m(i),o.o(i,"Logger",()=>e);var n=s("fc664c3a");s("65ea514d"),s("f1a0b902");var t=o.i(s("a29c3460"));class e{With(){for(var o=arguments.length,i=Array(o),s=0;s "),this.error=console.error.bind(this,this.baseColor(101,"error"),"\n "),this.warn=console.warn.bind(this,this.baseColor(103,"warn"),"\n "),this.info=console.info.bind(this,this.baseColor(104,"info"),"\n "),this.debug=console.debug.bind(this,this.baseColor(102,"debug"),"\n "),this.throw=console.log.bind(this,this.baseColor(105,"throw"),"↓ The Following Error is Thrown ↓");}}},}); -//# sourceMappingURL=index_6a10.d4bd1878.js.map \ No newline at end of file diff --git a/index_6a10.d4bd1878.js.map b/index_6a10.d4bd1878.js.map deleted file mode 100644 index a3b6f98..0000000 --- a/index_6a10.d4bd1878.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["/src/Components/Layout/ProfileMenu.tsx","/src/Pages/Availability.tsx","/src/Components/Layout/TopNavBar.tsx","/src/Components/Auth/With.tsx","/src/Components/Event/Enums.ts","/src/Services/Status.Entities.ts","/src/Components/Layout/PageFooter.tsx","/src/Components/Home/TabItem.tsx","/src/Components/Event/EventEditor.tsx","/src/index.tsx","/src/Services/Status.Trans.ts","/src/Components/Home/RegionSelector.tsx","/src/Components/Availability/CategoryGroup.tsx","/src/Components/Auth/index.tsx","/src/Components/Event/EventAffected.tsx","/src/Components/History/EventItem.tsx","/src/Components/Availability/AvailaMatrix.tsx","/src/Components/Event/EventLog.tsx","/src/Pages/History.tsx","/src/Helpers/Entities.ts","/src/Components/Router.tsx","/src/Components/Home/ServiceItem.tsx","/src/Pages/index.tsx","/src/Pages/Home.tsx","/src/Services/Status.tsx","/src/Components/Home/Indicator.ts","/src/Components/Home/EventGrid.tsx","/src/Helpers/SLA.ts","/src/Components/Home/StatusCard.tsx","/src/Components/Event/EventCard.tsx","/src/Components/Layout/NavItem.tsx","/src/Pages/404.tsx","/src/Components/Layout/MobileMenu.tsx","/src/Pages/Event.tsx","/src/Services/Status.Models.ts","/src/Helpers/Logger.ts"],"sourcesContent":["import { ScaleButton, ScaleIconUserFileUser, ScaleMenuFlyout, ScaleMenuFlyoutItem, ScaleMenuFlyoutList, ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useAuth } from \"react-oidc-context\";\nimport { Authorized, NotAuthorized } from \"../Auth/With\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function ProfileMenu() {\n const auth = useAuth();\n\n return (\n \n \n\n \n \n \n\n \n \n \n Hi, {auth.user?.profile.name}\n \n\n auth.signoutRedirect()}>\n Logout\n \n\n \n \n New Event\n \n \n \n\n \n auth.signinRedirect()}>\n Login\n \n \n \n\n \n \n );\n}\n","import { Helmet } from \"react-helmet\";\nimport { AvailaMatrix } from \"~/Components/Availability/AvailaMatrix\";\nimport { RegionSelector } from \"~/Components/Home/RegionSelector\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Availability() {\n return <>\n \n Availability - OTC Status Dashboard\n \n\n \n\n \n ;\n}\n","import { ScaleTelekomHeader, ScaleTelekomNavItem, ScaleTelekomNavList } from \"@telekom/scale-components-react\";\nimport { MobileMenu } from \"./MobileMenu\";\nimport { NavItem } from \"./NavItem\";\nimport { ProfileMenu } from \"./ProfileMenu\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function TopNavBar() {\n return (\n \n\n \n \n\n \n\n \n \n Docs\n \n \n \n\n \n \n \n \n\n \n );\n}\n","import { ReactNode } from \"react\";\nimport { useAuth } from \"react-oidc-context\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Authorized({ children }: { children: ReactNode }): ReactNode {\n const auth = useAuth();\n\n if (auth.isLoading) {\n return \"Authenticating...\";\n }\n\n if (auth.isAuthenticated) {\n return children;\n }\n\n return null;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function NotAuthorized({ children }: { children: ReactNode }): ReactNode {\n const auth = useAuth();\n\n if (auth.isAuthenticated) {\n return null;\n }\n\n return children;\n}\n","/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport enum EventType {\n Operational = \"Operational\",\n Maintenance = \"Maintenance\",\n MinorIssue = \"Minor Issue\",\n MajorIssue = \"Major Issue\",\n Outage = \"Outage\",\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport const enum EventStatus {\n Investigating = \"Investigating\",\n Fixing = \"Fixing\",\n Monitoring = \"Monitoring\",\n Resolved = \"Resolved\",\n\n Scheduled = \"Scheduled\",\n Performing = \"Performing\",\n Completed = \"Completed\",\n Cancelled = \"Cancelled\",\n}\n","/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport interface StatusEntity {\n attributes: AttributeEntity[];\n id: number;\n incidents: IncidentEntity[];\n name: string;\n}\n\ninterface AttributeEntity {\n name: NameEnum;\n value: string;\n}\n\nexport const enum NameEnum {\n Category = \"category\",\n Region = \"region\",\n Type = \"type\",\n}\n\ninterface IncidentEntity {\n end_date: null | string;\n id: number;\n impact: number;\n start_date: string;\n text: string;\n updates: UpdateEntity[];\n}\n\ninterface UpdateEntity {\n status: StatusEnum;\n text: string;\n timestamp: string;\n}\n\nexport const enum StatusEnum {\n Analyzing = \"analyzing\",\n Changed = \"changed\",\n Completed = \"completed\",\n Description = \"description\",\n Fixing = \"fixing\",\n InProgress = \"in progress\",\n Modified = \"modified\",\n Observing = \"observing\",\n Reopened = \"reopened\",\n Resolved = \"resolved\",\n Scheduled = \"scheduled\",\n System = \"SYSTEM\",\n}\n","import { ScaleTelekomFooter, ScaleTelekomFooterContent } from \"@telekom/scale-components-react\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function PageFooter() {\n return (\n \n \n © Deutsche Telekom AG \n \n \n \n );\n}\n","import { ScaleTabHeader, ScaleTabPanel } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Models } from \"~/Services/Status.Models\";\n\ninterface INavWorkaround {\n Item: Models.IRegion;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function TabItem({ Item, Topic }: INavWorkaround) {\n const regionSub = useCreation(\n () => Station.get>(Topic), []);\n\n return <>\n regionSub.next(Item)}\n >\n {Item.Name}\n \n \n ;\n}\n","import { ScaleButton, ScaleIconActionEdit, ScaleModal, ScaleTextField } from \"@telekom/scale-components-react\";\nimport { useBoolean } from \"ahooks\";\nimport { Models } from \"~/Services/Status.Models\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventEditor({ Event }: { Event: Models.IEvent }) {\n const [open, { setTrue, setFalse }] = useBoolean();\n\n return <>\n \n \n Edit\n \n\n \n \n\n \n ;\n}\n","import \"@telekom/scale-components/dist/scale-components/scale-components.css\";\nimport \"./index.css\";\n\nimport { defineCustomElements } from \"@telekom/scale-components/loader\";\nimport { createRoot } from \"react-dom/client\";\nimport { OIDCProvider } from \"./Components/Auth\";\nimport { BrowserRouter } from \"./Components/Router\";\nimport { Layout } from \"./Pages\";\nimport { StatusContext } from \"./Services/Status\";\n\ndefineCustomElements();\n\nconst container = document.querySelector(\"#root\")!;\nconst root = createRoot(container);\n\nroot.render(\n \n \n \n \n \n \n \n);\n","import dayjs from \"dayjs\";\nimport { orderBy } from \"lodash\";\nimport { EventStatus, EventType } from \"~/Components/Event/Enums\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { EmptyDB } from \"./Status\";\nimport { NameEnum, StatusEntity, StatusEnum } from \"./Status.Entities\";\nimport { IStatusContext } from \"./Status.Models\";\n\nconst log = new Logger(\"Service\", \"Status\", \"Transformer\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Transformer(list: StatusEntity[]): IStatusContext {\n let id = 0;\n const db = EmptyDB();\n\n if (!list?.length) {\n log.warn(\"Empty List.\");\n return db;\n }\n\n for (const item of list) {\n if (item.attributes.length < 3) {\n log.debug(\"Skipped Hidden Item.\", item);\n continue;\n }\n\n const targetCate = item.attributes.find(\n (x) => x.name === NameEnum.Category\n )?.value;\n if (!targetCate) {\n log.debug(\"Skipped Null Category.\", item);\n continue;\n }\n\n let dbCate = db.Categories.find((x) => x.Name === targetCate);\n if (!dbCate) {\n dbCate = { Id: id++, Name: targetCate, Services: new Set() };\n db.Categories.push(dbCate);\n }\n\n const targetRegion = item.attributes.find(\n (x) => x.name === NameEnum.Region\n )?.value;\n if (!targetRegion) {\n log.debug(\"Skipped Null Region.\", item);\n continue;\n }\n\n let dbRegion = db.Regions.find((x) => x.Name === targetRegion);\n if (!dbRegion) {\n dbRegion = { Id: id++, Name: targetRegion, Services: new Set() };\n db.Regions.push(dbRegion);\n }\n\n const targetService = item.name;\n\n let dbService = db.Services.find((x) => x.Name === targetService);\n if (!dbService) {\n const abbr = item.attributes.find(\n (x) => x.name === NameEnum.Type\n )?.value;\n if (!abbr) {\n log.debug(\"Skipped Null Abbr.\", item);\n continue;\n }\n\n dbService = {\n Id: id++,\n Name: targetService,\n Abbr: abbr,\n Category: dbCate,\n Regions: new Set([dbRegion]),\n };\n db.Services.push(dbService);\n }\n\n dbService.Regions.add(dbRegion);\n dbRegion.Services.add(dbService);\n dbCate.Services.add(dbService);\n\n let regionService = db.RegionService.find(\n (x) => x.Region === dbRegion && x.Service === dbService\n );\n if (!regionService) {\n regionService = {\n Region: dbRegion,\n Service: dbService,\n Events: new Set(),\n };\n db.RegionService.push(regionService);\n }\n\n if (!item.incidents?.length) {\n continue;\n }\n\n for (const incident of item.incidents) {\n let dbEvent = db.Events.find((x) => x.Id === incident.id);\n\n if (!dbEvent) {\n const type = (() => {\n switch (incident.impact) {\n case 0:\n return EventType.Maintenance;\n case 1:\n return EventType.MinorIssue;\n case 2:\n return EventType.MajorIssue;\n default:\n return EventType.Outage;\n }\n })();\n\n dbEvent = {\n Id: incident.id,\n Title: incident.text,\n Start: dayjs(incident.start_date).toDate(),\n Type: type,\n Status: type === EventType.Maintenance ? EventStatus.Scheduled : EventStatus.Investigating,\n Histories: new Set(),\n RegionServices: new Set([regionService]),\n };\n\n if (incident.end_date) {\n dbEvent.End = dayjs(incident.end_date).toDate();\n }\n\n if (incident.updates?.length) {\n for (const update of incident.updates) {\n const status = (() => {\n switch (update.status) {\n case StatusEnum.System:\n return incident.end_date\n ? EventStatus.Cancelled\n : EventStatus.Investigating;\n\n case StatusEnum.Analyzing:\n return EventStatus.Investigating;\n // @ts-expect-error\n case StatusEnum.Reopened:\n dbEvent.End = undefined;\n case StatusEnum.Fixing:\n return EventStatus.Fixing;\n case StatusEnum.Observing:\n return EventStatus.Monitoring;\n case StatusEnum.Resolved:\n case StatusEnum.Changed:\n return EventStatus.Resolved;\n\n case StatusEnum.Description:\n case StatusEnum.Scheduled:\n case StatusEnum.Modified:\n return EventStatus.Scheduled;\n case StatusEnum.InProgress:\n return EventStatus.Performing;\n case StatusEnum.Completed:\n return EventStatus.Completed;\n\n default:\n break;\n }\n })();\n\n if (!status) {\n log.debug(\"Skipped Unknown Status.\", update, incident);\n continue;\n }\n\n const history = {\n Id: id++,\n Message: update.text,\n Created: dayjs(update.timestamp).toDate(),\n Status: status,\n Event: dbEvent,\n };\n\n dbEvent.Histories.add(history);\n }\n\n const status = orderBy(Array.from(dbEvent.Histories), x => x.Created, \"desc\").at(0)?.Status;\n if (status) {\n dbEvent.Status = status;\n }\n }\n\n if (dbEvent.End &&\n dbEvent.Type === EventType.Maintenance &&\n dbEvent.Status !== EventStatus.Cancelled &&\n dayjs(dbEvent.End).isBefore(dayjs())) {\n dbEvent.Status = EventStatus.Completed;\n }\n\n db.Events.push(dbEvent);\n } else {\n dbEvent.RegionServices.add(regionService);\n }\n\n regionService.Events.add(dbEvent);\n }\n }\n\n log.info(\"Status data loaded.\", db);\n return db;\n}\n","import { ScaleDivider, ScaleTabNav } from \"@telekom/scale-components-react\";\nimport { useStatus } from \"~/Services/Status\";\nimport \"./RegionSelector.css\";\nimport { TabItem } from \"./TabItem\";\n\ninterface IRegionSelector {\n Title: string;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function RegionSelector({ Title, Topic }: IRegionSelector) {\n const { DB: { Regions } } = useStatus();\n\n return (\n
    \n
    \n \n\n \n {Regions.map((item, i) =>\n )}\n \n
    \n\n \n
    \n );\n}\n","import { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Calc6Months } from \"~/Helpers/SLA\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\n\ninterface ICategoryGroup {\n Category: Models.ICategory;\n Topic: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function CategoryGroup({ Category, Topic }: ICategoryGroup) {\n const { DB } = useStatus();\n\n const [region, setRegion] = useState(DB.Regions[0]);\n const regionSub = useCreation(\n () => Station.get>(Topic), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const [services, slas] = useMemo(() => {\n const s = chain(DB.RegionService)\n .filter(x => x.Region.Id === region.Id)\n .filter(x => x.Service.Category.Id === Category.Id)\n .orderBy(x => x.Service.Name)\n .value();\n\n const a = chain(s)\n .map(x => Calc6Months(x))\n .value();\n\n return [s, a];\n }, [DB, region, Category]);\n\n function getColor(val: number): string {\n const color = val >= 99.95\n ? \"emerald\" : val >= 99\n ? \"amber\" : \"rose\";\n\n return `bg-${color}-100 hover:bg-${color}-200`;\n }\n\n return <>\n \n \n {Category.Name}\n \n\n \n {services[0].Service.Name}\n \n\n {slas[0].map((sla, i) => (\n \n {sla.toFixed(2)}\n \n ))}\n \n\n {services.slice(1).map((service, i) => (\n \n \n {service.Service.Name}\n \n\n {slas[i + 1].map((sla, j) => (\n \n {sla.toFixed(2)}\n \n ))}\n \n ))}\n ;\n}\n","import { useMount, useUpdateEffect } from \"ahooks\";\nimport { WebStorageStateStore } from \"oidc-client-ts\";\nimport { ReactNode } from \"react\";\nimport { AuthProvider, hasAuthParams, useAuth } from \"react-oidc-context\";\nimport { Common } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { useRouter } from \"../Router\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function OIDCProvider({ children }: { children: ReactNode }): ReactNode {\n const { Rep } = useRouter();\n\n return (\n {\n Rep(\"/\");\n location.reload();\n }}\n authority={\n \"production\" === \"development\"\n ? \"http://80.158.108.251:8080/realms/sd2\"\n : \"https://keycloak.eco.tsi-dev.otc-service.com/realms/eco\"\n }\n post_logout_redirect_uri={\n \"production\" === \"development\"\n ? \"http://localhost:9000/Logout\"\n : \"https://sd3.eco.tsi-dev.otc-service.com/Logout\"\n }\n redirect_uri={\n \"production\" === \"development\"\n ? \"http://localhost:9000/Login\"\n : \"https://sd3.eco.tsi-dev.otc-service.com/Login\"\n }\n >\n \n {children}\n \n );\n}\n\nconst log = new Logger(\"Auth\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nfunction AuthHandler() {\n const auth = (Common.AuthSlot = useAuth());\n const { Paths, Rep } = useRouter();\n\n useMount(() => {\n if (Paths.at(0) === \"Logout\") {\n auth.removeUser();\n return Rep(\"/\");\n }\n\n if (\n !hasAuthParams() &&\n !auth.isAuthenticated &&\n !auth.activeNavigator &&\n !auth.isLoading\n )\n auth.signinRedirect();\n });\n\n useUpdateEffect(() => {\n if (auth.error) log.warn(auth.error);\n }, [auth.error]);\n\n return null;\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport { useMemo } from \"react\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventType } from \"./Enums\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventAffected({ Event }: { Event: Models.IEvent }) {\n const list = useMemo(() => {\n const all = Array.from(Event.RegionServices);\n const l = new Map>();\n\n if (Event.Type === EventType.Maintenance) {\n for (const item of all) {\n const service = item.Service.Name;\n const region = item.Region.Name;\n\n if (!l.has(service)) {\n l.set(service, new Set([region]));\n } else {\n l.get(service)!.add(region);\n }\n }\n }\n\n return Array.from(l.entries());\n }, [Event]);\n\n return (\n \n \n \n \n \n \n \n \n\n \n {list.map(([service, regions], i) => (\n \n \n \n \n ))}\n \n
    Service NameAffected Regions
    {service}{Array.from(regions).join(\", \")}
    \n
    \n );\n}\n","import { ScaleTag } from \"@telekom/scale-components-react\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventStatus } from \"../Event/Enums\";\nimport { Indicator } from \"../Home/Indicator\";\n\ninterface IEventItem {\n Prev?: Models.IEvent;\n Curr: Models.IEvent;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventItem({ Prev, Curr }: IEventItem) {\n const isBegin = useMemo(() => {\n if (!Prev)\n return true;\n\n return Prev.Start.getMonth() != Curr.Start.getMonth();\n }, [Prev]);\n\n const label = useRef(null);\n\n useEffect(() => {\n if (label.current) {\n const prev = label.current.previousElementSibling;\n if (prev && prev instanceof HTMLElement) {\n prev.style.paddingBottom = \"0\";\n prev.classList.add(\"mb-6\");\n }\n }\n }, [label.current]);\n\n const services = useMemo(() => {\n return chain(Array.from(Curr.RegionServices))\n .map(x => x.Service)\n .uniqBy(x => x.Id)\n .value();\n }, [Curr.RegionServices]);\n\n const upper = services.map(x => ({\n Name: x.Name,\n Abbr: x.Abbr.toUpperCase()\n }));\n\n const servicesTxt = upper.length > 3\n ? upper.slice(0, 3).map(x => x.Abbr).join(\", \") + ` (+${upper.length - 3})`\n : upper.map(x => x.Abbr).join(\", \");\n\n const regions = useMemo(() => {\n return chain(Array.from(Curr.RegionServices))\n .map(x => x.Region.Name)\n .uniq()\n .value();\n }, [Curr.RegionServices]);\n\n const regionsTxt = regions.length > 2\n ? regions.slice(0, 2).join(\", \") + ` (+${regions.length - 2})`\n : regions.join(\", \");\n\n let color: any;\n\n switch (Curr.Status) {\n case EventStatus.Investigating:\n case EventStatus.Fixing:\n case EventStatus.Monitoring:\n color = \"yellow\";\n break;\n\n case EventStatus.Scheduled:\n case EventStatus.Performing:\n color = \"violet\";\n break;\n\n case EventStatus.Resolved:\n case EventStatus.Completed:\n color = \"green\";\n break;\n\n default:\n color = \"standard\";\n break;\n }\n\n return (\n <>\n {isBegin &&\n \n {dayjs(Curr.Start).format(\"MMMM YYYY\")}\n }\n\n
  • \n \n {servicesTxt} {regionsTxt} {Curr.Type}\n \n\n
    \n \n {Curr.Status}\n \n\n {services.slice(0, 3).map(service => (\n \n {service.Name}\n \n ))}\n\n {services.length > 3 && (\n \n +{services.length - 3}\n \n )}\n
    \n\n \n\n \n
  • \n \n );\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { useStatus } from \"~/Services/Status\";\nimport { CategoryGroup } from \"./CategoryGroup\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function AvailaMatrix() {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const topic = \"Availability\";\n const regionSub = useCreation(\n () => Station.get(topic, () => {\n const first = DB.Regions[0];\n return new BehaviorSubject(first);\n }), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n return (\n \n \n \n \n \n\n \n\n \n \n\n \n {Array.from({ length: 6 }).map((_, i) => {\n const date = dayjs().subtract(5 - i, 'month');\n const month = date.format('MMMM');\n const year = date.year();\n\n return (\n \n );\n })}\n \n \n\n \n {chain(Array.from(region.Services))\n .map(x => x.Category)\n .uniqBy(x => x.Id)\n .orderBy(x => x.Name)\n .map((x, i) => )\n .value()}\n \n
    \n Category\n \n Service\n \n Availability, %\n
    \n {year}
    {month}\n
    \n\n \n
    \n );\n}\n","import { ScaleTable } from \"@telekom/scale-components-react\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { Models } from \"~/Services/Status.Models\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventLog({ Event }: { Event: Models.IEvent }) {\n const list = chain(Array.from(Event.Histories))\n .orderBy(x => x.Created, \"desc\")\n .value();\n\n return (\n \n \n \n \n \n \n \n \n\n \n {list.map((history, i) => (\n \n \n\n \n \n ))}\n \n
    UpdatesInformation
    \n \n\n \n {history.Message}
    \n
    \n );\n}\n","import { FluentProvider, Skeleton, SkeletonItem, webLightTheme } from \"@fluentui/react-components\";\nimport { useBoolean, useInViewport } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useRef } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { EventItem } from \"~/Components/History/EventItem\";\nimport { useStatus } from \"~/Services/Status\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function History() {\n const { DB } = useStatus();\n\n const skel = useRef(null);\n const [isBottom] = useInViewport(skel);\n const [isEnd] = useBoolean(true);\n\n const loading = isBottom && !isEnd;\n\n return <>\n \n Timeline - OTC Status Dashboard\n \n\n
    \n

    \n OTC Event Timeline\n

    \n
    \n\n
      \n {chain(DB.Events)\n .orderBy(x => x.Start, \"desc\")\n .map((event, index, events) => [events[index - 1], event])\n .map(([prev, curr]) => (\n \n ))\n .value()}\n
    \n\n \n \n \n\n
    \n \n\n
    \n \n \n
    \n\n \n
    \n
    \n \n ;\n}\n","import { User } from \"oidc-client-ts\";\nimport { AuthContextProps } from \"react-oidc-context\";\nimport { SubjectLike } from \"rxjs\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport const Dic = {\n Name: \"SD3\",\n};\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport abstract class Station {\n private static readonly subjects: Map> = new Map();\n\n public static get>(topic: string, factor?: () => T): T {\n if (!this.subjects.has(topic)) {\n if (factor) {\n this.subjects.set(topic, factor());\n } else {\n throw new Error(`Subject '${topic}' not found.`);\n }\n }\n\n return this.subjects.get(topic) as T;\n }\n\n public static delete(topic: string): void {\n this.subjects.delete(topic);\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport abstract class Common {\n public static get LocalUser(): User | null {\n const str = localStorage.getItem(\n \"production\" === \"development\"\n ? \"oidc.user:http://80.158.108.251:8080/realms/sd2:status-dashboard\"\n : \"oidc.user:https://keycloak.eco.tsi-dev.otc-service.com/realms/eco:status-dashboard\"\n );\n\n if (!str) return null;\n return User.fromStorageString(str);\n }\n\n public static AuthSlot?: AuthContextProps;\n\n public static get Auth(): Promise {\n return new Promise(resolve => {\n if (this.AuthSlot)\n return resolve(this.AuthSlot);\n\n const interval = setInterval(() => {\n if (this.AuthSlot) {\n clearInterval(interval);\n resolve(this.AuthSlot);\n }\n }, 100);\n });\n }\n\n public static async AccessToken(): Promise {\n let { isAuthenticated, user, signinSilent } = await this.Auth;\n\n if (!isAuthenticated)\n user = await signinSilent();\n\n if (user)\n return user.access_token;\n }\n}\n","import { useMount } from \"ahooks\";\nimport { ReactNode, createContext, useContext, useState } from \"react\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nfunction combine(paths: readonly any[]): string {\n const p = paths\n .filter(x => x)\n .map(x => x!.toString().replace(/^\\/+/, \"\"))\n .join(\"/\");\n\n return `/${p}`;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\ninterface IRouter {\n Paths: readonly string[],\n Search: URLSearchParams,\n readonly Put: (search: URLSearchParams) => void,\n readonly Nav: (...paths: readonly any[]) => void,\n readonly Rep: (...paths: readonly any[]) => void,\n readonly Reload: (...paths: readonly any[]) => void,\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nconst Router = createContext({} as IRouter);\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function useRouter() {\n return useContext(Router);\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function BrowserRouter({ children }: { children: ReactNode }): ReactNode {\n const [router, setRouter] = useState(() => ({\n Paths: location.pathname.split(\"/\").filter(x => x),\n Search: new URLSearchParams(location.search),\n Put: put,\n Nav: (...p) => nav(combine(p)),\n Rep: (...p) => rep(combine(p)),\n Reload: (...p) => reload(p),\n }));\n\n function put(search: URLSearchParams) {\n history.replaceState(null, \"\", `${location.pathname}${search.size ? \"?\" : \"\"}${search.toString()}`);\n router.Search = new URLSearchParams(search);\n setRouter({ ...router });\n }\n\n function update(path: string) {\n router.Paths = path.split(\"/\").filter(x => x);\n router.Search = new URLSearchParams(location.search);\n setRouter({ ...router });\n }\n\n function nav(path: string) {\n history.pushState(null, \"\", path);\n update(path);\n }\n\n function rep(path: string) {\n history.replaceState(null, \"\", path);\n update(path);\n }\n\n function reload(paths: readonly string[]) {\n history.replaceState(null, \"\", \"/Reload\");\n update(\"/Reload\");\n\n setTimeout(() => {\n const path = paths.length ? combine(paths) : location.pathname;\n history.pushState(null, \"\", path);\n update(path);\n }, 100);\n }\n\n useMount(() => {\n if (location.pathname === \"/\")\n if (location.search.startsWith(\"?/\"))\n rep(location.search.substring(2));\n\n addEventListener(\"click\", e => {\n const target = (e.target as HTMLElement)?.closest(\"a\");\n\n if (target) {\n if (target.origin !== location.origin) {\n target.target = \"_blank\";\n return;\n }\n\n e.preventDefault();\n nav(target.pathname);\n }\n });\n\n addEventListener(\"popstate\", e => {\n e.preventDefault();\n update(location.pathname);\n });\n });\n\n return (\n \n {children}\n \n );\n}\n","import { CounterBadge, FluentProvider, webLightTheme } from \"@fluentui/react-components\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useState } from \"react\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { EventStatus, EventType } from \"../Event/Enums\";\nimport { Indicator } from \"./Indicator\";\nimport \"./ServiceItem.css\";\n\ninterface IServiceItem {\n RegionService: Models.IRegionService;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function ServiceItem({ RegionService }: IServiceItem) {\n const { DB } = useStatus();\n\n const [status, setStatus] = useState(EventType.Operational);\n const [future, setFuture] = useState(false);\n const [id, setId] = useState();\n\n useEffect(() => {\n const res = chain([...RegionService.Events])\n .filter(x => {\n if (x.Type !== EventType.Maintenance && x.End) {\n return false;\n }\n\n return ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled]\n .includes(x.Status);\n })\n .orderBy(x => x.Type, 'desc')\n .head()\n .value();\n\n if (res) {\n setStatus(res.Type);\n setFuture(dayjs(res.Start).isAfter(dayjs()));\n setId(res.Id);\n }\n else {\n setStatus(EventType.Operational);\n setFuture(false);\n setId(undefined);\n }\n }, [DB, RegionService]);\n\n return (\n
  • \n {future ? (\n \n \n \n\n \n \n \n ) :\n id ? (\n \n \n \n ) : (\n \n )}\n\n \n
  • \n );\n}\n","import { ScaleLoadingSpinner } from \"@telekom/scale-components-react\";\nimport { Suspense, useMemo } from \"react\";\nimport { PageFooter } from \"~/Components/Layout/PageFooter\";\nimport { TopNavBar } from \"~/Components/Layout/TopNavBar\";\nimport { useRouter } from \"~/Components/Router\";\nimport { NotFound } from \"./404\";\nimport { Availability } from \"./Availability\";\nimport { Event } from \"./Event\";\nimport { History } from \"./History\";\nimport { Home } from \"./Home\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Layout() {\n const { Paths } = useRouter();\n const path = Paths.at(0);\n\n const match = useMemo(() => {\n switch (path) {\n case \"Login\":\n return ;\n\n case \"Reload\":\n return ;\n\n case \"Event\":\n return ;\n\n case \"History\":\n return ;\n\n case \"Availability\":\n return ;\n\n case \"\":\n case undefined:\n return ;\n\n default:\n return ;\n }\n }, [path]);\n\n return (\n
    \n \n\n
    \n }>\n {match}\n \n
    \n\n \n
    \n );\n}\n","import { ScaleNotification } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { EventStatus, EventType } from \"~/Components/Event/Enums\";\nimport { EventGrid } from \"~/Components/Home/EventGrid\";\nimport \"~/Components/Home/Home.css\";\nimport { Indicator } from \"~/Components/Home/Indicator\";\nimport { RegionSelector } from \"~/Components/Home/RegionSelector\";\nimport { StatusCard } from \"~/Components/Home/StatusCard\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { useStatus } from \"~/Services/Status\";\n\nconst log = new Logger(\"Home\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Home() {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const topic = \"HomeRegion\";\n const regionSub = useCreation(\n () => Station.get(topic, () => {\n const first = DB.Regions[0];\n return new BehaviorSubject(first);\n }), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const categories = useMemo(() => {\n return chain(DB.RegionService)\n .filter(rs => rs.Region.Id === region.Id)\n .map(rs => rs.Service.Category)\n .uniq()\n .orderBy(x => x.Name)\n .value();\n }, [DB, region]);\n\n const abnormalCount = useMemo(() => {\n const service = chain(DB.Events)\n .filter(e => !e.End)\n .filter(e => e.Type !== EventType.Maintenance)\n .filter(e => ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled].includes(e.Status))\n .flatMap(e => [...e.RegionServices])\n .map(rs => rs.Service)\n .uniqBy(s => s.Id)\n .value();\n\n log.debug(service);\n return service.length;\n }, [DB]);\n\n const heading = abnormalCount > 0\n ? `${abnormalCount} components have issue, but don't worry, we are working on it.`\n : \"All Systems Operational\";\n\n return (\n <>\n \n OTC Status Dashboard\n \n\n 0 ? \"warning\" : \"success\"}\n />\n\n \n\n \n\n
    \n {categories.map((cate, i) => (\n \n ))}\n
    \n\n
    \n
    \n
    \n \n
    \n\n \n {Object.values(EventType).map((state, i) => (\n
    \n \n \n
    \n ))}\n
    \n
    \n \n );\n}\n","import { useRequest } from \"ahooks\";\nimport { openDB } from \"idb\";\nimport { createContext, useContext, useState } from \"react\";\nimport { Dic } from \"~/Helpers/Entities\";\nimport { Logger } from \"~/Helpers/Logger\";\nimport { StatusEntity } from \"./Status.Entities\";\nimport { IStatusContext } from \"./Status.Models\";\nimport { Transformer } from \"./Status.Trans\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EmptyDB(): IStatusContext {\n return {\n Services: [],\n Categories: [],\n Regions: [],\n Events: [],\n Histories: [],\n RegionService: [],\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport let DB = EmptyDB();\n\ninterface IContext {\n DB: IStatusContext;\n Update: (data: IStatusContext) => void;\n}\n\nconst CTX = createContext({} as IContext);\nconst Store = \"Status\";\n\nfunction init() {\n return openDB(Dic.Name, 1, {\n upgrade(db) {\n db.createObjectStore(Store);\n },\n });\n}\n\nasync function save() {\n const db = await init();\n await db.put(Store, DB, Store);\n db.close();\n}\n\nasync function load() {\n const db = await init();\n const res = await db.get(Store, Store) as IStatusContext;\n if (res) {\n DB = res;\n }\n db.close();\n}\n\nawait load();\n\nconst log = new Logger(\"Service\", \"Status\");\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function useStatus() {\n const ctx = useContext(CTX);\n\n if (DB.Regions.length < 1) {\n throw new Promise((res) => {\n const i = setInterval(() => {\n if (DB.Regions.length > 0) {\n clearInterval(i);\n res(ctx);\n }\n }, 100);\n });\n }\n\n return ctx;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function StatusContext({ children }: { children: JSX.Element }) {\n const [db, setDB] = useState(DB);\n const url = \"http://localhost:9000\";\n const uri = \"/api/v1\";\n const file = \"true\" === \"true\";\n\n useRequest(\n async () => {\n log.info(\"Loading status data...\");\n\n const link = file ? \"/mock.json\" : `${url}${uri}/component_status`;\n const response = await fetch(link);\n const data = await response.json();\n\n log.debug(\"Status data loaded.\", data);\n return data as StatusEntity[];\n },\n {\n cacheKey: log.namespace,\n onSuccess: (list) => update(Transformer(list)),\n }\n );\n\n function update(data: IStatusContext) {\n DB = { ...data };\n setDB(DB);\n save();\n }\n\n return (\n {children}\n );\n}\n","import { createElement, useMemo } from \"react\";\nimport { EventType } from \"../Event/Enums\";\n\ninterface IIndicator {\n Type: EventType;\n Size?: number;\n Class?: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Indicator({ Type, Size, Class }: IIndicator) {\n const scaleIcon = \"scale-icon-\";\n const scaleColor = \"var(--telekom-color-\";\n const func = \"functional-\";\n const text = `${scaleColor}text-and-icon-${func}`;\n\n const iconName = useMemo(() => {\n switch (Type) {\n case EventType.Maintenance:\n return \"service-maintanance\";\n case EventType.MinorIssue:\n return \"action-minus-circle\";\n case EventType.MajorIssue:\n return \"alert-warning\";\n case EventType.Outage:\n return \"action-circle-close\";\n default:\n return \"action-success\";\n }\n }, [Type]);\n\n const fillColor = useMemo(() => {\n switch (Type) {\n case EventType.Maintenance:\n return `${text}informational)`;\n case EventType.MinorIssue:\n return `${scaleColor}${func}warning-standard)`;\n case EventType.MajorIssue:\n return `${text}warning)`;\n case EventType.Outage:\n return `${text}danger)`;\n default:\n return `${text}success)`;\n }\n }, [Type]);\n\n return createElement(\n `${scaleIcon}${iconName}`,\n {\n \"accessibility-title\": Type,\n fill: fillColor,\n class: Class,\n ...(Size ? { size: Size } : {}),\n }\n );\n}\n","import { ScaleDataGrid } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport dayjs from \"dayjs\";\nimport { chain } from \"lodash\";\nimport { useEffect, useRef } from \"react\";\nimport { useStatus } from \"~/Services/Status\";\nimport { EventStatus, EventType } from \"../Event/Enums\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventGrid() {\n const { DB } = useStatus();\n const ref = useRef(null);\n\n const observer = useCreation(() => {\n return new MutationObserver((mutationsList) => {\n mutationsList.forEach((mutation) => {\n if (mutation.type === \"childList\") {\n const added = mutation.addedNodes as NodeListOf;\n\n added.forEach((node) => {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const cells = node.querySelectorAll(\".tbody__cell\") as NodeListOf;\n\n cells.forEach((cell) => {\n if (cell.querySelector(\".tbody__actions\")) {\n cell.style.paddingTop = \"0\";\n cell.style.paddingBottom = \"0\";\n }\n });\n }\n });\n }\n });\n });\n }, []);\n\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const grid = ref.current;\n\n observer.disconnect();\n observer.observe(grid.shadowRoot!, {\n childList: true,\n subtree: true\n });\n\n grid.fields = [\n { type: \"number\", label: \"ID\" },\n { type: \"tags\", label: \"Type\" },\n { type: \"date\", label: \"Start\" },\n { type: \"text\", label: \"Status / Plan\" },\n { type: \"text\", label: \"Region\", sortable: true },\n { type: \"text\", label: \"Service\", sortable: true, stretchWeight: 0.7 },\n { type: \"actions\", label: \"Detail\" },\n ];\n\n const events = chain(DB.Events)\n .map((x) => {\n const rs = Array.from(x.RegionServices);\n\n const Services = chain(rs)\n .map(s => s.Service.Name)\n .uniq()\n .value();\n\n const Regions = chain(rs)\n .map(r => r.Region.Name)\n .uniq()\n .value();\n\n return {\n ...x,\n Services,\n Regions,\n Status: x.Status\n }\n })\n .filter(x => {\n if (x.Type !== EventType.Maintenance && x.End) {\n return false;\n }\n\n return ![EventStatus.Completed, EventStatus.Resolved, EventStatus.Cancelled]\n .includes(x.Status);\n })\n .orderBy(x => x.Start, \"desc\")\n .map(x => {\n let tag;\n\n switch (x.Type) {\n case EventType.MinorIssue:\n tag = { content: \"Minor\", color: \"yellow\" };\n break;\n case EventType.MajorIssue:\n tag = { content: \"Major\", color: \"orange\" };\n break;\n case EventType.Outage:\n tag = { content: \"Outage\", color: \"red\" };\n break;\n default:\n tag = { content: \"Maintain\", color: \"cyan\" };\n break;\n }\n\n return [\n x.Id,\n [tag],\n dayjs(x.Start).format(\"YYYY-MM-DD HH:mm [UTC]\"),\n x.End\n ? dayjs(x.End).format(\"MM-DD HH:mm\")\n : x.Status,\n x.Regions.length > 1\n ? `${x.Regions[0]} +${x.Regions.length - 1}`\n : x.Regions[0],\n x.Services.length > 1\n ? `${x.Services[0]} +${x.Services.length - 1}`\n : x.Services[0],\n [\n {\n label: \"↗\",\n variant: \"secondary\",\n href: `/Event/${x.Id}`\n }\n ]\n ];\n })\n .value();\n\n grid.rows = events;\n }, [ref.current, DB]);\n\n return (\n \n );\n}\n","import dayjs from 'dayjs';\nimport { chain } from 'lodash';\nimport { EventType } from '~/Components/Event/Enums';\nimport { Models } from \"~/Services/Status.Models\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Calc6Months(service: Models.IRegionService) {\n const now = dayjs();\n const sixMonth = now.subtract(6, 'month');\n\n const events = chain(Array.from(service.Events))\n .filter(e =>\n dayjs(e.Start).isAfter(sixMonth) &&\n e.Type !== EventType.Maintenance)\n .value();\n\n const results = [];\n\n for (let i = 0; i < 6; i++) {\n const startOfMonth = dayjs().startOf('month').subtract(i, 'month');\n const endOfMonth = startOfMonth.endOf('month');\n\n const monthlyEvents = events.filter(e =>\n dayjs(e.Start).isBefore(endOfMonth) &&\n dayjs(e.End ?? now).isAfter(startOfMonth)\n );\n\n const totalDowntime = monthlyEvents.reduce((sum, evt) => {\n const start = dayjs(evt.Start).isBefore(startOfMonth)\n ? startOfMonth : dayjs(evt.Start);\n\n const end = (evt.End && dayjs(evt.End).isBefore(endOfMonth))\n ? dayjs(evt.End) : endOfMonth;\n\n return sum + end.diff(start, 'minute');\n }, 0);\n\n const totalMinutes = endOfMonth.diff(startOfMonth, 'minute');\n const uptimePercentage = ((totalMinutes - totalDowntime) / totalMinutes) * 100;\n results.push(Math.max(uptimePercentage, 0));\n }\n\n results.reverse();\n return results;\n}\n","import { ScaleDivider } from \"@telekom/scale-components-react\";\nimport { useCreation } from \"ahooks\";\nimport { chain } from \"lodash\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Station } from \"~/Helpers/Entities\";\nimport { useStatus } from \"~/Services/Status\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { ServiceItem } from \"./ServiceItem\";\n\ninterface IStatusCard {\n Category: Models.ICategory;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function StatusCard({ Category }: IStatusCard) {\n const { DB } = useStatus();\n const [region, setRegion] = useState(DB.Regions[0]);\n\n const regionSub = useCreation(\n () => Station.get>(\"HomeRegion\"), []);\n\n useEffect(() => {\n const sub = regionSub.subscribe(setRegion);\n return () => sub.unsubscribe();\n }, []);\n\n const services = useMemo(() =>\n chain(DB.RegionService)\n .filter(x => x.Region.Id === region.Id)\n .filter(x => x.Service.Category.Id === Category.Id)\n .orderBy(x => x.Service.Name)\n .value()\n , [DB, region, Category]);\n\n return (\n
    \n

    \n {Category.Name}\n

    \n\n \n\n
      \n {services.map((item, i) => (\n \n ))}\n
    \n
    \n );\n}\n","import dayjs from \"dayjs\";\nimport { Models } from \"~/Services/Status.Models\";\nimport { Indicator } from \"../Home/Indicator\";\nimport { EventStatus, EventType } from \"./Enums\";\nimport { EventAffected } from \"./EventAffected\";\nimport { EventEditor } from \"./EventEditor\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function EventCard({ Event }: { Event: Models.IEvent }) {\n return (\n
    \n
    \n
    \n \n\n

    \n {Event.Title}\n

    \n
    \n\n \n
    \n\n
    \n
    \n \n\n \n\n \n\n \n
    \n\n
    \n \n\n \n\n \n\n \n
    \n
    \n\n
    \n \n
    \n
    \n );\n}\n","import { ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useRouter } from \"../Router\";\n\ninterface INavItem {\n Href: string;\n Label: string;\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function NavItem({ Href, Label }: INavItem) {\n const { Paths } = useRouter();\n const path = Paths.at(0);\n\n return (\n \n {Label}\n \n );\n}\n","import { ScaleLoadingSpinner } from \"@telekom/scale-components-react\";\nimport { Helmet } from \"react-helmet\";\nimport { useRouter } from \"~/Components/Router\";\nimport { Dic } from \"~/Helpers/Entities\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport function NotFound() {\n const { Rep } = useRouter();\n setTimeout(() => Rep(\"/\"), 3000);\n\n return <>\n \n Redirect - Not Found - {Dic.Name}\n \n \n\n \n ;\n}\n","import { ScaleIconActionMenu, ScaleTelekomMobileFlyoutCanvas, ScaleTelekomMobileMenu, ScaleTelekomMobileMenuItem, ScaleTelekomNavFlyout, ScaleTelekomNavItem } from \"@telekom/scale-components-react\";\nimport { useAuth } from \"react-oidc-context\";\nimport { Authorized, NotAuthorized } from \"../Auth/With\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function MobileMenu() {\n const auth = useAuth();\n\n return (\n \n \n\n \n \n \n\n \n History\n \n\n \n Availability\n \n\n \n \n Docs\n \n \n\n \n \n New Event\n \n\n auth.signoutRedirect()}>\n Logout {auth.user?.profile.name}\n \n \n\n \n auth.signinRedirect()}>\n Login\n \n \n\n \n \n \n \n );\n}\n","import { Helmet } from \"react-helmet\";\nimport { EventCard } from \"~/Components/Event/EventCard\";\nimport { EventLog } from \"~/Components/Event/EventLog\";\nimport { useRouter } from \"~/Components/Router\";\nimport { useStatus } from \"~/Services/Status\";\nimport { NotFound } from \"./404\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 0.1.0\n */\nexport function Event() {\n const { DB } = useStatus();\n\n const { Paths } = useRouter();\n const id = parseInt(Paths.at(1)!);\n\n const event = DB.Events.find(e => e.Id === id);\n\n if (isNaN(id) || !event) {\n return ;\n }\n\n return <>\n \n Event {id.toString()} - OTC Status Dashboard\n \n\n \n \n \n}\n","function c(c,n,a,f){c._m(n),a(\"10a4c0c8\");}","import dayjs from \"dayjs\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nconst enum ANSI {\n black = 30,\n black_hl = 90,\n balck_bg = 40,\n black_bg_hl = 100,\n\n red = 31,\n red_hl = 91,\n red_bg = 41,\n red_bg_hl = 101,\n\n green = 32,\n green_hl = 92,\n green_bg = 42,\n green_bg_hl = 102,\n\n yellow = 33,\n yellow_hl = 93,\n yellow_bg = 43,\n yellow_bg_hl = 103,\n\n blue = 34,\n blue_hl = 94,\n blue_bg = 44,\n blue_bg_hl = 104,\n\n magenta = 35,\n magenta_hl = 95,\n magenta_bg = 45,\n magenta_bg_hl = 105,\n\n cyan = 36,\n cyan_hl = 96,\n cyan_bg = 46,\n cyan_bg_hl = 106,\n\n white = 37,\n white_hl = 97,\n white_bg = 47,\n white_bg_hl = 107,\n\n default = 39,\n default_bg = 49,\n};\n\ntype level = \"error\" | \"warn\" | \"info\" | \"debug\" | \"throw\";\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport class Logger {\n public readonly namespace;\n\n public readonly info;\n public readonly error;\n public readonly warn;\n public readonly debug;\n public readonly throw;\n\n public constructor(...namespace: string[]) {\n this.namespace = namespace.join(\" > \");\n\n this.error = console.error.bind(this,\n this.baseColor(\n ANSI.red_bg_hl,\n \"error\"\n ), \"\\n\\t\");\n\n this.warn = console.warn.bind(this,\n this.baseColor(\n ANSI.yellow_bg_hl,\n \"warn\"\n ), \"\\n\\t\");\n\n this.info = console.info.bind(this,\n this.baseColor(\n ANSI.blue_bg_hl,\n \"info\"\n ), \"\\n\\t\");\n\n this.debug = console.debug.bind(this,\n this.baseColor(\n ANSI.green_bg_hl,\n \"debug\"\n ), \"\\n\\t\");\n\n this.throw = console.log.bind(this,\n this.baseColor(\n ANSI.magenta_bg_hl,\n \"throw\"\n ),\n \"↓ The Following Error is Thrown ↓\"\n );\n }\n\n public With(...names: string[]): Logger {\n return new Logger(this.namespace, ...names);\n }\n\n private baseColor(color: ANSI, level: level): string {\n return `\\x1b[${color};${ANSI.black};1m ${level.toUpperCase()} `\n + `\\x1b[0m\\x1b[${ANSI.black_bg_hl};${ANSI.white_hl}m ${dayjs().format(\"YY-M-D H:m:s\")} `\n + `\\x1b[1m\\x1b[${ANSI.balck_bg};${ANSI.white_hl}m ${this.namespace} `;\n }\n}\n\n/**\n * @author Aloento\n * @since 1.0.0\n * @version 1.0.0\n */\nexport interface ICompLog {\n ParentLog: Logger\n}\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/index_afdc.e7b0994b.css b/index_afdc.6a857780.css similarity index 79% rename from index_afdc.e7b0994b.css rename to index_afdc.6a857780.css index 9487618..65b4daf 100644 --- a/index_afdc.e7b0994b.css +++ b/index_afdc.6a857780.css @@ -1,5 +1,5 @@ -*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-ms-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(:not([class^=scale-],[class^=scale-] *)),:before:where(:not([class^=scale-],[class^=scale-] *)),:after:where(:not([class^=scale-],[class^=scale-] *)){-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before:where(:not([class^=scale-],[class^=scale-] *)),:after:where(:not([class^=scale-],[class^=scale-] *)){--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr:where(:not([class^=scale-],[class^=scale-] *)){height:0;color:inherit;border-top-width:1px}abbr:where([title]):where(:not([class^=scale-],[class^=scale-] *)){-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}h1:where(:not([class^=scale-],[class^=scale-] *)),h2:where(:not([class^=scale-],[class^=scale-] *)),h3:where(:not([class^=scale-],[class^=scale-] *)),h4:where(:not([class^=scale-],[class^=scale-] *)),h5:where(:not([class^=scale-],[class^=scale-] *)),h6:where(:not([class^=scale-],[class^=scale-] *)){font-size:inherit;font-weight:inherit}a:where(:not([class^=scale-],[class^=scale-] *)){color:inherit;text-decoration:inherit}b:where(:not([class^=scale-],[class^=scale-] *)),strong:where(:not([class^=scale-],[class^=scale-] *)){font-weight:bolder}code:where(:not([class^=scale-],[class^=scale-] *)),kbd:where(:not([class^=scale-],[class^=scale-] *)),samp:where(:not([class^=scale-],[class^=scale-] *)),pre:where(:not([class^=scale-],[class^=scale-] *)){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small:where(:not([class^=scale-],[class^=scale-] *)){font-size:80%}sub:where(:not([class^=scale-],[class^=scale-] *)),sup:where(:not([class^=scale-],[class^=scale-] *)){font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub:where(:not([class^=scale-],[class^=scale-] *)){bottom:-.25em}sup:where(:not([class^=scale-],[class^=scale-] *)){top:-.5em}table:where(:not([class^=scale-],[class^=scale-] *)){text-indent:0;border-color:inherit;border-collapse:collapse}button:where(:not([class^=scale-],[class^=scale-] *)),input:where(:not([class^=scale-],[class^=scale-] *)),optgroup:where(:not([class^=scale-],[class^=scale-] *)),select:where(:not([class^=scale-],[class^=scale-] *)),textarea:where(:not([class^=scale-],[class^=scale-] *)){font-family:inherit;-webkit-font-feature-settings:inherit;-moz-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button:where(:not([class^=scale-],[class^=scale-] *)),select:where(:not([class^=scale-],[class^=scale-] *)){text-transform:none}button:where(:not([class^=scale-],[class^=scale-] *)),input:where([type=button]):where(:not([class^=scale-],[class^=scale-] *)),input:where([type=reset]):where(:not([class^=scale-],[class^=scale-] *)),input:where([type=submit]):where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring:where(:not([class^=scale-],[class^=scale-] *)){outline:auto}:-moz-ui-invalid:where(:not([class^=scale-],[class^=scale-] *)){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}progress:where(:not([class^=scale-],[class^=scale-] *)){vertical-align:baseline}::-webkit-inner-spin-button:where(:not([class^=scale-],[class^=scale-] *)),::-webkit-outer-spin-button:where(:not([class^=scale-],[class^=scale-] *)){height:auto}[type=search]:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:none}::-webkit-file-upload-button:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:button;font:inherit}summary:where(:not([class^=scale-],[class^=scale-] *)){display:list-item}blockquote:where(:not([class^=scale-],[class^=scale-] *)),dl:where(:not([class^=scale-],[class^=scale-] *)),dd:where(:not([class^=scale-],[class^=scale-] *)),h1:where(:not([class^=scale-],[class^=scale-] *)),h2:where(:not([class^=scale-],[class^=scale-] *)),h3:where(:not([class^=scale-],[class^=scale-] *)),h4:where(:not([class^=scale-],[class^=scale-] *)),h5:where(:not([class^=scale-],[class^=scale-] *)),h6:where(:not([class^=scale-],[class^=scale-] *)),hr:where(:not([class^=scale-],[class^=scale-] *)),figure:where(:not([class^=scale-],[class^=scale-] *)),p:where(:not([class^=scale-],[class^=scale-] *)),pre:where(:not([class^=scale-],[class^=scale-] *)){margin:0}fieldset:where(:not([class^=scale-],[class^=scale-] *)){margin:0;padding:0}legend:where(:not([class^=scale-],[class^=scale-] *)){padding:0}ol:where(:not([class^=scale-],[class^=scale-] *)),ul:where(:not([class^=scale-],[class^=scale-] *)),menu:where(:not([class^=scale-],[class^=scale-] *)){list-style:none;margin:0;padding:0}dialog:where(:not([class^=scale-],[class^=scale-] *)){padding:0}textarea:where(:not([class^=scale-],[class^=scale-] *)){resize:vertical}input::-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::-webkit-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-webkit-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input:-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea:-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input:-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea:-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}button:where(:not([class^=scale-],[class^=scale-] *)),[role=button]:where(:not([class^=scale-],[class^=scale-] *)){cursor:pointer}:disabled:where(:not([class^=scale-],[class^=scale-] *)){cursor:default}img:where(:not([class^=scale-],[class^=scale-] *)),svg:where(:not([class^=scale-],[class^=scale-] *)),video:where(:not([class^=scale-],[class^=scale-] *)),canvas:where(:not([class^=scale-],[class^=scale-] *)),audio:where(:not([class^=scale-],[class^=scale-] *)),iframe:where(:not([class^=scale-],[class^=scale-] *)),embed:where(:not([class^=scale-],[class^=scale-] *)),object:where(:not([class^=scale-],[class^=scale-] *)){display:block;vertical-align:middle}img:where(:not([class^=scale-],[class^=scale-] *)),video:where(:not([class^=scale-],[class^=scale-] *)){max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])):where(:not([class^=scale-],[class^=scale-] *)){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.static{position:static}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.-left-3\.5{left:-.875rem}.top-0\.5{top:.125rem}.top-16{top:4rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-3{margin-left:-.75rem}.mb-6{margin-bottom:1.5rem}.ml-2\.5{margin-left:.625rem}.mt-auto{margin-top:auto}.flex{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-6{height:1.5rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.max-h-60{max-height:15rem}.min-h-full{min-height:100%}.w-1\/12{width:8.333333%}.w-fit{width:-moz-fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-96{min-width:24rem}.max-w-screen-xl{max-width:1280px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.items-center{-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.justify-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-x-2{-moz-column-gap:.5rem;-webkit-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;-webkit-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;-webkit-column-gap:.75rem;column-gap:.75rem}.gap-x-5{-moz-column-gap:1.25rem;-webkit-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;-webkit-column-gap:1.5rem;column-gap:1.5rem}.gap-x-7{-moz-column-gap:1.75rem;-webkit-column-gap:1.75rem;column-gap:1.75rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-8{row-gap:2rem}.overflow-y-auto{overflow-y:auto}.text-pretty{text-wrap:pretty}.rounded-lg{-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem}.rounded-md{-webkit-border-radius:.375rem;-moz-border-radius:.375rem;border-radius:.375rem}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity))}.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity))}.p-6{padding:1.5rem}.\!py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.\!pb-1{padding-bottom:.25rem!important}.pb-10{padding-bottom:2.5rem}.pl-7{padding-left:1.75rem}.pt-8{padding-top:2rem}.\!text-center{text-align:center!important}.text-center{text-align:center}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;-moz-text-decoration-line:none;text-decoration-line:none}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow);-moz-box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow)}.filter{-webkit-filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}:root{color-scheme:light!important}html,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:subpixel-antialiased}img{image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.last\:pb-0:last-child{padding-bottom:0}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\:bg-emerald-200:hover{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.hover\:bg-rose-200:hover{--tw-bg-opacity:1;background-color:rgb(254 205 211/var(--tw-bg-opacity))}.hover\:underline:hover{-webkit-text-decoration-line:underline;-moz-text-decoration-line:underline;text-decoration-line:underline}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} +*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-ms-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:where(:not([class^=scale-],[class^=scale-] *)),:before:where(:not([class^=scale-],[class^=scale-] *)),:after:where(:not([class^=scale-],[class^=scale-] *)){-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before:where(:not([class^=scale-],[class^=scale-] *)),:after:where(:not([class^=scale-],[class^=scale-] *)){--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr:where(:not([class^=scale-],[class^=scale-] *)){height:0;color:inherit;border-top-width:1px}abbr:where([title]):where(:not([class^=scale-],[class^=scale-] *)){-webkit-text-decoration:underline dotted;-moz-text-decoration:underline dotted;text-decoration:underline dotted}h1:where(:not([class^=scale-],[class^=scale-] *)),h2:where(:not([class^=scale-],[class^=scale-] *)),h3:where(:not([class^=scale-],[class^=scale-] *)),h4:where(:not([class^=scale-],[class^=scale-] *)),h5:where(:not([class^=scale-],[class^=scale-] *)),h6:where(:not([class^=scale-],[class^=scale-] *)){font-size:inherit;font-weight:inherit}a:where(:not([class^=scale-],[class^=scale-] *)){color:inherit;text-decoration:inherit}b:where(:not([class^=scale-],[class^=scale-] *)),strong:where(:not([class^=scale-],[class^=scale-] *)){font-weight:bolder}code:where(:not([class^=scale-],[class^=scale-] *)),kbd:where(:not([class^=scale-],[class^=scale-] *)),samp:where(:not([class^=scale-],[class^=scale-] *)),pre:where(:not([class^=scale-],[class^=scale-] *)){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;-webkit-font-feature-settings:normal;-moz-font-feature-settings:normal;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small:where(:not([class^=scale-],[class^=scale-] *)){font-size:80%}sub:where(:not([class^=scale-],[class^=scale-] *)),sup:where(:not([class^=scale-],[class^=scale-] *)){font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub:where(:not([class^=scale-],[class^=scale-] *)){bottom:-.25em}sup:where(:not([class^=scale-],[class^=scale-] *)){top:-.5em}table:where(:not([class^=scale-],[class^=scale-] *)){text-indent:0;border-color:inherit;border-collapse:collapse}button:where(:not([class^=scale-],[class^=scale-] *)),input:where(:not([class^=scale-],[class^=scale-] *)),optgroup:where(:not([class^=scale-],[class^=scale-] *)),select:where(:not([class^=scale-],[class^=scale-] *)),textarea:where(:not([class^=scale-],[class^=scale-] *)){font-family:inherit;-webkit-font-feature-settings:inherit;-moz-font-feature-settings:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button:where(:not([class^=scale-],[class^=scale-] *)),select:where(:not([class^=scale-],[class^=scale-] *)){text-transform:none}button:where(:not([class^=scale-],[class^=scale-] *)),input:where([type=button]):where(:not([class^=scale-],[class^=scale-] *)),input:where([type=reset]):where(:not([class^=scale-],[class^=scale-] *)),input:where([type=submit]):where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring:where(:not([class^=scale-],[class^=scale-] *)){outline:auto}:-moz-ui-invalid:where(:not([class^=scale-],[class^=scale-] *)){-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}progress:where(:not([class^=scale-],[class^=scale-] *)){vertical-align:baseline}::-webkit-inner-spin-button:where(:not([class^=scale-],[class^=scale-] *)),::-webkit-outer-spin-button:where(:not([class^=scale-],[class^=scale-] *)){height:auto}[type=search]:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:none}::-webkit-file-upload-button:where(:not([class^=scale-],[class^=scale-] *)){-webkit-appearance:button;font:inherit}summary:where(:not([class^=scale-],[class^=scale-] *)){display:list-item}blockquote:where(:not([class^=scale-],[class^=scale-] *)),dl:where(:not([class^=scale-],[class^=scale-] *)),dd:where(:not([class^=scale-],[class^=scale-] *)),h1:where(:not([class^=scale-],[class^=scale-] *)),h2:where(:not([class^=scale-],[class^=scale-] *)),h3:where(:not([class^=scale-],[class^=scale-] *)),h4:where(:not([class^=scale-],[class^=scale-] *)),h5:where(:not([class^=scale-],[class^=scale-] *)),h6:where(:not([class^=scale-],[class^=scale-] *)),hr:where(:not([class^=scale-],[class^=scale-] *)),figure:where(:not([class^=scale-],[class^=scale-] *)),p:where(:not([class^=scale-],[class^=scale-] *)),pre:where(:not([class^=scale-],[class^=scale-] *)){margin:0}fieldset:where(:not([class^=scale-],[class^=scale-] *)){margin:0;padding:0}legend:where(:not([class^=scale-],[class^=scale-] *)){padding:0}ol:where(:not([class^=scale-],[class^=scale-] *)),ul:where(:not([class^=scale-],[class^=scale-] *)),menu:where(:not([class^=scale-],[class^=scale-] *)){list-style:none;margin:0;padding:0}dialog:where(:not([class^=scale-],[class^=scale-] *)){padding:0}textarea:where(:not([class^=scale-],[class^=scale-] *)){resize:vertical}input::-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::-webkit-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-webkit-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input:-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea:-moz-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input:-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea:-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::-ms-input-placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}input::placeholder:where(:not([class^=scale-],[class^=scale-] *)),textarea::placeholder:where(:not([class^=scale-],[class^=scale-] *)){opacity:1;color:#9ca3af}button:where(:not([class^=scale-],[class^=scale-] *)),[role=button]:where(:not([class^=scale-],[class^=scale-] *)){cursor:pointer}:disabled:where(:not([class^=scale-],[class^=scale-] *)){cursor:default}img:where(:not([class^=scale-],[class^=scale-] *)),svg:where(:not([class^=scale-],[class^=scale-] *)),video:where(:not([class^=scale-],[class^=scale-] *)),canvas:where(:not([class^=scale-],[class^=scale-] *)),audio:where(:not([class^=scale-],[class^=scale-] *)),iframe:where(:not([class^=scale-],[class^=scale-] *)),embed:where(:not([class^=scale-],[class^=scale-] *)),object:where(:not([class^=scale-],[class^=scale-] *)){display:block;vertical-align:middle}img:where(:not([class^=scale-],[class^=scale-] *)),video:where(:not([class^=scale-],[class^=scale-] *)){max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])):where(:not([class^=scale-],[class^=scale-] *)){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.static{position:static}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.-left-3\.5{left:-.875rem}.top-0\.5{top:.125rem}.top-16{top:4rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-3{margin-left:-.75rem}.mb-6{margin-bottom:1.5rem}.ml-2\.5{margin-left:.625rem}.mt-auto{margin-top:auto}.flex{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-6{height:1.5rem}.h-auto{height:auto}.h-fit{height:-moz-fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.max-h-60{max-height:15rem}.min-h-full{min-height:100%}.w-1\/12{width:8.333333%}.w-fit{width:-moz-fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-96{min-width:24rem}.max-w-screen-xl{max-width:1280px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.flex-wrap{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.items-center{-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center}.justify-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;-moz-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.gap-x-2{-moz-column-gap:.5rem;-webkit-column-gap:.5rem;column-gap:.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;-webkit-column-gap:.625rem;column-gap:.625rem}.gap-x-3{-moz-column-gap:.75rem;-webkit-column-gap:.75rem;column-gap:.75rem}.gap-x-5{-moz-column-gap:1.25rem;-webkit-column-gap:1.25rem;column-gap:1.25rem}.gap-x-6{-moz-column-gap:1.5rem;-webkit-column-gap:1.5rem;column-gap:1.5rem}.gap-x-7{-moz-column-gap:1.75rem;-webkit-column-gap:1.75rem;column-gap:1.75rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-3{row-gap:.75rem}.gap-y-4{row-gap:1rem}.gap-y-6{row-gap:1.5rem}.gap-y-8{row-gap:2rem}.self-end{-webkit-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.overflow-y-auto{overflow-y:auto}.text-pretty{text-wrap:pretty}.rounded-lg{-webkit-border-radius:.5rem;-moz-border-radius:.5rem;border-radius:.5rem}.rounded-md{-webkit-border-radius:.375rem;-moz-border-radius:.375rem;border-radius:.375rem}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-slate-300{--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity))}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity))}.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-zinc-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity))}.p-6{padding:1.5rem}.\!py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-8{padding-left:2rem;padding-right:2rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.\!pb-1{padding-bottom:.25rem!important}.pb-10{padding-bottom:2.5rem}.pl-7{padding-left:1.75rem}.pt-8{padding-top:2rem}.\!text-center{text-align:center!important}.text-center{text-align:center}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-800{--tw-text-opacity:1;color:rgb(30 41 59/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;-moz-text-decoration-line:none;text-decoration-line:none}.shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);-webkit-box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow);-moz-box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0#0000),var(--tw-ring-shadow,0 0#0000),var(--tw-shadow)}.filter{-webkit-filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}:root{color-scheme:light!important}html,body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:subpixel-antialiased}img{image-rendering:-webkit-optimize-contrast;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.last\:pb-0:last-child{padding-bottom:0}.hover\:bg-amber-200:hover{--tw-bg-opacity:1;background-color:rgb(253 230 138/var(--tw-bg-opacity))}.hover\:bg-emerald-200:hover{--tw-bg-opacity:1;background-color:rgb(167 243 208/var(--tw-bg-opacity))}.hover\:bg-rose-200:hover{--tw-bg-opacity:1;background-color:rgb(254 205 211/var(--tw-bg-opacity))}.hover\:underline:hover{-webkit-text-decoration-line:underline;-moz-text-decoration-line:underline;text-decoration-line:underline}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} #RegionSelector scale-divider{--spacing:0} @-webkit-keyframes scale{0%{-webkit-transform:scale(1);transform:scale(1)}50%,75%{-webkit-transform:scale(2.5);transform:scale(2.5)}78%,to{opacity:0}}@-moz-keyframes scale{0%{-moz-transform:scale(1);transform:scale(1)}50%,75%{-moz-transform:scale(2.5);transform:scale(2.5)}78%,to{opacity:0}}@-o-keyframes scale{0%{-o-transform:scale(1);transform:scale(1)}50%,75%{-o-transform:scale(2.5);transform:scale(2.5)}78%,to{opacity:0}}@keyframes scale{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-o-transform:scale(1);transform:scale(1)}50%,75%{-webkit-transform:scale(2.5);-moz-transform:scale(2.5);-o-transform:scale(2.5);transform:scale(2.5)}78%,to{opacity:0}}.Blink{-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--telekom-color-additional-green-300);-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;height:20px;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;margin:7px;width:20px}.Blink:before{-webkit-animation:scale 2s infinite cubic-bezier(0,0,.49,1.02);-moz-animation:scale 2s infinite cubic-bezier(0,0,.49,1.02);-o-animation:scale 2s infinite cubic-bezier(0,0,.49,1.02);animation:scale 2s infinite cubic-bezier(0,0,.49,1.02);-webkit-animation-delay:.2s;-moz-animation-delay:.2s;-o-animation-delay:.2s;animation-delay:.2s;background-color:var(--telekom-color-functional-success-standard);-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;content:"";height:20px;opacity:.7;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:.5s all ease;-moz-transition:.5s all ease;-o-transition:.5s all ease;transition:.5s all ease;width:20px} .blue-dot{position:absolute!important;top:-10%;right:-10%}.with-dot{position:relative} -/*# sourceMappingURL=index_afdc.e7b0994b.css.map */ \ No newline at end of file +/*# sourceMappingURL=index_afdc.6a857780.css.map */ \ No newline at end of file diff --git a/index_afdc.e7b0994b.css.map b/index_afdc.6a857780.css.map similarity index 71% rename from index_afdc.e7b0994b.css.map rename to index_afdc.6a857780.css.map index 81c90d1..2738ae6 100644 --- a/index_afdc.e7b0994b.css.map +++ b/index_afdc.6a857780.css.map @@ -1 +1 @@ -{"version":3,"sources":["/src/index.css","/src/Components/Home/RegionSelector.css","/src/Components/Home/Home.css","/src/Components/Home/ServiceItem.css"],"sourcesContent":["*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::before:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::after:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::after:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh2:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh3:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh4:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh5:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh6:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nstrong:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nkbd:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsamp:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\npre:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n bottom: -0.25em;\n}\n\nsup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\noptgroup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nselect:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ntextarea:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nselect:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='button']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='reset']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='submit']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::-webkit-outer-spin-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search']:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ndl:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ndd:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh1:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh2:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh3:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh4:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh5:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh6:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nhr:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nfigure:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\np:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\npre:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n margin: 0;\n}\n\nfieldset:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n margin: 0;\n padding: 0;\n}\n\nlegend:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n padding: 0;\n}\n\nol:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nul:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nmenu:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)), textarea::-moz-placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ntextarea::placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n[role=\"button\"]:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsvg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nvideo:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ncanvas:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\naudio:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\niframe:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nembed:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nobject:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nvideo:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: none;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n\n.static {\n position: static;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.-left-3\\.5 {\n left: -0.875rem;\n}\n\n.top-0\\.5 {\n top: 0.125rem;\n}\n\n.top-16 {\n top: 4rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-3 {\n margin-left: -0.75rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.ml-2\\.5 {\n margin-left: 0.625rem;\n}\n\n.mt-auto {\n margin-top: auto;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-auto {\n height: auto;\n}\n\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n\n.max-h-60 {\n max-height: 15rem;\n}\n\n.min-h-full {\n min-height: 100%;\n}\n\n.w-1\\/12 {\n width: 8.333333%;\n}\n\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.w-full {\n width: 100%;\n}\n\n.min-w-96 {\n min-width: 24rem;\n}\n\n.max-w-screen-xl {\n max-width: 1280px;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n\n.gap-x-2\\.5 {\n -moz-column-gap: 0.625rem;\n column-gap: 0.625rem;\n}\n\n.gap-x-3 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n\n.gap-x-5 {\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n}\n\n.gap-x-6 {\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n\n.gap-x-7 {\n -moz-column-gap: 1.75rem;\n column-gap: 1.75rem;\n}\n\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n\n.gap-y-2\\.5 {\n row-gap: 0.625rem;\n}\n\n.gap-y-3 {\n row-gap: 0.75rem;\n}\n\n.gap-y-4 {\n row-gap: 1rem;\n}\n\n.gap-y-8 {\n row-gap: 2rem;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.text-pretty {\n text-wrap: pretty;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-md {\n border-radius: 0.375rem;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-l-2 {\n border-left-width: 2px;\n}\n\n.border-slate-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity));\n}\n\n.bg-amber-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 243 199 / var(--tw-bg-opacity));\n}\n\n.bg-emerald-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 250 229 / var(--tw-bg-opacity));\n}\n\n.bg-rose-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 228 230 / var(--tw-bg-opacity));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-zinc-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(250 250 250 / var(--tw-bg-opacity));\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.\\!py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.\\!pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pl-7 {\n padding-left: 1.75rem;\n}\n\n.pt-8 {\n padding-top: 2rem;\n}\n\n.\\!text-center {\n text-align: center !important;\n}\n\n.text-center {\n text-align: center;\n}\n\n.\\!text-lg {\n font-size: 1.125rem !important;\n line-height: 1.75rem !important;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity));\n}\n\n.text-slate-600 {\n --tw-text-opacity: 1;\n color: rgb(71 85 105 / var(--tw-text-opacity));\n}\n\n.text-slate-700 {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity));\n}\n\n.text-slate-800 {\n --tw-text-opacity: 1;\n color: rgb(30 41 59 / var(--tw-text-opacity));\n}\n\n.no-underline {\n text-decoration-line: none;\n}\n\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n:root {\n color-scheme: light !important;\n}\n\nhtml,\nbody {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\nimg {\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n}\n\n.last\\:pb-0:last-child {\n padding-bottom: 0px;\n}\n\n.hover\\:bg-amber-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(253 230 138 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-emerald-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(167 243 208 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-rose-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 205 211 / var(--tw-bg-opacity));\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n@media (min-width: 768px) {\n\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 1024px) {\n\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,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QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLHdCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsdUJBQW1CO09BQW5CO0FBQW1COztBQUFuQjtFQUFBLHlCQUFtQjtPQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSx3QkFBbUI7T0FBbkI7QUFBbUI7O0FBQW5CO0VBQUEsd0JBQW1CO09BQW5CO0FBQW1COztBQUFuQjtFQUFBLHVCQUFtQjtPQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSx3QkFBbUI7T0FBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsOEJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLHFCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLDhCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSw2RUFBbUI7RUFBbkIsaUdBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUVuQjtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFQTs7RUFFRSxrQ0FBa0M7RUFDbEMsNENBQTRDO0FBQzlDOztBQUVBO0VBQ0UsMENBQTBDO0VBQzFDLDRCQUE0QjtBQUM5Qjs7QUFuQkE7RUFBQTtBQW9CQTs7QUFwQkE7RUFBQSxrQkFvQkE7RUFwQkE7QUFvQkE7O0FBcEJBO0VBQUEsa0JBb0JBO0VBcEJBO0FBb0JBOztBQXBCQTtFQUFBLGtCQW9CQTtFQXBCQTtBQW9CQTs7QUFwQkE7RUFBQTtBQW9CQTs7QUFwQkE7O0VBQUE7SUFBQTtFQW9CQTtBQUFBOztBQXBCQTs7RUFBQTtJQUFBO0VBb0JBO0FBQUEiLCJmaWxlIjoic3JjL2luZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB0YWlsd2luZCBiYXNlO1xuXG5AdGFpbHdpbmQgY29tcG9uZW50cztcblxuQHRhaWx3aW5kIHV0aWxpdGllcztcblxuOnJvb3Qge1xuICBjb2xvci1zY2hlbWU6IGxpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbmh0bWwsXG5ib2R5IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG59XG5cbmltZyB7XG4gIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbn1cbiJdfQ== */","#RegionSelector scale-divider {\n --spacing: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvUmVnaW9uU2VsZWN0b3IuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6InNyYy9Db21wb25lbnRzL0hvbWUvUmVnaW9uU2VsZWN0b3IuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI1JlZ2lvblNlbGVjdG9yIHNjYWxlLWRpdmlkZXIge1xuICAtLXNwYWNpbmc6IDA7XG59XG4iXX0= */","@keyframes scale {\n 0% {\n transform: scale(1);\n }\n\n 50%,\n 75% {\n transform: scale(2.5);\n }\n\n 78%,\n 100% {\n opacity: 0;\n }\n}\n\n.Blink {\n align-items: center;\n background-color: var(--telekom-color-additional-green-300);\n border-radius: 50%;\n display: flex;\n height: 20px;\n justify-content: center;\n margin: 7px;\n width: 20px;\n}\n\n.Blink:before {\n animation: scale 2s infinite cubic-bezier(0, 0, 0.49, 1.02);\n animation-delay: 200ms;\n background-color: var(--telekom-color-functional-success-standard);\n border-radius: 50%;\n content: \"\";\n height: 20px;\n opacity: 0.7;\n transform: scale(1);\n transition: 0.5s all ease;\n width: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvSG9tZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtJQUNFLG1CQUFtQjtFQUNyQjs7RUFFQTs7SUFFRSxxQkFBcUI7RUFDdkI7O0VBRUE7O0lBRUUsVUFBVTtFQUNaO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsMkRBQTJEO0VBQzNELGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsWUFBWTtFQUNaLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsV0FBVztBQUNiOztBQUVBO0VBQ0UsMkRBQTJEO0VBQzNELHNCQUFzQjtFQUN0QixrRUFBa0U7RUFDbEUsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtFQUNaLG1CQUFtQjtFQUNuQix5QkFBeUI7RUFDekIsV0FBVztBQUNiIiwiZmlsZSI6InNyYy9Db21wb25lbnRzL0hvbWUvSG9tZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAa2V5ZnJhbWVzIHNjYWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICA1MCUsXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLjUpO1xuICB9XG5cbiAgNzglLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5CbGluayB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlbGVrb20tY29sb3ItYWRkaXRpb25hbC1ncmVlbi0zMDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMjBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogN3B4O1xuICB3aWR0aDogMjBweDtcbn1cblxuLkJsaW5rOmJlZm9yZSB7XG4gIGFuaW1hdGlvbjogc2NhbGUgMnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAsIDAsIDAuNDksIDEuMDIpO1xuICBhbmltYXRpb24tZGVsYXk6IDIwMG1zO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZWxla29tLWNvbG9yLWZ1bmN0aW9uYWwtc3VjY2Vzcy1zdGFuZGFyZCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IDAuNXMgYWxsIGVhc2U7XG4gIHdpZHRoOiAyMHB4O1xufVxuIl19 */",".blue-dot {\n position: absolute !important;\n top: -10%;\n right: -10%;\n}\n\n.with-dot {\n position: relative;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvU2VydmljZUl0ZW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNkJBQTZCO0VBQzdCLFNBQVM7RUFDVCxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEIiLCJmaWxlIjoic3JjL0NvbXBvbmVudHMvSG9tZS9TZXJ2aWNlSXRlbS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmx1ZS1kb3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAtMTAlO1xuICByaWdodDogLTEwJTtcbn1cblxuLndpdGgtZG90IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIl19 */"],"names":[],"mappings":"AAAA;ACAA;ACAA;ACAA"} \ No newline at end of file +{"version":3,"sources":["/src/index.css","/src/Components/Home/RegionSelector.css","/src/Components/Home/Home.css","/src/Components/Home/ServiceItem.css"],"sourcesContent":["*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-gradient-from-position: ;\n --tw-gradient-via-position: ;\n --tw-gradient-to-position: ;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n --tw-contain-size: ;\n --tw-contain-layout: ;\n --tw-contain-paint: ;\n --tw-contain-style: ;\n}/*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::before:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::after:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::after:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\nhtml,\n:host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh2:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh3:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh4:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh5:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh6:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nstrong:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nkbd:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsamp:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\npre:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n bottom: -0.25em;\n}\n\nsup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\noptgroup:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nselect:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ntextarea:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nselect:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='button']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='reset']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ninput:where([type='submit']):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n::-webkit-outer-spin-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search']:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ndl:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ndd:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh1:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh2:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh3:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh4:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh5:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nh6:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nhr:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nfigure:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\np:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\npre:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n margin: 0;\n}\n\nfieldset:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n margin: 0;\n padding: 0;\n}\n\nlegend:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n padding: 0;\n}\n\nol:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nul:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nmenu:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\ndialog:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)), textarea::-moz-placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ntextarea::placeholder:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\n[role=\"button\"]:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nsvg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nvideo:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\ncanvas:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\naudio:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\niframe:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nembed:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nobject:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)),\nvideo:where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden]:where(:not([hidden=\"until-found\"])):where(:not([class^=\"scale-\"],[class^=\"scale-\"] *)) {\n display: none;\n}\n\n.container {\n width: 100%;\n}\n\n@media (min-width: 640px) {\n\n .container {\n max-width: 640px;\n }\n}\n\n@media (min-width: 768px) {\n\n .container {\n max-width: 768px;\n }\n}\n\n@media (min-width: 1024px) {\n\n .container {\n max-width: 1024px;\n }\n}\n\n@media (min-width: 1280px) {\n\n .container {\n max-width: 1280px;\n }\n}\n\n@media (min-width: 1536px) {\n\n .container {\n max-width: 1536px;\n }\n}\n\n.static {\n position: static;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.-left-3\\.5 {\n left: -0.875rem;\n}\n\n.top-0\\.5 {\n top: 0.125rem;\n}\n\n.top-16 {\n top: 4rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-3 {\n margin-left: -0.75rem;\n}\n\n.mb-6 {\n margin-bottom: 1.5rem;\n}\n\n.ml-2\\.5 {\n margin-left: 0.625rem;\n}\n\n.mt-auto {\n margin-top: auto;\n}\n\n.flex {\n display: flex;\n}\n\n.table {\n display: table;\n}\n\n.grid {\n display: grid;\n}\n\n.hidden {\n display: none;\n}\n\n.h-6 {\n height: 1.5rem;\n}\n\n.h-auto {\n height: auto;\n}\n\n.h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n\n.max-h-60 {\n max-height: 15rem;\n}\n\n.min-h-full {\n min-height: 100%;\n}\n\n.w-1\\/12 {\n width: 8.333333%;\n}\n\n.w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.w-full {\n width: 100%;\n}\n\n.min-w-96 {\n min-width: 24rem;\n}\n\n.max-w-screen-xl {\n max-width: 1280px;\n}\n\n.grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-x-2 {\n -moz-column-gap: 0.5rem;\n column-gap: 0.5rem;\n}\n\n.gap-x-2\\.5 {\n -moz-column-gap: 0.625rem;\n column-gap: 0.625rem;\n}\n\n.gap-x-3 {\n -moz-column-gap: 0.75rem;\n column-gap: 0.75rem;\n}\n\n.gap-x-5 {\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n}\n\n.gap-x-6 {\n -moz-column-gap: 1.5rem;\n column-gap: 1.5rem;\n}\n\n.gap-x-7 {\n -moz-column-gap: 1.75rem;\n column-gap: 1.75rem;\n}\n\n.gap-y-2 {\n row-gap: 0.5rem;\n}\n\n.gap-y-2\\.5 {\n row-gap: 0.625rem;\n}\n\n.gap-y-3 {\n row-gap: 0.75rem;\n}\n\n.gap-y-4 {\n row-gap: 1rem;\n}\n\n.gap-y-6 {\n row-gap: 1.5rem;\n}\n\n.gap-y-8 {\n row-gap: 2rem;\n}\n\n.self-end {\n align-self: flex-end;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.text-pretty {\n text-wrap: pretty;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n\n.rounded-md {\n border-radius: 0.375rem;\n}\n\n.border-l {\n border-left-width: 1px;\n}\n\n.border-l-2 {\n border-left-width: 2px;\n}\n\n.border-slate-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity));\n}\n\n.bg-amber-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 243 199 / var(--tw-bg-opacity));\n}\n\n.bg-emerald-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(209 250 229 / var(--tw-bg-opacity));\n}\n\n.bg-rose-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(255 228 230 / var(--tw-bg-opacity));\n}\n\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n\n.bg-zinc-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(250 250 250 / var(--tw-bg-opacity));\n}\n\n.p-6 {\n padding: 1.5rem;\n}\n\n.\\!py-2 {\n padding-top: 0.5rem !important;\n padding-bottom: 0.5rem !important;\n}\n\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-3\\.5 {\n padding-left: 0.875rem;\n padding-right: 0.875rem;\n}\n\n.px-8 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-5 {\n padding-top: 1.25rem;\n padding-bottom: 1.25rem;\n}\n\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n\n.\\!pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pb-10 {\n padding-bottom: 2.5rem;\n}\n\n.pl-7 {\n padding-left: 1.75rem;\n}\n\n.pt-8 {\n padding-top: 2rem;\n}\n\n.\\!text-center {\n text-align: center !important;\n}\n\n.text-center {\n text-align: center;\n}\n\n.\\!text-lg {\n font-size: 1.125rem !important;\n line-height: 1.75rem !important;\n}\n\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n\n.text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem;\n}\n\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n\n.font-bold {\n font-weight: 700;\n}\n\n.font-medium {\n font-weight: 500;\n}\n\n.text-black {\n --tw-text-opacity: 1;\n color: rgb(0 0 0 / var(--tw-text-opacity));\n}\n\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity));\n}\n\n.text-slate-600 {\n --tw-text-opacity: 1;\n color: rgb(71 85 105 / var(--tw-text-opacity));\n}\n\n.text-slate-700 {\n --tw-text-opacity: 1;\n color: rgb(51 65 85 / var(--tw-text-opacity));\n}\n\n.text-slate-800 {\n --tw-text-opacity: 1;\n color: rgb(30 41 59 / var(--tw-text-opacity));\n}\n\n.no-underline {\n text-decoration-line: none;\n}\n\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\n:root {\n color-scheme: light !important;\n}\n\nhtml,\nbody {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: subpixel-antialiased;\n}\n\nimg {\n image-rendering: -webkit-optimize-contrast;\n image-rendering: crisp-edges;\n}\n\n.last\\:pb-0:last-child {\n padding-bottom: 0px;\n}\n\n.hover\\:bg-amber-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(253 230 138 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-emerald-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(167 243 208 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-rose-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(254 205 211 / var(--tw-bg-opacity));\n}\n\n.hover\\:underline:hover {\n text-decoration-line: underline;\n}\n\n@media (min-width: 768px) {\n\n .md\\:grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 1024px) {\n\n .lg\\:grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n}\n\n/*# sourceMappingURL=data:application/json;base64,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QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsaUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLHdCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSx1QkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsdUJBQW1CO09BQW5CO0FBQW1COztBQUFuQjtFQUFBLHlCQUFtQjtPQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSx3QkFBbUI7T0FBbkI7QUFBbUI7O0FBQW5CO0VBQUEsd0JBQW1CO09BQW5CO0FBQW1COztBQUFuQjtFQUFBLHVCQUFtQjtPQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSx3QkFBbUI7T0FBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsc0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLGtCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsOEJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLHFCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxzQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsa0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUFuQjtFQUFBLDhCQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxpQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsbUJBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG1CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxrQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUE7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQSxvQkFBbUI7RUFBbkI7QUFBbUI7O0FBQW5CO0VBQUEsb0JBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBLG9CQUFtQjtFQUFuQjtBQUFtQjs7QUFBbkI7RUFBQTtBQUFtQjs7QUFBbkI7RUFBQSw2RUFBbUI7RUFBbkIsaUdBQW1CO0VBQW5CO0FBQW1COztBQUFuQjtFQUFBO0FBQW1COztBQUVuQjtFQUNFLDhCQUE4QjtBQUNoQzs7QUFFQTs7RUFFRSxrQ0FBa0M7RUFDbEMsNENBQTRDO0FBQzlDOztBQUVBO0VBQ0UsMENBQTBDO0VBQzFDLDRCQUE0QjtBQUM5Qjs7QUFuQkE7RUFBQTtBQW9CQTs7QUFwQkE7RUFBQSxrQkFvQkE7RUFwQkE7QUFvQkE7O0FBcEJBO0VBQUEsa0JBb0JBO0VBcEJBO0FBb0JBOztBQXBCQTtFQUFBLGtCQW9CQTtFQXBCQTtBQW9CQTs7QUFwQkE7RUFBQTtBQW9CQTs7QUFwQkE7O0VBQUE7SUFBQTtFQW9CQTtBQUFBOztBQXBCQTs7RUFBQTtJQUFBO0VBb0JBO0FBQUEiLCJmaWxlIjoic3JjL2luZGV4LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkB0YWlsd2luZCBiYXNlO1xuXG5AdGFpbHdpbmQgY29tcG9uZW50cztcblxuQHRhaWx3aW5kIHV0aWxpdGllcztcblxuOnJvb3Qge1xuICBjb2xvci1zY2hlbWU6IGxpZ2h0ICFpbXBvcnRhbnQ7XG59XG5cbmh0bWwsXG5ib2R5IHtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogc3VicGl4ZWwtYW50aWFsaWFzZWQ7XG59XG5cbmltZyB7XG4gIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgaW1hZ2UtcmVuZGVyaW5nOiBjcmlzcC1lZGdlcztcbn1cbiJdfQ== */","#RegionSelector scale-divider {\n --spacing: 0;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvUmVnaW9uU2VsZWN0b3IuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsWUFBWTtBQUNkIiwiZmlsZSI6InNyYy9Db21wb25lbnRzL0hvbWUvUmVnaW9uU2VsZWN0b3IuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiI1JlZ2lvblNlbGVjdG9yIHNjYWxlLWRpdmlkZXIge1xuICAtLXNwYWNpbmc6IDA7XG59XG4iXX0= */","@keyframes scale {\n 0% {\n transform: scale(1);\n }\n\n 50%,\n 75% {\n transform: scale(2.5);\n }\n\n 78%,\n 100% {\n opacity: 0;\n }\n}\n\n.Blink {\n align-items: center;\n background-color: var(--telekom-color-additional-green-300);\n border-radius: 50%;\n display: flex;\n height: 20px;\n justify-content: center;\n margin: 7px;\n width: 20px;\n}\n\n.Blink:before {\n animation: scale 2s infinite cubic-bezier(0, 0, 0.49, 1.02);\n animation-delay: 200ms;\n background-color: var(--telekom-color-functional-success-standard);\n border-radius: 50%;\n content: \"\";\n height: 20px;\n opacity: 0.7;\n transform: scale(1);\n transition: 0.5s all ease;\n width: 20px;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvSG9tZS5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRTtJQUNFLG1CQUFtQjtFQUNyQjs7RUFFQTs7SUFFRSxxQkFBcUI7RUFDdkI7O0VBRUE7O0lBRUUsVUFBVTtFQUNaO0FBQ0Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsMkRBQTJEO0VBQzNELGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsWUFBWTtFQUNaLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsV0FBVztBQUNiOztBQUVBO0VBQ0UsMkRBQTJEO0VBQzNELHNCQUFzQjtFQUN0QixrRUFBa0U7RUFDbEUsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osWUFBWTtFQUNaLG1CQUFtQjtFQUNuQix5QkFBeUI7RUFDekIsV0FBVztBQUNiIiwiZmlsZSI6InNyYy9Db21wb25lbnRzL0hvbWUvSG9tZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAa2V5ZnJhbWVzIHNjYWxlIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cblxuICA1MCUsXG4gIDc1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgyLjUpO1xuICB9XG5cbiAgNzglLFxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICB9XG59XG5cbi5CbGluayB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXRlbGVrb20tY29sb3ItYWRkaXRpb25hbC1ncmVlbi0zMDApO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGhlaWdodDogMjBweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1hcmdpbjogN3B4O1xuICB3aWR0aDogMjBweDtcbn1cblxuLkJsaW5rOmJlZm9yZSB7XG4gIGFuaW1hdGlvbjogc2NhbGUgMnMgaW5maW5pdGUgY3ViaWMtYmV6aWVyKDAsIDAsIDAuNDksIDEuMDIpO1xuICBhbmltYXRpb24tZGVsYXk6IDIwMG1zO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS10ZWxla29tLWNvbG9yLWZ1bmN0aW9uYWwtc3VjY2Vzcy1zdGFuZGFyZCk7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgY29udGVudDogXCJcIjtcbiAgaGVpZ2h0OiAyMHB4O1xuICBvcGFjaXR5OiAwLjc7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIHRyYW5zaXRpb246IDAuNXMgYWxsIGVhc2U7XG4gIHdpZHRoOiAyMHB4O1xufVxuIl19 */",".blue-dot {\n position: absolute !important;\n top: -10%;\n right: -10%;\n}\n\n.with-dot {\n position: relative;\n}\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9Db21wb25lbnRzL0hvbWUvU2VydmljZUl0ZW0uY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsNkJBQTZCO0VBQzdCLFNBQVM7RUFDVCxXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQkFBa0I7QUFDcEIiLCJmaWxlIjoic3JjL0NvbXBvbmVudHMvSG9tZS9TZXJ2aWNlSXRlbS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYmx1ZS1kb3Qge1xuICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDtcbiAgdG9wOiAtMTAlO1xuICByaWdodDogLTEwJTtcbn1cblxuLndpdGgtZG90IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuIl19 */"],"names":[],"mappings":"AAAA;ACAA;ACAA;ACAA"} \ No newline at end of file