pulse-dashboard
Version:
A Next.js Dashboard application for real-time monitoring and historical analysis of Playwright test executions, based on playwright-pulse-report. This component provides the UI for visualizing Playwright test results and can be run as a standalone CLI too
1 lines • 18 kB
JavaScript
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{9156:(e,t,r)=>{"use strict";r.d(t,{Toaster:()=>es});var o=r(95155),n=r(87481),a=r(12115),s=r(47650),i=r(85185),l=r(6101),c=r(82284),d=r(46081),u=r(19178),f=r(34378),p=r(28905),v=r(63655),m=r(39033),w=r(5845),g=r(52712),h=r(2564),x="ToastProvider",[y,b,E]=(0,c.N)("Toast"),[T,N]=(0,d.A)("Toast",[E]),[j,R]=T(x),C=e=>{let{__scopeToast:t,label:r="Notification",duration:n=5e3,swipeDirection:s="right",swipeThreshold:i=50,children:l}=e,[c,d]=a.useState(null),[u,f]=a.useState(0),p=a.useRef(!1),v=a.useRef(!1);return r.trim()||console.error("Invalid prop `label` supplied to `".concat(x,"`. Expected non-empty `string`.")),(0,o.jsx)(y.Provider,{scope:t,children:(0,o.jsx)(j,{scope:t,label:r,duration:n,swipeDirection:s,swipeThreshold:i,toastCount:u,viewport:c,onViewportChange:d,onToastAdd:a.useCallback(()=>f(e=>e+1),[]),onToastRemove:a.useCallback(()=>f(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:v,children:l})})};C.displayName=x;var P="ToastViewport",S=["F8"],k="toast.viewportPause",A="toast.viewportResume",D=a.forwardRef((e,t)=>{let{__scopeToast:r,hotkey:n=S,label:s="Notifications ({hotkey})",...i}=e,c=R(P,r),d=b(r),f=a.useRef(null),p=a.useRef(null),m=a.useRef(null),w=a.useRef(null),g=(0,l.s)(t,w,c.onViewportChange),h=n.join("+").replace(/Key/g,"").replace(/Digit/g,""),x=c.toastCount>0;a.useEffect(()=>{let e=e=>{var t;0!==n.length&&n.every(t=>e[t]||e.code===t)&&(null===(t=w.current)||void 0===t||t.focus())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[n]),a.useEffect(()=>{let e=f.current,t=w.current;if(x&&e&&t){let r=()=>{if(!c.isClosePausedRef.current){let e=new CustomEvent(k);t.dispatchEvent(e),c.isClosePausedRef.current=!0}},o=()=>{if(c.isClosePausedRef.current){let e=new CustomEvent(A);t.dispatchEvent(e),c.isClosePausedRef.current=!1}},n=t=>{e.contains(t.relatedTarget)||o()},a=()=>{e.contains(document.activeElement)||o()};return e.addEventListener("focusin",r),e.addEventListener("focusout",n),e.addEventListener("pointermove",r),e.addEventListener("pointerleave",a),window.addEventListener("blur",r),window.addEventListener("focus",o),()=>{e.removeEventListener("focusin",r),e.removeEventListener("focusout",n),e.removeEventListener("pointermove",r),e.removeEventListener("pointerleave",a),window.removeEventListener("blur",r),window.removeEventListener("focus",o)}}},[x,c.isClosePausedRef]);let E=a.useCallback(e=>{let{tabbingDirection:t}=e,r=d().map(e=>{let r=e.ref.current,o=[r,...function(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}(r)];return"forwards"===t?o:o.reverse()});return("forwards"===t?r.reverse():r).flat()},[d]);return a.useEffect(()=>{let e=w.current;if(e){let t=t=>{let r=t.altKey||t.ctrlKey||t.metaKey;if("Tab"===t.key&&!r){var o,n,a;let r=document.activeElement,s=t.shiftKey;if(t.target===e&&s){null===(o=p.current)||void 0===o||o.focus();return}let i=E({tabbingDirection:s?"backwards":"forwards"}),l=i.findIndex(e=>e===r);Z(i.slice(l+1))?t.preventDefault():s?null===(n=p.current)||void 0===n||n.focus():null===(a=m.current)||void 0===a||a.focus()}};return e.addEventListener("keydown",t),()=>e.removeEventListener("keydown",t)}},[d,E]),(0,o.jsxs)(u.lg,{ref:f,role:"region","aria-label":s.replace("{hotkey}",h),tabIndex:-1,style:{pointerEvents:x?void 0:"none"},children:[x&&(0,o.jsx)(I,{ref:p,onFocusFromOutsideViewport:()=>{Z(E({tabbingDirection:"forwards"}))}}),(0,o.jsx)(y.Slot,{scope:r,children:(0,o.jsx)(v.sG.ol,{tabIndex:-1,...i,ref:g})}),x&&(0,o.jsx)(I,{ref:m,onFocusFromOutsideViewport:()=>{Z(E({tabbingDirection:"backwards"}))}})]})});D.displayName=P;var L="ToastFocusProxy",I=a.forwardRef((e,t)=>{let{__scopeToast:r,onFocusFromOutsideViewport:n,...a}=e,s=R(L,r);return(0,o.jsx)(h.s,{"aria-hidden":!0,tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:e=>{var t;let r=e.relatedTarget;(null===(t=s.viewport)||void 0===t?void 0:t.contains(r))||n()}})});I.displayName=L;var F="Toast",M=a.forwardRef((e,t)=>{let{forceMount:r,open:n,defaultOpen:a,onOpenChange:s,...l}=e,[c=!0,d]=(0,w.i)({prop:n,defaultProp:a,onChange:s});return(0,o.jsx)(p.C,{present:r||c,children:(0,o.jsx)(K,{open:c,...l,ref:t,onClose:()=>d(!1),onPause:(0,m.c)(e.onPause),onResume:(0,m.c)(e.onResume),onSwipeStart:(0,i.m)(e.onSwipeStart,e=>{e.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:(0,i.m)(e.onSwipeMove,e=>{let{x:t,y:r}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","move"),e.currentTarget.style.setProperty("--radix-toast-swipe-move-x","".concat(t,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-move-y","".concat(r,"px"))}),onSwipeCancel:(0,i.m)(e.onSwipeCancel,e=>{e.currentTarget.setAttribute("data-swipe","cancel"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:(0,i.m)(e.onSwipeEnd,e=>{let{x:t,y:r}=e.detail.delta;e.currentTarget.setAttribute("data-swipe","end"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),e.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),e.currentTarget.style.setProperty("--radix-toast-swipe-end-x","".concat(t,"px")),e.currentTarget.style.setProperty("--radix-toast-swipe-end-y","".concat(r,"px")),d(!1)})})})});M.displayName=F;var[_,O]=T(F,{onClose(){}}),K=a.forwardRef((e,t)=>{let{__scopeToast:r,type:n="foreground",duration:c,open:d,onClose:f,onEscapeKeyDown:p,onPause:w,onResume:g,onSwipeStart:h,onSwipeMove:x,onSwipeCancel:b,onSwipeEnd:E,...T}=e,N=R(F,r),[j,C]=a.useState(null),P=(0,l.s)(t,e=>C(e)),S=a.useRef(null),D=a.useRef(null),L=c||N.duration,I=a.useRef(0),M=a.useRef(L),O=a.useRef(0),{onToastAdd:K,onToastRemove:V}=N,G=(0,m.c)(()=>{var e;(null==j?void 0:j.contains(document.activeElement))&&(null===(e=N.viewport)||void 0===e||e.focus()),f()}),X=a.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(O.current),I.current=new Date().getTime(),O.current=window.setTimeout(G,e))},[G]);a.useEffect(()=>{let e=N.viewport;if(e){let t=()=>{X(M.current),null==g||g()},r=()=>{let e=new Date().getTime()-I.current;M.current=M.current-e,window.clearTimeout(O.current),null==w||w()};return e.addEventListener(k,r),e.addEventListener(A,t),()=>{e.removeEventListener(k,r),e.removeEventListener(A,t)}}},[N.viewport,L,w,g,X]),a.useEffect(()=>{d&&!N.isClosePausedRef.current&&X(L)},[d,L,N.isClosePausedRef,X]),a.useEffect(()=>(K(),()=>V()),[K,V]);let U=a.useMemo(()=>j?function e(t){let r=[];return Array.from(t.childNodes).forEach(t=>{var o;if(t.nodeType===t.TEXT_NODE&&t.textContent&&r.push(t.textContent),(o=t).nodeType===o.ELEMENT_NODE){let o=t.ariaHidden||t.hidden||"none"===t.style.display,n=""===t.dataset.radixToastAnnounceExclude;if(!o){if(n){let e=t.dataset.radixToastAnnounceAlt;e&&r.push(e)}else r.push(...e(t))}}}),r}(j):null,[j]);return N.viewport?(0,o.jsxs)(o.Fragment,{children:[U&&(0,o.jsx)(W,{__scopeToast:r,role:"status","aria-live":"foreground"===n?"assertive":"polite","aria-atomic":!0,children:U}),(0,o.jsx)(_,{scope:r,onClose:G,children:s.createPortal((0,o.jsx)(y.ItemSlot,{scope:r,children:(0,o.jsx)(u.bL,{asChild:!0,onEscapeKeyDown:(0,i.m)(p,()=>{N.isFocusedToastEscapeKeyDownRef.current||G(),N.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,o.jsx)(v.sG.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":N.swipeDirection,...T,ref:P,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:(0,i.m)(e.onKeyDown,e=>{"Escape"!==e.key||(null==p||p(e.nativeEvent),e.nativeEvent.defaultPrevented||(N.isFocusedToastEscapeKeyDownRef.current=!0,G()))}),onPointerDown:(0,i.m)(e.onPointerDown,e=>{0===e.button&&(S.current={x:e.clientX,y:e.clientY})}),onPointerMove:(0,i.m)(e.onPointerMove,e=>{if(!S.current)return;let t=e.clientX-S.current.x,r=e.clientY-S.current.y,o=!!D.current,n=["left","right"].includes(N.swipeDirection),a=["left","up"].includes(N.swipeDirection)?Math.min:Math.max,s=n?a(0,t):0,i=n?0:a(0,r),l="touch"===e.pointerType?10:2,c={x:s,y:i},d={originalEvent:e,delta:c};o?(D.current=c,z("toast.swipeMove",x,d,{discrete:!1})):Q(c,N.swipeDirection,l)?(D.current=c,z("toast.swipeStart",h,d,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>l||Math.abs(r)>l)&&(S.current=null)}),onPointerUp:(0,i.m)(e.onPointerUp,e=>{let t=D.current,r=e.target;if(r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),D.current=null,S.current=null,t){let r=e.currentTarget,o={originalEvent:e,delta:t};Q(t,N.swipeDirection,N.swipeThreshold)?z("toast.swipeEnd",E,o,{discrete:!0}):z("toast.swipeCancel",b,o,{discrete:!0}),r.addEventListener("click",e=>e.preventDefault(),{once:!0})}})})})}),N.viewport)})]}):null}),W=e=>{let{__scopeToast:t,children:r,...n}=e,s=R(F,t),[i,l]=a.useState(!1),[c,d]=a.useState(!1);return function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:()=>{},t=(0,m.c)(e);(0,g.N)(()=>{let e=0,r=0;return e=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(r)}},[t])}(()=>l(!0)),a.useEffect(()=>{let e=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(e)},[]),c?null:(0,o.jsx)(f.Z,{asChild:!0,children:(0,o.jsx)(h.s,{...n,children:i&&(0,o.jsxs)(o.Fragment,{children:[s.label," ",r]})})})},V=a.forwardRef((e,t)=>{let{__scopeToast:r,...n}=e;return(0,o.jsx)(v.sG.div,{...n,ref:t})});V.displayName="ToastTitle";var G=a.forwardRef((e,t)=>{let{__scopeToast:r,...n}=e;return(0,o.jsx)(v.sG.div,{...n,ref:t})});G.displayName="ToastDescription";var X="ToastAction",U=a.forwardRef((e,t)=>{let{altText:r,...n}=e;return r.trim()?(0,o.jsx)(Y,{altText:r,asChild:!0,children:(0,o.jsx)(H,{...n,ref:t})}):(console.error("Invalid prop `altText` supplied to `".concat(X,"`. Expected non-empty `string`.")),null)});U.displayName=X;var q="ToastClose",H=a.forwardRef((e,t)=>{let{__scopeToast:r,...n}=e,a=O(q,r);return(0,o.jsx)(Y,{asChild:!0,children:(0,o.jsx)(v.sG.button,{type:"button",...n,ref:t,onClick:(0,i.m)(e.onClick,a.onClose)})})});H.displayName=q;var Y=a.forwardRef((e,t)=>{let{__scopeToast:r,altText:n,...a}=e;return(0,o.jsx)(v.sG.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":n||void 0,...a,ref:t})});function z(e,t,r,o){let{discrete:n}=o,a=r.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:r});t&&a.addEventListener(e,t,{once:!0}),n?(0,v.hO)(a,s):a.dispatchEvent(s)}var Q=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=Math.abs(e.x),n=Math.abs(e.y),a=o>n;return"left"===t||"right"===t?a&&o>r:!a&&n>r};function Z(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var $=r(74466),B=r(25318),J=r(59434);let ee=a.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,o.jsx)(D,{ref:t,className:(0,J.cn)("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",r),...n})});ee.displayName=D.displayName;let et=(0,$.F)("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),er=a.forwardRef((e,t)=>{let{className:r,variant:n,...a}=e;return(0,o.jsx)(M,{ref:t,className:(0,J.cn)(et({variant:n}),r),...a})});er.displayName=M.displayName,a.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,o.jsx)(U,{ref:t,className:(0,J.cn)("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",r),...n})}).displayName=U.displayName;let eo=a.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,o.jsx)(H,{ref:t,className:(0,J.cn)("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",r),"toast-close":"",...n,children:(0,o.jsx)(B.A,{className:"h-4 w-4"})})});eo.displayName=H.displayName;let en=a.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,o.jsx)(V,{ref:t,className:(0,J.cn)("text-sm font-semibold",r),...n})});en.displayName=V.displayName;let ea=a.forwardRef((e,t)=>{let{className:r,...n}=e;return(0,o.jsx)(G,{ref:t,className:(0,J.cn)("text-sm opacity-90",r),...n})});function es(){let{toasts:e}=(0,n.dj)();return(0,o.jsxs)(C,{children:[e.map(function(e){let{id:t,title:r,description:n,action:a,...s}=e;return(0,o.jsxs)(er,{...s,children:[(0,o.jsxs)("div",{className:"grid gap-1",children:[r&&(0,o.jsx)(en,{children:r}),n&&(0,o.jsx)(ea,{children:n})]}),a,(0,o.jsx)(eo,{})]},t)}),(0,o.jsx)(ee,{})]})}ea.displayName=G.displayName},25318:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});let o=(0,r(40157).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},30347:()=>{},30467:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,30347,23)),Promise.resolve().then(r.bind(r,9156))},59434:(e,t,r)=>{"use strict";r.d(t,{OX:()=>l,cA:()=>i,cn:()=>s});var o=r(52596),n=r(39688),a=r(42638);function s(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.QP)((0,o.$)(t))}function i(e){if(!e)return"";let t={0:"color:inherit;font-weight:normal;font-style:normal;text-decoration:none;opacity:1;background-color:inherit;",1:"font-weight:bold",2:"opacity:0.6",3:"font-style:italic",4:"text-decoration:underline",30:"color:#000",31:"color:#d00",32:"color:#0a0",33:"color:#aa0",34:"color:#00d",35:"color:#a0a",36:"color:#0aa",37:"color:#aaa",39:"color:inherit",40:"background-color:#000",41:"background-color:#d00",42:"background-color:#0a0",43:"background-color:#aa0",44:"background-color:#00d",45:"background-color:#a0a",46:"background-color:#0aa",47:"background-color:#aaa",49:"background-color:inherit",90:"color:#555",91:"color:#f55",92:"color:#5f5",93:"color:#ff5",94:"color:#55f",95:"color:#f5f",96:"color:#5ff",97:"color:#fff"},r=[],o="",n=!1,a=()=>{if(n&&(o+="</span>",n=!1),r.length>0){let e=r.filter(e=>e).join(";");e&&(o+='<span style="'.concat(e,'">'),n=!0)}},s=e=>{let o=e.split(";");for(let e of(o.includes("0")&&(r=[],t["0"]&&r.push(t["0"])),o))if("0"!==e){if(t[e])"39"===e?(r=r.filter(e=>!e.startsWith("color:"))).push("color:inherit"):"49"===e?(r=r.filter(e=>!e.startsWith("background-color:"))).push("background-color:inherit"):r.push(t[e]);else if(e.startsWith("38;2;")||e.startsWith("48;2;")){let t=e.split(";"),o="38"===t[0]?"color":"background-color";5===t.length&&(r=r.filter(e=>!e.startsWith(o+":"))).push("".concat(o,":rgb(").concat(t[2],",").concat(t[3],",").concat(t[4],")"))}}a()};for(let t of e.split(/(\x1b\[[0-9;]*m)/g))if(t){if(t.startsWith("\x1b[")&&t.endsWith("m"))s(t.slice(2,-1));else{let e=t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");o+=e}}return n&&(o+="</span>"),o}function l(e){if(!e||"string"!=typeof e||""===e.trim())return"#";let t=e.trim(),r="attachments/",o="attachments\\";return(t.toLowerCase().startsWith(r)?t=t.substring(r.length):t.toLowerCase().startsWith(o)&&(t=t.substring(o.length)),""===(t=t.replace(/^[\/\\]+/,"")))?"#":"/api/assets/".concat(t)}new(r.n(a)())({fg:"#000",bg:"#FFF",newline:!0,escapeXML:!0})},87481:(e,t,r)=>{"use strict";r.d(t,{dj:()=>f});var o=r(12115);let n=0,a=new Map,s=e=>{if(a.has(e))return;let t=setTimeout(()=>{a.delete(e),d({type:"REMOVE_TOAST",toastId:e})},1e6);a.set(e,t)},i=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?s(r):e.toasts.forEach(e=>{s(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],c={toasts:[]};function d(e){c=i(c,e),l.forEach(e=>{e(c)})}function u(e){let{...t}=e,r=(n=(n+1)%Number.MAX_SAFE_INTEGER).toString(),o=()=>d({type:"DISMISS_TOAST",toastId:r});return d({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||o()}}}),{id:r,dismiss:o,update:e=>d({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=o.useState(c);return o.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>d({type:"DISMISS_TOAST",toastId:e})}}}},e=>{var t=t=>e(e.s=t);e.O(0,[690,638,441,684,358],()=>t(30467)),_N_E=e.O()}]);