my-orders-tickets-widget 1.0.0-beta.4 → 1.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n.js +185 -2
- package/dist/index.css +298 -1
- package/dist/index.js +3087 -2
- package/package.json +3 -3
- package/dist/i18n.js.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3087 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("my-orders-tickets-widget",[],t):"object"==typeof exports?exports["my-orders-tickets-widget"]=t():e["my-orders-tickets-widget"]=t()}(this,(()=>(()=>{"use strict";var e={};(()=>{e.n=t=>{var r=t&&t.__esModule?()=>t.default:()=>t;return e.d(r,{a:r}),r}})(),(()=>{e.d=(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})}})(),(()=>{e.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})(),(()=>{e.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})();var t={};e.r(t),e.d(t,{default:()=>_t});const r=require("react"),s=require("prop-types");var n=e.n(s);const i=require("react-redux"),a=require("redux-persist/integration/react"),o=require("react-i18next"),c=require("@mui/material"),l=require("@reduxjs/toolkit"),d=require("redux-persist"),u=require("redux-persist/lib/storage");var m=e.n(u);const _=require("redux"),p=require("openstack-uicore-foundation/lib/security/actions"),x=require("openstack-uicore-foundation/lib/security/methods"),h=require("openstack-uicore-foundation/lib/utils/actions"),g=1e3,j=5,k=1,f=(0,require("history").createBrowserHistory)(),y="RESET_STATE",b="RESET_FILTER",T="GET_ORDERS",S="GET_TICKETS_BY_ORDER",v="SET_USER",w="SET_SUMMIT",N="FILTER_VAR_DATE",C="FILTER_VAR_ORDER_NUMBER",R=e=>{let{page:t=k,perPage:r=j,filter:s={},sort:n={},next:i=!1}=e;return async(e,a,o)=>{let{apiBaseUrl:c,loginUrl:l}=o;const{widgetState:{summit:d}}=a(),u=await(0,x.getAccessToken)().catch((()=>f.replace(l)));if(!u)return Promise.reject();e((0,h.startLoading)());const m={access_token:u,order:"-id","filter[]":["status==Paid"],relations:"none",page:i?t+1:t,per_page:r};if(Object.keys(s).length>0){const e=(e=>{const t=[];return e.type===N&&t.push(`${e.name}[]${e.lower}&&${e.upper}`),e.type===C&&t.push(`${e.name}=@${e.value}`),t})(s);m["filter[]"]=[...m["filter[]"],...e]}return Object.keys(n).length>0&&(m.order=`${(e=>"asc"===e?"+":"-")(n.direction)}${n.name}`),(0,h.getRequest)(null,(0,h.createAction)(T),`${c}/api/v1/summits/${d.id}/orders/me`,h.authErrorHandler)(m)(e).then((t=>(e((0,h.stopLoading)()),t))).catch((t=>(e((0,h.stopLoading)()),t)))}},q=e=>{let{orderId:t,page:r=k,perPage:s=j}=e;return async(e,n,i)=>{let{apiBaseUrl:a,loginUrl:o}=i;e((0,h.startLoading)());const c=await(0,x.getAccessToken)().catch((()=>f.replace(o)));if(!c)return null;const l={access_token:c,expand:"refund_requests,owner,owner.extra_questions,badge,badge.features,ticket_type",order:"+id",page:r,per_page:s};return(0,h.getRequest)(null,(0,h.createAction)(S),`${a}/api/v1/summits/all/orders/${t}/tickets`,h.authErrorHandler)(l)(e).then((t=>(e((0,h.stopLoading)()),t))).catch((t=>(e((0,h.stopLoading)()),e((0,h.createAction)("GET_TICKETS_BY_ORDER_ERROR")),t)))}},B={summit:null,user:{},widgetLoading:!1,memberOrders:[],errors:{},loading:!1,isOrderLoading:!1,orders_current_page:1,orders_last_page:1,orders_per_page:5,orders_total:0,ticket_current_page:1,ticket_last_page:1,ticket_per_page:5,ticket_total:0},E=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:B,{type:t,payload:r}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};switch(t){case p.LOGOUT_USER:case y:return B;case b:return{...e,orders_current_page:1,orders_last_page:1};case w:return{...e,summit:r};case v:return{...e,user:r};case T:{const{memberOrders:t}=e,{data:s,total:n,current_page:i}=r.response;return{...e,memberOrders:i===k?s:[...t,...s],orders_total:n,orders_current_page:i}}case S:{const{memberOrders:t}=e,{data:s,total:n,current_page:i,last_page:a}=r.response,o=t.find((e=>e.id===s[0]?.order_id)),c={...o,memberTickets:i===k?s:[...o.memberTickets,...s],tickets_page_current:i,tickets_page_last:a,tickets_total:n};return{...e,memberOrders:t.map((e=>e.id===c.id?c:e))}}default:return e}},D=e=>{const t=(0,r.useMemo)((()=>(e=>{let{clientId:t,loginUrl:r,summit:s,apiBaseUrl:n}=e;const i=(0,_.combineReducers)({widgetState:E});return(0,l.configureStore)({reducer:(0,d.persistReducer)({key:`root_my_orders_tickets_${t}`,storage:m()},i),middleware:e=>e({thunk:{extraArgument:{clientId:t,apiBaseUrl:n,summit:s,loginUrl:r}},immutableCheck:!1,serializableCheck:{ignoredActions:[d.FLUSH,d.REHYDRATE,d.PAUSE,d.PERSIST,d.PURGE,d.REGISTER]}})})})(e)),[]),s=(0,r.useMemo)((()=>(0,d.persistStore)(t)),[t]);return{store:t,persistor:s}},G=require("react-infinite-scroll-component");var I=e.n(G);const O=require("@mui/material/Stack");var M=e.n(O);const P=require("@mui/icons-material/FilterList");var L=e.n(P);const F=require("dayjs");var U=e.n(F);const Y=require("@mui/x-date-pickers/AdapterDayjs"),$=require("@mui/x-date-pickers/LocalizationProvider"),z=require("@mui/x-date-pickers/DatePicker"),A=require("@mui/icons-material/Close");var H=e.n(A);const V=require("moment-timezone");var K=e.n(V);const W=(e,t)=>{let{locale:r="en-US",...s}=t;return new Intl.NumberFormat(r,{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2,...s}).format(e)},Z=(e,t)=>t?K().tz(e*g,t).format("MMMM DD, YYYY"):K().unix(e).format("MMMM DD, YYYY"),X=e=>{if(!e)return null;const t=K()(e.start_date*g).tz(e.time_zone_id),r=K()(e.end_date*g).tz(e.time_zone_id),s=r.diff(t,"days");let n="MMMM DD, YYYY",i="MMMM DD, YYYY";t.year()===r.year()&&(n="MMMM DD"),t.month()===r.month()&&(i="DD, YYYY");const a=t.format(n),o=r.format(i);return s>1?`${a} - ${o}`:a},J=(e,t)=>{const r=e.filter((e=>e.id===t));return r[0]?.memberTickets},Q=e=>({lower:e.setHours(0,0,0,0)/g,upper:e.setHours(23,59,0,0)/g}),ee=()=>(e,t)=>{const{timerState:r}=t();return null==r?.nowUtc?(()=>Math.round(+new Date/g))():r?.nowUtc};var te="calendarDisplay___im_jh",re="container___N3Y4X",se="datePickerContainer___JW2lO",ne="datepickerClose___V9gHC",ie="filterDateLabel___ifD4p",ae="label___yNFyj";const oe=require("react/jsx-runtime");function ce(e){let{onFilter:t,onReset:s}=e;const{t:n}=(0,o.useTranslation)(),i=U()(),[a,c]=(0,r.useState)(i);return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)("div",{className:ie,children:n("filter.purchased_on")}),(0,oe.jsxs)(M(),{alignItems:"center",direction:"row",sx:{pt:2,pb:2},className:se,children:[(0,oe.jsx)(H(),{fontSize:"large",className:ne,onClick:()=>{s(),c(i)}}),(0,oe.jsx)($.LocalizationProvider,{dateAdapter:Y.AdapterDayjs,children:(0,oe.jsx)(z.DatePicker,{className:te,onChange:e=>{c(e);const r=new Date(e.$d),{lower:s,upper:n}=Q(r);t({type:N,name:"created",date:r,lower:s,upper:n})},value:a})})]})]})}function le(e){let{onFilter:t,onReset:s}=e;const{t:n}=(0,o.useTranslation)(),[i,a]=(0,r.useState)(!1),[l,d]=(0,r.useState)(!1),[u,m]=(0,r.useState)(!1),_=(0,r.useRef)(null),p=e=>{_.current&&!_.current.contains(e.target)&&i&&(a(!1),d(!1))};(0,r.useEffect)((()=>(document.addEventListener("click",p,!1),()=>{document.removeEventListener("click",p,!1)})),[i]);const x=()=>{a(!i),d(!l)};return(0,oe.jsxs)(c.Box,{className:"filterContainer___rGpYV",ref:_,children:[(0,oe.jsxs)(M(),{alignItems:"center",direction:"row",sx:{pt:2,pb:2},onClick:x,children:[(0,oe.jsx)(L(),{fontSize:"large",className:"filterIcon___l21KI"}),u&&(0,oe.jsx)("div",{className:"filterNumActive___VuHCJ",children:"1"}),(0,oe.jsx)("span",{className:"filterLabel____P0wn",children:n("filter.filter")})]}),(0,oe.jsx)(c.Box,{className:`filterListContainer___VmdGq ${re} ${i?"showDatePicker___UpQbp":""}`,children:(0,oe.jsx)(ce,{onReset:()=>{s(),m(!1),x()},onFilter:e=>{t(e),m(!0)}})})]})}ce.propTypes={onFilter:n().func,onReset:n().func},le.propTypes={onFilter:n().func};const de=le,ue=require("@mui/icons-material/ImportExport");var me=e.n(ue);const _e=function(e){let{onSort:t}=e;const{t:s}=(0,o.useTranslation)(),[n,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),l=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return(0,r.useEffect)((()=>(document.addEventListener("click",l,!1),()=>{document.removeEventListener("click",l,!1)})),[n]),(0,oe.jsxs)(c.Box,{className:"sortContainer___lRsjU",onClick:()=>{i(!n)},children:[(0,oe.jsxs)(M(),{ref:a,alignItems:"center",direction:"row",sx:{pt:2,pb:2},children:[(0,oe.jsx)(me(),{fontSize:"large",className:"sortIcon___fVV5K"}),(0,oe.jsx)("span",{className:"sortLabel___UqLTC",children:s("sort.sort")})]}),n&&(0,oe.jsxs)(c.Box,{className:`sortListContainer___cmnBD ${re}`,children:[(0,oe.jsx)(c.Button,{className:ae,onClick:()=>t("desc"),children:s("sort.new_first")}),(0,oe.jsx)(c.Button,{className:ae,onClick:()=>t("asc"),children:s("sort.old_first")})]})]})},pe=require("@mui/material/styles"),xe=require("@mui/icons-material/Search");var he=e.n(xe);const ge=require("@mui/material/InputBase");var je=e.n(ge);const ke=(0,pe.styled)("div")((()=>({position:"relative",marginRight:"0",marginLeft:"0",width:"100%",display:"block"}))),fe=(0,pe.styled)("div")((()=>({height:"100%",position:"absolute",display:"flex",alignItems:"center",justifyContent:"center"}))),ye=(0,pe.styled)(je())((()=>({color:"inherit",borderBottom:"1px solid rgba(0, 0, 0, 0.42)",paddingLeft:"25px",paddingRight:"25px",fontSize:"1em"}))),be=(0,pe.styled)(H())((()=>({padding:"2px",fontSize:"1.5em",height:"100%",position:"absolute",top:"0",right:"0",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:"1000"})));function Te(e){let{onSearch:t,onReset:s}=e;const{t:n}=(0,o.useTranslation)(),[i,a]=(0,r.useState)(!1),[l,d]=(0,r.useState)("");return(0,oe.jsx)(c.Box,{children:(0,oe.jsxs)(ke,{children:[i&&(0,oe.jsx)(be,{onClick:()=>{d(""),a(!1),s()},children:(0,oe.jsx)(H(),{})}),(0,oe.jsx)(fe,{children:(0,oe.jsx)(he(),{})}),(0,oe.jsx)(ye,{placeholder:n("order_search.order_number"),inputProps:{"aria-label":"search"},value:l,onChange:e=>d(e.target.value),onKeyDown:e=>{const{key:r,nativeEvent:{target:{value:s}}}=e;"Enter"===r&&(t({value:s,name:"number",type:C}),a(!0))}})]})})}Te.propTypes={onSearch:n().func,onReset:n().func};const Se=Te;function ve(e){let{onFilter:t,onSort:r,onSearch:s,onReset:n}=e;return(0,oe.jsxs)(c.Grid,{container:!0,justify:"flex-end",alignItems:"center",children:[(0,oe.jsxs)(c.Grid,{item:!0,xs:6,container:!0,padding:1,gap:2,className:"filterSortContainer___arBvQ",sx:{pt:2,pb:2},children:[(0,oe.jsx)(c.Grid,{item:!0,children:(0,oe.jsx)(de,{onFilter:t,onReset:n})}),(0,oe.jsx)(c.Grid,{item:!0,children:(0,oe.jsx)(_e,{onSort:r})})]}),(0,oe.jsx)(c.Grid,{item:!0,xs:6,container:!0,justifyContent:"flex-end",children:(0,oe.jsx)(Se,{onSearch:s,onReset:n})})]})}ve.propTypes={onFilter:n().func,onSort:n().func,onSearch:n().func,onReset:n().func};const we=ve,Ne=require("@mui/material/useMediaQuery");var Ce=e.n(Ne);const Re=require("@mui/icons-material/ContentCopy");var qe=e.n(Re),Be="tabButtons___xTyJA",Ee="ticketListContainer___cfmrr",De="ticketOwnerEmail___Zt4OE",Ge="viewFinishTicketButton___HF6Im",Ie="viewMoreButton___K_1zT";function Oe(e){let{number:t,copy:r=!1,truncated:s=!1}=e;return(0,oe.jsxs)("div",{className:"orderTicketNoContainer___vqohN",children:[(0,oe.jsx)("span",{className:s&&"orderTicketNumberTruncated___HXmdw",children:t}),r&&(0,oe.jsx)(qe(),{className:"copyIcon___NkHGO",onClick:()=>navigator.clipboard.writeText(t)})]})}Oe.propTypes={number:n().string,copy:n().bool};const Me=Oe,Pe=require("@mui/material/Tabs");var Le=e.n(Pe);const Fe=require("@mui/material/Tab");var Ue=e.n(Fe);const Ye=require("@mui/icons-material/Error");var $e=e.n(Ye),ze="buttonPill___zq2tc";function Ae(e){let{ticket:t}=e;const{t:r}=(0,o.useTranslation)(),s=t.is_active,n=t.refund_requests.find((e=>"Requested"===e.status)),i="Incomplete"===t.owner?.status,a=0===t.owner_id,l=t.owner&&"Complete"===t.owner?.status;return(0,oe.jsx)(c.Container,{className:"ticketStatusContainer___qj6fb",children:s?(0,oe.jsxs)(oe.Fragment,{children:[n&&(0,oe.jsx)(c.Button,{className:`${ze} buttonRefundRequested___pWt30`,children:r("ticket_status.status_refund_requested")}),i&&(0,oe.jsx)(c.Button,{className:`${ze} buttonIncomplete___TolHg`,children:r("ticket_status.status_incomplete")}),a&&(0,oe.jsx)(c.Button,{className:`${ze} buttonUnassigned___YDd8X`,children:r("ticket_status.status_unassigned")}),l&&(0,oe.jsx)(c.Button,{className:`${ze} buttonComplete___llWkZ`,children:r("ticket_status.status_complete")})]}):(0,oe.jsx)(c.Button,{className:`${ze} buttonCancelled___ErlDZ`,children:r("ticket_status.status_cancelled")})})}Ae.propTypes={ticket:n().shape({owner:n().shape({status:n().string}),refund_requests:n().arrayOf(Object)})};const He=Ae;function Ve(e){let{ticket:t,summit:r}=e;const{t:s}=(0,o.useTranslation)(),n=(()=>(0,i.useDispatch)()(ee()))();return(0,oe.jsxs)(c.Grid,{className:"orderWrapper___yDBAo",container:!0,children:[(0,oe.jsx)(c.Grid,{xs:7,padding:2,item:!0,className:"ticketTicketType___Zq_f0",children:(0,oe.jsx)("h4",{children:t.ticket_type?.name})}),(0,oe.jsx)(c.Grid,{xs:5,padding:2,item:!0}),(0,oe.jsxs)(c.Grid,{xs:12,sx:{px:2,pb:2},item:!0,children:[t.owner?.email?(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsxs)(c.Box,{className:"label___zXDWz",children:[s("ticket_status.assigned_to"),":"]}),(0,oe.jsx)(c.Box,{className:De,children:t.owner?.email})]}):t.is_active&&(0,oe.jsx)("span",{className:De,children:s("ticket_status.attendee_status_unassigned")}),(0,oe.jsxs)("span",{className:"ticketNo___a2iM9",children:[s("ticket_status.ticket_no"),":"," ",(0,oe.jsx)(Me,{number:t.number,copy:!0,truncated:!0})]})]}),(0,oe.jsxs)(c.Grid,{container:!0,children:[(0,oe.jsx)(c.Grid,{container:!0,direction:"row",xs:12,lg:6,alignItems:"center",item:!0,children:(0,oe.jsx)(He,{ticket:t})}),(0,oe.jsx)(c.Grid,{padding:2,xs:12,lg:6,container:!0,item:!0,children:(0,oe.jsx)(c.Grid,{item:!0,container:!0,align:"center",sx:{justifyContent:"space-between"},className:"ticketActionButtons___rpSMQ",children:t.is_active&&(t.owner?(0,oe.jsxs)(M(),{sx:{justifyContent:"space-between",width:"100%"},alignItems:"center",direction:"row",children:[(e=>"Incomplete"===e.owner?.status?(0,oe.jsx)(c.Button,{className:Ge,children:s("ticket_status.finish_ticket")}):"Complete"===e.owner?.status?(0,oe.jsx)(c.Button,{className:Ge,children:s("ticket_status.view_ticket")}):null)(t),(()=>{const e=(e=>e?e.reassign_ticket_till_date&&e.reassign_ticket_till_date<e.end_date?e.reassign_ticket_till_date:e.end_date:null)(r);return e>n?(0,oe.jsx)(c.Button,{className:"reassignButton___RojM5",children:s("ticket_status.reassign_ticket")}):""})()]}):(0,oe.jsx)(c.Button,{className:"assignTicketButton___zzLsc",children:s("ticket_status.assign_ticket")}))})})]})]},t.id)}Ve.propTypes={ticket:n().shape({id:n().number,owner:n().shape({email:n().string}),number:n().string,total_refunded_amount:n().number,ticket_type:n().shape({name:n().string})})};const Ke=Ve;function We(e){let{tickets:t,total:s,onPaginateClick:n,summit:i}=e;const{t:a}=(0,o.useTranslation)(),[l,d]=(0,r.useState)(3),u=t?.slice(0,l);return(0,oe.jsxs)(oe.Fragment,{children:[u?.map((e=>(0,oe.jsx)(Ke,{ticket:e,summit:i},e.id))),t?.length>l?(0,oe.jsx)(c.Button,{className:Ie,onClick:()=>{s>t.length&&n(),d(l+3)},children:a("orders-tickets.view_more")}):"",u?.length>3&&u?.length===s?(0,oe.jsx)(c.Button,{className:Ie,onClick:()=>d(3),children:a("orders-tickets.view_less")}):""]})}We.propTypes={tickets:n().arrayOf(Object)};const Ze=We,Xe=require("@mui/material/Divider");var Je=e.n(Xe),Qe="orderSummaryButton___uxjht";function et(e){let{order:t,summit:r,tickets:s}=e;const{t:n}=(0,o.useTranslation)(),{discountTotal:i,refundTotal:a,taxesTotal:l,amountTotal:d,ticketSummary:u}=(e=>{let{order:t,summit:r,tickets:s}=e;if(!t||!r||!s)return{};const{refunded_amount:n,discount_amount:i,taxes_amount:a,amount:o}=t,{ticket_types:c}=r,l=[];let d=0;const u={currency:t.currency};Object.keys(t.tickets_excerpt_by_ticket_type).map((e=>{const r=c.find((t=>t.name===e));return l.push({ticket_type_id:r.id,ticket_type:r,name:e,qty:t.tickets_excerpt_by_ticket_type[e]}),d+=r.cost*t.tickets_excerpt_by_ticket_type[e],l}));const m=W(d,u);return{discountTotal:W(i,u),refundTotal:W(n,u),taxesTotal:W(a,u),amountTotal:Object.prototype.hasOwnProperty.call(t,"amount")?W(o,u):W(m,u),ticketSummary:l}})({order:t,summit:r,tickets:s});return(0,oe.jsxs)(c.Box,{className:"orderSummaryTable___YDnxV",children:[u?.length>0&&(0,oe.jsx)(oe.Fragment,{children:u.map((e=>{const r=e.qty*(100*e.ticket_type.cost)/100;return(0,oe.jsxs)(c.Grid,{container:!0,sx:{pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:(0,oe.jsxs)("span",{children:["x",e.qty," ",e.ticket_type.name]})}),(0,oe.jsx)(c.Grid,{xs:4,item:!0,align:"right",children:W(r,{currency:t.currency})})]},`tixorder_${e.ticket_type.created}`)}))}),t.discount_amount>0&&(0,oe.jsxs)(c.Grid,{container:!0,sx:{pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:n("order_summary.discounts")}),(0,oe.jsxs)(c.Grid,{xs:4,item:!0,align:"right",children:["-",i]})]}),t.taxes_amount>0&&(0,oe.jsxs)(c.Grid,{container:!0,sx:{pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:n("order_summary.taxes")}),(0,oe.jsx)(c.Grid,{xs:4,item:!0,align:"right",children:l})]}),"Paid"===t.status&&(0,oe.jsxs)(c.Grid,{container:!0,sx:{pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:n("order_summary.amount_paid")}),(0,oe.jsxs)(c.Grid,{xs:4,item:!0,align:"right",children:["-",d]})]}),a>0&&(0,oe.jsxs)(c.Grid,{container:!0,sx:{pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:n("order_summary.refunds")}),(0,oe.jsx)(c.Grid,{xs:4,item:!0,align:"right",children:a})]}),(0,oe.jsx)(Je(),{}),(0,oe.jsxs)(c.Grid,{container:!0,sx:{pt:1,pb:1},children:[(0,oe.jsx)(c.Grid,{xs:8,item:!0,children:n("order_summary.total")}),(0,oe.jsx)(c.Grid,{xs:4,item:!0,align:"right",children:"Paid"===t.status?"$0.00":d})]})]})}et.propTypes={order:n().shape({currency:n().string,discount_amount:n().number,taxes_amount:n().number,status:n().string}),summit:n().object,tickets:n().arrayOf(Object)};const tt=et;function rt(e){let{onRefundClick:t,onRefundDetailClick:r,onEmailSupportClick:s}=e;const{t:n}=(0,o.useTranslation)();return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(c.Button,{className:Qe,variant:"outlined",size:"large",onClick:t,children:n("order_summary.request_refund")}),(0,oe.jsx)(c.Button,{className:Qe,variant:"outlined",size:"large",onClick:r,children:n("order_summary.refund_details")}),(0,oe.jsx)(c.Button,{className:Qe,variant:"outlined",size:"large",onClick:s,children:n("order_info.email_support")})]})}rt.propTypes={onRefundClick:n().func,onRefundDetailClick:n().func,onEmailSupportClick:n().func};const st=rt;function nt(e){let{order:t,summit:r,tickets:s}=e;const{t:n}=(0,o.useTranslation)();return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsxs)(c.Box,{className:"orderSummaryWrapper___RwIER",sx:{pt:4,px:4},children:[(0,oe.jsx)("h3",{children:n("order_summary.order_summary")}),(0,oe.jsx)(c.Grid,{container:!0,children:(0,oe.jsx)(c.Grid,{xs:12,className:"orderSummaryPurchasedInfo____RBXE",sx:{pb:3},item:!0,children:(0,oe.jsx)(tt,{order:t,summit:r,tickets:s})})})]}),(0,oe.jsx)(c.Box,{xs:12,sx:{pb:3},children:(0,oe.jsx)(st,{onRefundClick:()=>{},onRefundDetailClick:()=>{},onEmailSupportClick:()=>{}})})]})}nt.propTypes={order:n().object,summit:n().object,tickets:n().arrayOf(Object)};const it=nt;function at(e){const{children:t,value:r,index:s}=e;return(0,oe.jsx)("div",{role:"tabpanel",hidden:r!==s,id:`tabpanel-${s}`,"aria-labelledby":`tab-${s}`,children:r===s&&t})}const ot=function(e){let{isMobile:t,summit:s,tickets:n,order:i,total:a,detailsRequired:l,onPaginateClick:d}=e;const{t:u}=(0,o.useTranslation)(),[m,_]=(0,r.useState)(0),p=()=>l&&(0,oe.jsxs)("span",{className:"detailsRequiredLabel___Y2kor",children:[(0,oe.jsx)($e(),{sx:{color:"#FF9800"}}),u("ticket_status.status_details_required")]});return t?(0,oe.jsxs)(c.Box,{className:Ee,children:[(0,oe.jsx)(c.Box,{sx:{borderColor:"divider",pb:2},children:(0,oe.jsxs)(Le(),{value:m,onChange:(e,t)=>{_(t)},textColor:"#000","aria-label":"Tickets & Summary",TabIndicatorProps:{style:{background:"#000"}},children:[(0,oe.jsx)(Ue(),{label:u("labels.tickets"),className:Be}),(0,oe.jsx)(Ue(),{label:u("labels.summary"),className:Be})]})}),p(),(0,oe.jsx)(at,{value:m,index:0,children:(0,oe.jsx)(Ze,{order:i,tickets:n,total:a,onPaginateClick:d,summit:s})}),(0,oe.jsx)(at,{value:m,index:1,children:(0,oe.jsx)(it,{order:i,summit:s,tickets:n})})]}):(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(c.Grid,{item:!0,md:12,children:p()}),(0,oe.jsx)(c.Grid,{padding:2,item:!0,md:7,order:{md:1},className:Ee,children:(0,oe.jsx)(Ze,{order:i,tickets:n,total:a,onPaginateClick:d,summit:s})}),(0,oe.jsx)(c.Grid,{padding:2,item:!0,md:5,order:{md:1},children:(0,oe.jsx)(it,{order:i,summit:s,tickets:n})})]})};function ct(e){const{summit:t,order:s}=e,{t:n}=(0,o.useTranslation)(),a=(0,i.useDispatch)(),{per_page:l,last_page:d,memberOrders:u}=(0,i.useSelector)((e=>e.widgetState||{}),i.shallowEqual),m=(0,pe.useTheme)(),_=Ce()(m.breakpoints.down("lg")),[p,x]=(0,r.useState)(!1),h=s.memberTickets?.find((e=>"Incomplete"===e.owner?.status));(0,r.useEffect)((()=>{(async()=>{await a(q({orderId:s.id,current_page:d,perPage:l})).catch((e=>{console.log(e)}))})()}),[]);return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsxs)(c.Box,{sx:{padding:{xs:2,md:1,lg:0}},className:"orderTicketInfoContainer____p66V",children:[(0,oe.jsxs)("span",{className:"orderTicketInfo___gemqB",children:[n("orders.purchased"),": ",Z(s.created)," |"," ",n("order_summary.order_no"),":"," ",(0,oe.jsx)(Me,{number:s.number,copy:!0,truncated:!0})]}),_&&(0,oe.jsx)(c.Button,{sx:{padding:0},className:"blackButton___l9hj9",onClick:()=>x(!p),children:n(p?"ticket_status.hide_tickets":"ticket_status.view_tickets")})]}),(0,oe.jsx)(c.Grid,{container:!0,rowSpacing:1,columnSpacing:{xs:1,sm:2,md:3},className:"orderTicketContainer___ZJLzk "+(_&&!p?"display_none___CqpL3":""),sx:{flexDirection:{md:"row",lg:"row"},padding:{xs:2,md:0,lg:0}},children:(0,oe.jsx)(ot,{isMobile:_,summit:t,order:s,tickets:J(u,s.id),total:s.tickets_total,detailsRequired:h,onPaginateClick:()=>a(q({orderId:s.id,page:s.tickets_page_current+1,perPage:l,next:!0}))})},s.id)]})}ct.propTypes={summit:n().object,order:n().object};const lt=ct;var dt="summitTitleDate___Z19Pm";const ut=function(){const{t:e}=(0,o.useTranslation)(),t=(0,i.useDispatch)(),{summit:s,memberOrders:n,orders_current_page:a,orders_per_page:l,orders_total:d}=(0,i.useSelector)((e=>e.widgetState||{}),i.shallowEqual),[u,m]=(0,r.useState)(!0),[_,p]=(0,r.useState)(!1),[x,g]=(0,r.useState)({}),[j,k]=(0,r.useState)({});(0,r.useEffect)((()=>{(async()=>{t(R({page:a,perPage:l,next:_,filter:x,sort:j})).then((e=>{e.response?.data?.length>l&&n.length===d&&m(!1)}))})()}),[x,j,_]);const f=e=>{k({}),g(e)};return(0,oe.jsxs)(oe.Fragment,{children:[(0,oe.jsx)(we,{onFilter:f,onSort:e=>{g({}),k({direction:e,name:"created"})},onSearch:f,onReset:()=>{k({}),g({}),p(!1),t((()=>e=>{e((0,h.createAction)(b)({}))})())}}),(0,oe.jsxs)(c.Box,{className:"widgetHeader___yY5ge",sx:{padding:{xs:2,md:0,lg:0}},children:[(0,oe.jsx)("h2",{className:dt,children:s?.name}),(0,oe.jsx)("h2",{className:dt,children:X(s)})]}),n.length?(0,oe.jsx)(I(),{dataLength:n.length,next:()=>p(!0),hasMore:u,scrollThreshold:1,children:n?.map((e=>(0,oe.jsx)(lt,{order:e,summit:s},e.id)))}):(0,oe.jsx)(c.Box,{className:"noOrdersFound___Aog2p",children:e("orders.no_orders")})]})};function mt(e){const{loginUrl:t,supportEmail:s,summit:n,apiBaseUrl:l,user:d,clientId:u}=e,{t:m}=(0,o.useTranslation)(),{store:_,persistor:p}=D({loginUrl:t,supportEmail:s,summit:n,user:d,apiBaseUrl:l,clientId:u});return(0,r.useEffect)((()=>{_.dispatch((e=>async t=>t((0,h.createAction)(w)(e)))(n))}),[n]),(0,r.useEffect)((()=>{_.dispatch((e=>t=>t((0,h.createAction)(v)(e)))(d))}),[d]),(0,oe.jsx)(i.Provider,{store:_,children:(0,oe.jsxs)(a.PersistGate,{onBeforeLift:()=>{new URLSearchParams(window.location.search).has("flushState")&&_.dispatch({type:y,payload:null})},loading:null,persistor:p,children:[(0,oe.jsx)(c.Box,{sx:{padding:{xs:2,md:0,lg:0}},children:(0,oe.jsx)("h3",{children:m("orders.title")})}),(0,oe.jsx)(ut,{loginUrl:t,supportEmail:s,summit:n,apiBaseUrl:l})]})})}mt.propTypes={loginUrl:n().string,supportEmail:n().string,summit:n().object,apiBaseUrl:n().string,user:n().object};const _t=mt;return t})()));
|
|
2
|
-
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
|
3
|
+
module.exports = factory();
|
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
|
5
|
+
define("my-orders-tickets-widget", [], factory);
|
|
6
|
+
else if(typeof exports === 'object')
|
|
7
|
+
exports["my-orders-tickets-widget"] = factory();
|
|
8
|
+
else
|
|
9
|
+
root["my-orders-tickets-widget"] = factory();
|
|
10
|
+
})(this, () => {
|
|
11
|
+
return /******/ (() => { // webpackBootstrap
|
|
12
|
+
/******/ "use strict";
|
|
13
|
+
/******/ var __webpack_modules__ = ({
|
|
14
|
+
|
|
15
|
+
/***/ "./src/actions.js":
|
|
16
|
+
/*!************************!*\
|
|
17
|
+
!*** ./src/actions.js ***!
|
|
18
|
+
\************************/
|
|
19
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
20
|
+
|
|
21
|
+
__webpack_require__.r(__webpack_exports__);
|
|
22
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
23
|
+
/* harmony export */ ASSIGN_TICKET: () => (/* binding */ ASSIGN_TICKET),
|
|
24
|
+
/* harmony export */ CLEAR_MARKETING_SETTINGS: () => (/* binding */ CLEAR_MARKETING_SETTINGS),
|
|
25
|
+
/* harmony export */ FILTER_USER_ORDERS: () => (/* binding */ FILTER_USER_ORDERS),
|
|
26
|
+
/* harmony export */ FILTER_VAR_DATE: () => (/* binding */ FILTER_VAR_DATE),
|
|
27
|
+
/* harmony export */ FILTER_VAR_ORDER_NUMBER: () => (/* binding */ FILTER_VAR_ORDER_NUMBER),
|
|
28
|
+
/* harmony export */ GET_MAIN_EXTRA_QUESTIONS: () => (/* binding */ GET_MAIN_EXTRA_QUESTIONS),
|
|
29
|
+
/* harmony export */ GET_ORDER_TICKET_DETAILS: () => (/* binding */ GET_ORDER_TICKET_DETAILS),
|
|
30
|
+
/* harmony export */ GET_TICKETS: () => (/* binding */ GET_TICKETS),
|
|
31
|
+
/* harmony export */ GET_TICKETS_BY_ORDER: () => (/* binding */ GET_TICKETS_BY_ORDER),
|
|
32
|
+
/* harmony export */ GET_TICKETS_BY_ORDER_ERROR: () => (/* binding */ GET_TICKETS_BY_ORDER_ERROR),
|
|
33
|
+
/* harmony export */ GET_TICKET_DETAILS: () => (/* binding */ GET_TICKET_DETAILS),
|
|
34
|
+
/* harmony export */ GET_USER_ORDERS: () => (/* binding */ GET_USER_ORDERS),
|
|
35
|
+
/* harmony export */ RECEIVE_MARKETING_SETTINGS: () => (/* binding */ RECEIVE_MARKETING_SETTINGS),
|
|
36
|
+
/* harmony export */ REFUND_ORDER: () => (/* binding */ REFUND_ORDER),
|
|
37
|
+
/* harmony export */ REFUND_TICKET: () => (/* binding */ REFUND_TICKET),
|
|
38
|
+
/* harmony export */ REMOVE_TICKET_ATTENDEE: () => (/* binding */ REMOVE_TICKET_ATTENDEE),
|
|
39
|
+
/* harmony export */ RESEND_NOTIFICATION: () => (/* binding */ RESEND_NOTIFICATION),
|
|
40
|
+
/* harmony export */ RESET_FILTER: () => (/* binding */ RESET_FILTER),
|
|
41
|
+
/* harmony export */ RESET_STATE: () => (/* binding */ RESET_STATE),
|
|
42
|
+
/* harmony export */ SET_ACTIVE_ORDER_ID: () => (/* binding */ SET_ACTIVE_ORDER_ID),
|
|
43
|
+
/* harmony export */ SET_SUMMIT: () => (/* binding */ SET_SUMMIT),
|
|
44
|
+
/* harmony export */ SET_USER: () => (/* binding */ SET_USER),
|
|
45
|
+
/* harmony export */ START_LOADING_IDP_PROFILE: () => (/* binding */ START_LOADING_IDP_PROFILE),
|
|
46
|
+
/* harmony export */ STOP_LOADING_IDP_PROFILE: () => (/* binding */ STOP_LOADING_IDP_PROFILE),
|
|
47
|
+
/* harmony export */ TICKET_ATTENDEE_KEYS: () => (/* binding */ TICKET_ATTENDEE_KEYS),
|
|
48
|
+
/* harmony export */ UPDATE_IDP_PROFILE: () => (/* binding */ UPDATE_IDP_PROFILE),
|
|
49
|
+
/* harmony export */ getSortDirection: () => (/* binding */ getSortDirection),
|
|
50
|
+
/* harmony export */ getTicketsByOrder: () => (/* binding */ getTicketsByOrder),
|
|
51
|
+
/* harmony export */ getUserOrders: () => (/* binding */ getUserOrders),
|
|
52
|
+
/* harmony export */ getUserTickets: () => (/* binding */ getUserTickets),
|
|
53
|
+
/* harmony export */ parseFilter: () => (/* binding */ parseFilter),
|
|
54
|
+
/* harmony export */ refundTicket: () => (/* binding */ refundTicket),
|
|
55
|
+
/* harmony export */ resendNotification: () => (/* binding */ resendNotification),
|
|
56
|
+
/* harmony export */ resetFilter: () => (/* binding */ resetFilter),
|
|
57
|
+
/* harmony export */ resetState: () => (/* binding */ resetState),
|
|
58
|
+
/* harmony export */ setActiveOrderId: () => (/* binding */ setActiveOrderId),
|
|
59
|
+
/* harmony export */ setSummit: () => (/* binding */ setSummit),
|
|
60
|
+
/* harmony export */ setUser: () => (/* binding */ setUser),
|
|
61
|
+
/* harmony export */ updateProfile: () => (/* binding */ updateProfile)
|
|
62
|
+
/* harmony export */ });
|
|
63
|
+
/* harmony import */ var _utils_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/auth */ "./src/utils/auth.js");
|
|
64
|
+
/* harmony import */ var openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! openstack-uicore-foundation/lib/utils/actions */ "openstack-uicore-foundation/lib/utils/actions");
|
|
65
|
+
/* harmony import */ var openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__);
|
|
66
|
+
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/constants */ "./src/utils/constants.js");
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
const RESET_STATE = "RESET_STATE";
|
|
71
|
+
const RESET_FILTER = "RESET_FILTER";
|
|
72
|
+
|
|
73
|
+
// ORDERS CONSTS
|
|
74
|
+
const GET_USER_ORDERS = "GET_ORDERS";
|
|
75
|
+
const REFUND_ORDER = "REFUND_ORDER";
|
|
76
|
+
const SET_ACTIVE_ORDER_ID = "SET_ACTIVE_ORDER_ID";
|
|
77
|
+
const FILTER_USER_ORDERS = "FILTER_USER_ORDERS";
|
|
78
|
+
|
|
79
|
+
// TICKETS CONSTS
|
|
80
|
+
const GET_TICKETS = "GET_TICKETS";
|
|
81
|
+
const ASSIGN_TICKET = "ASSIGN_TICKET";
|
|
82
|
+
const REMOVE_TICKET_ATTENDEE = "REMOVE_TICKET_ATTENDEE";
|
|
83
|
+
const REFUND_TICKET = "REFUND_TICKET";
|
|
84
|
+
const RESEND_NOTIFICATION = "RESEND_NOTIFICATION";
|
|
85
|
+
const GET_TICKETS_BY_ORDER = "GET_TICKETS_BY_ORDER";
|
|
86
|
+
const GET_TICKETS_BY_ORDER_ERROR = "GET_TICKETS_BY_ORDER_ERROR";
|
|
87
|
+
const GET_ORDER_TICKET_DETAILS = "GET_ORDER_TICKET_DETAILS";
|
|
88
|
+
const GET_TICKET_DETAILS = "GET_TICKET_DETAILS";
|
|
89
|
+
const TICKET_ATTENDEE_KEYS = {
|
|
90
|
+
email: "attendee_email",
|
|
91
|
+
firstName: "attendee_first_name",
|
|
92
|
+
lastName: "attendee_last_name",
|
|
93
|
+
company: "attendee_company",
|
|
94
|
+
disclaimerAccepted: "disclaimer_accepted",
|
|
95
|
+
extraQuestions: "extra_questions"
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// USER CONTS
|
|
99
|
+
const START_LOADING_IDP_PROFILE = "START_LOADING_IDP_PROFILE";
|
|
100
|
+
const STOP_LOADING_IDP_PROFILE = "STOP_LOADING_IDP_PROFILE";
|
|
101
|
+
const UPDATE_IDP_PROFILE = "UPDATE_IDP_PROFILE";
|
|
102
|
+
const SET_USER = "SET_USER";
|
|
103
|
+
|
|
104
|
+
// SUMMIT CONSTS
|
|
105
|
+
const SET_SUMMIT = "SET_SUMMIT";
|
|
106
|
+
const GET_MAIN_EXTRA_QUESTIONS = "GET_MAIN_EXTRA_QUESTIONS";
|
|
107
|
+
const RECEIVE_MARKETING_SETTINGS = "RECEIVE_MARKETING_SETTINGS";
|
|
108
|
+
const CLEAR_MARKETING_SETTINGS = "CLEAR_MARKETING_SETTINGS";
|
|
109
|
+
const resetState = () => dispatch => {
|
|
110
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(RESET_STATE)({}));
|
|
111
|
+
};
|
|
112
|
+
const resetFilter = () => dispatch => {
|
|
113
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(RESET_FILTER)({}));
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// FILTER / SORT CONSTANTS
|
|
117
|
+
const FILTER_VAR_DATE = "FILTER_VAR_DATE";
|
|
118
|
+
const FILTER_VAR_ORDER_NUMBER = "FILTER_VAR_ORDER_NUMBER";
|
|
119
|
+
|
|
120
|
+
// FILTER/SORT ACTIONS
|
|
121
|
+
const parseFilter = filterObj => {
|
|
122
|
+
const filter = [];
|
|
123
|
+
if (filterObj.type === FILTER_VAR_DATE) {
|
|
124
|
+
filter.push(`${filterObj.name}[]${filterObj.lower}&&${filterObj.upper}`);
|
|
125
|
+
}
|
|
126
|
+
if (filterObj.type === FILTER_VAR_ORDER_NUMBER) {
|
|
127
|
+
filter.push(`${filterObj.name}=@${filterObj.value}`);
|
|
128
|
+
}
|
|
129
|
+
return filter;
|
|
130
|
+
};
|
|
131
|
+
const getSortDirection = direction => direction === "asc" ? "+" : "-";
|
|
132
|
+
|
|
133
|
+
// ORDERS ACTIONS
|
|
134
|
+
const getUserOrders = _ref => {
|
|
135
|
+
let {
|
|
136
|
+
page = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_PAGE,
|
|
137
|
+
perPage = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_ITEMS_PER_PAGE,
|
|
138
|
+
filter = {},
|
|
139
|
+
sort = {},
|
|
140
|
+
next = false
|
|
141
|
+
} = _ref;
|
|
142
|
+
return async (dispatch, getState, _ref2) => {
|
|
143
|
+
let {
|
|
144
|
+
apiBaseUrl
|
|
145
|
+
} = _ref2;
|
|
146
|
+
const {
|
|
147
|
+
widgetState: {
|
|
148
|
+
summit
|
|
149
|
+
}
|
|
150
|
+
} = getState();
|
|
151
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
152
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
153
|
+
const params = {
|
|
154
|
+
access_token: accessToken,
|
|
155
|
+
order: "-id",
|
|
156
|
+
"filter[]": ["status==Paid"],
|
|
157
|
+
relations: "none",
|
|
158
|
+
page: next ? page + _utils_constants__WEBPACK_IMPORTED_MODULE_2__.ONE_PAGE_NEXT : page,
|
|
159
|
+
per_page: perPage
|
|
160
|
+
};
|
|
161
|
+
if (Object.keys(filter).length > 0) {
|
|
162
|
+
const filters = parseFilter(filter);
|
|
163
|
+
params["filter[]"] = [...params["filter[]"], ...filters];
|
|
164
|
+
}
|
|
165
|
+
if (Object.keys(sort).length > 0) {
|
|
166
|
+
params.order = `${getSortDirection(sort.direction)}${sort.name}`;
|
|
167
|
+
}
|
|
168
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.getRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(GET_USER_ORDERS), `${apiBaseUrl}/api/v1/summits/${summit.id}/orders/me`, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(payload => {
|
|
169
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
170
|
+
return payload;
|
|
171
|
+
}).catch(e => {
|
|
172
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
173
|
+
return e;
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
const setActiveOrderId = orderId => async dispatch => dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(SET_ACTIVE_ORDER_ID)(orderId));
|
|
178
|
+
|
|
179
|
+
// USER ACTIONS
|
|
180
|
+
const setUser = user => dispatch => dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(SET_USER)(user));
|
|
181
|
+
const updateProfile = profile => async (dispatch, _ref3) => {
|
|
182
|
+
let {
|
|
183
|
+
idpBaseUrl
|
|
184
|
+
} = _ref3;
|
|
185
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
186
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
187
|
+
const params = {
|
|
188
|
+
access_token: accessToken
|
|
189
|
+
};
|
|
190
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(START_LOADING_IDP_PROFILE)());
|
|
191
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.putRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(UPDATE_IDP_PROFILE),
|
|
192
|
+
// TODO: need IDP_BASE_URL
|
|
193
|
+
`${idpBaseUrl}/api/v1/users/me`, profile, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(payload => payload).catch(() => dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(STOP_LOADING_IDP_PROFILE)()));
|
|
194
|
+
};
|
|
195
|
+
|
|
196
|
+
// TICKET ACTIONS
|
|
197
|
+
|
|
198
|
+
const getUserTickets = _ref4 => {
|
|
199
|
+
let {
|
|
200
|
+
page = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_PAGE,
|
|
201
|
+
perPage = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_ITEMS_PER_PAGE
|
|
202
|
+
} = _ref4;
|
|
203
|
+
return async (dispatch, getState, _ref5) => {
|
|
204
|
+
let {
|
|
205
|
+
apiBaseUrl
|
|
206
|
+
} = _ref5;
|
|
207
|
+
const {
|
|
208
|
+
userState: {
|
|
209
|
+
userProfile
|
|
210
|
+
},
|
|
211
|
+
summit
|
|
212
|
+
} = getState();
|
|
213
|
+
if (!summit) return Promise.reject();
|
|
214
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
215
|
+
if (!userProfile.id) return Promise.reject();
|
|
216
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
217
|
+
const params = {
|
|
218
|
+
access_token: accessToken,
|
|
219
|
+
filter: "status==Paid",
|
|
220
|
+
expand: "order, owner, ticket_type",
|
|
221
|
+
order: "-id",
|
|
222
|
+
fields: "order.id,order.owner_first_name,order.owner_last_name,order.owner_email,owner.first_name,owner.last_name,owner.status",
|
|
223
|
+
relations: "none",
|
|
224
|
+
page,
|
|
225
|
+
per_page: perPage
|
|
226
|
+
};
|
|
227
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.getRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(GET_TICKETS), `${apiBaseUrl}/api/v1/summits/${summit.id}/orders/all/tickets/me`, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(() => {
|
|
228
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
229
|
+
}).catch(e => {
|
|
230
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
231
|
+
return e;
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
const getTicketsByOrder = _ref6 => {
|
|
236
|
+
let {
|
|
237
|
+
orderId,
|
|
238
|
+
page = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_PAGE,
|
|
239
|
+
perPage = _utils_constants__WEBPACK_IMPORTED_MODULE_2__.DEFAULT_ITEMS_PER_PAGE
|
|
240
|
+
} = _ref6;
|
|
241
|
+
return async (dispatch, getState, _ref7) => {
|
|
242
|
+
let {
|
|
243
|
+
apiBaseUrl
|
|
244
|
+
} = _ref7;
|
|
245
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
246
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
247
|
+
const params = {
|
|
248
|
+
access_token: accessToken,
|
|
249
|
+
expand: "refund_requests,owner,owner.extra_questions,badge,badge.features,ticket_type",
|
|
250
|
+
order: "+id",
|
|
251
|
+
page,
|
|
252
|
+
per_page: perPage
|
|
253
|
+
};
|
|
254
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.getRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(GET_TICKETS_BY_ORDER), `${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets`, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(payload => {
|
|
255
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
256
|
+
return payload;
|
|
257
|
+
}).catch(e => {
|
|
258
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
259
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(GET_TICKETS_BY_ORDER_ERROR));
|
|
260
|
+
return e;
|
|
261
|
+
});
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
const resendNotification = ticket => async (dispatch, _ref8) => {
|
|
265
|
+
let {
|
|
266
|
+
apiBaseUrl
|
|
267
|
+
} = _ref8;
|
|
268
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
269
|
+
const {
|
|
270
|
+
message
|
|
271
|
+
} = ticket;
|
|
272
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
273
|
+
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
274
|
+
const params = {
|
|
275
|
+
access_token: accessToken
|
|
276
|
+
};
|
|
277
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.putRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(RESEND_NOTIFICATION), `${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/attendee/reinvite`, {
|
|
278
|
+
message
|
|
279
|
+
}, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(() => {
|
|
280
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
281
|
+
}).catch(e => {
|
|
282
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
283
|
+
return e;
|
|
284
|
+
});
|
|
285
|
+
};
|
|
286
|
+
const refundTicket = _ref9 => {
|
|
287
|
+
let {
|
|
288
|
+
ticket
|
|
289
|
+
} = _ref9;
|
|
290
|
+
return async (dispatch, getState, _ref10) => {
|
|
291
|
+
let {
|
|
292
|
+
apiBaseUrl
|
|
293
|
+
} = _ref10;
|
|
294
|
+
const accessToken = await (0,_utils_auth__WEBPACK_IMPORTED_MODULE_0__.getAccessTokenSafely)().catch(() => Promise.reject());
|
|
295
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.startLoading)());
|
|
296
|
+
const {
|
|
297
|
+
orderState: {
|
|
298
|
+
current_page: orderPage
|
|
299
|
+
},
|
|
300
|
+
ticketState: {
|
|
301
|
+
current_page: ticketPage
|
|
302
|
+
}
|
|
303
|
+
} = getState();
|
|
304
|
+
const orderId = ticket.order ? ticket.order.id : ticket.order_id;
|
|
305
|
+
const params = {
|
|
306
|
+
access_token: accessToken
|
|
307
|
+
};
|
|
308
|
+
return (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.deleteRequest)(null, (0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(REFUND_TICKET), `${apiBaseUrl}/api/v1/summits/all/orders/${orderId}/tickets/${ticket.id}/refund`, {}, openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.authErrorHandler)(params)(dispatch).then(payload => {
|
|
309
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
310
|
+
if (ticket.order_id) {
|
|
311
|
+
dispatch(getUserOrders({
|
|
312
|
+
page: orderPage
|
|
313
|
+
}));
|
|
314
|
+
} else {
|
|
315
|
+
dispatch(getUserTickets({
|
|
316
|
+
page: ticketPage
|
|
317
|
+
}));
|
|
318
|
+
}
|
|
319
|
+
return payload;
|
|
320
|
+
}).catch(e => {
|
|
321
|
+
dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.stopLoading)());
|
|
322
|
+
throw e;
|
|
323
|
+
});
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
// SUMMIT ACTIONS
|
|
328
|
+
const setSummit = summit => async dispatch => dispatch((0,openstack_uicore_foundation_lib_utils_actions__WEBPACK_IMPORTED_MODULE_1__.createAction)(SET_SUMMIT)(summit));
|
|
329
|
+
|
|
330
|
+
/***/ }),
|
|
331
|
+
|
|
332
|
+
/***/ "./src/components/FilterSortSearch/Datepicker.js":
|
|
333
|
+
/*!*******************************************************!*\
|
|
334
|
+
!*** ./src/components/FilterSortSearch/Datepicker.js ***!
|
|
335
|
+
\*******************************************************/
|
|
336
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
337
|
+
|
|
338
|
+
__webpack_require__.r(__webpack_exports__);
|
|
339
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
340
|
+
/* harmony export */ "default": () => (/* binding */ BasicDatePicker)
|
|
341
|
+
/* harmony export */ });
|
|
342
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
343
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
344
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
345
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
346
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material/Stack */ "@mui/material/Stack");
|
|
347
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_2__);
|
|
348
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
349
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_3__);
|
|
350
|
+
/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dayjs */ "dayjs");
|
|
351
|
+
/* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_4__);
|
|
352
|
+
/* harmony import */ var _mui_x_date_pickers_AdapterDayjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/x-date-pickers/AdapterDayjs */ "@mui/x-date-pickers/AdapterDayjs");
|
|
353
|
+
/* harmony import */ var _mui_x_date_pickers_AdapterDayjs__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_mui_x_date_pickers_AdapterDayjs__WEBPACK_IMPORTED_MODULE_5__);
|
|
354
|
+
/* harmony import */ var _mui_x_date_pickers_LocalizationProvider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/x-date-pickers/LocalizationProvider */ "@mui/x-date-pickers/LocalizationProvider");
|
|
355
|
+
/* harmony import */ var _mui_x_date_pickers_LocalizationProvider__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_mui_x_date_pickers_LocalizationProvider__WEBPACK_IMPORTED_MODULE_6__);
|
|
356
|
+
/* harmony import */ var _mui_x_date_pickers_DatePicker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mui/x-date-pickers/DatePicker */ "@mui/x-date-pickers/DatePicker");
|
|
357
|
+
/* harmony import */ var _mui_x_date_pickers_DatePicker__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_mui_x_date_pickers_DatePicker__WEBPACK_IMPORTED_MODULE_7__);
|
|
358
|
+
/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @mui/icons-material/Close */ "@mui/icons-material/Close");
|
|
359
|
+
/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_8__);
|
|
360
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../actions */ "./src/actions.js");
|
|
361
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js");
|
|
362
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/FilterSortSearch/styles.module.scss");
|
|
363
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
364
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__);
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
|
|
378
|
+
function BasicDatePicker(_ref) {
|
|
379
|
+
let {
|
|
380
|
+
onFilter,
|
|
381
|
+
onReset
|
|
382
|
+
} = _ref;
|
|
383
|
+
const {
|
|
384
|
+
t
|
|
385
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_3__.useTranslation)();
|
|
386
|
+
const now = dayjs__WEBPACK_IMPORTED_MODULE_4___default()();
|
|
387
|
+
const [dateValue, setDateValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(now);
|
|
388
|
+
const onDateChange = val => {
|
|
389
|
+
setDateValue(val);
|
|
390
|
+
const date = new Date(val.$d);
|
|
391
|
+
const {
|
|
392
|
+
lower,
|
|
393
|
+
upper
|
|
394
|
+
} = (0,_utils__WEBPACK_IMPORTED_MODULE_10__.getEpochLowerUpperInSeconds)(date);
|
|
395
|
+
onFilter({
|
|
396
|
+
type: _actions__WEBPACK_IMPORTED_MODULE_9__.FILTER_VAR_DATE,
|
|
397
|
+
name: "created",
|
|
398
|
+
date,
|
|
399
|
+
lower,
|
|
400
|
+
upper
|
|
401
|
+
});
|
|
402
|
+
};
|
|
403
|
+
const onResetAction = () => {
|
|
404
|
+
onReset();
|
|
405
|
+
setDateValue(now);
|
|
406
|
+
};
|
|
407
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.Fragment, {
|
|
408
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", {
|
|
409
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.filterDateLabel,
|
|
410
|
+
children: t("filter.purchased_on")
|
|
411
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)((_mui_material_Stack__WEBPACK_IMPORTED_MODULE_2___default()), {
|
|
412
|
+
alignItems: "center",
|
|
413
|
+
direction: "row",
|
|
414
|
+
sx: {
|
|
415
|
+
pt: 2,
|
|
416
|
+
pb: 2
|
|
417
|
+
},
|
|
418
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.datePickerContainer,
|
|
419
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)((_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_8___default()), {
|
|
420
|
+
fontSize: "large",
|
|
421
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.datepickerClose,
|
|
422
|
+
onClick: onResetAction
|
|
423
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_mui_x_date_pickers_LocalizationProvider__WEBPACK_IMPORTED_MODULE_6__.LocalizationProvider, {
|
|
424
|
+
dateAdapter: _mui_x_date_pickers_AdapterDayjs__WEBPACK_IMPORTED_MODULE_5__.AdapterDayjs,
|
|
425
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_mui_x_date_pickers_DatePicker__WEBPACK_IMPORTED_MODULE_7__.DatePicker, {
|
|
426
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.calendarDisplay,
|
|
427
|
+
onChange: onDateChange,
|
|
428
|
+
value: dateValue
|
|
429
|
+
})
|
|
430
|
+
})]
|
|
431
|
+
})]
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
BasicDatePicker.propTypes = {
|
|
435
|
+
onFilter: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
436
|
+
onReset: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
/***/ }),
|
|
440
|
+
|
|
441
|
+
/***/ "./src/components/FilterSortSearch/Filter.js":
|
|
442
|
+
/*!***************************************************!*\
|
|
443
|
+
!*** ./src/components/FilterSortSearch/Filter.js ***!
|
|
444
|
+
\***************************************************/
|
|
445
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
446
|
+
|
|
447
|
+
__webpack_require__.r(__webpack_exports__);
|
|
448
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
449
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
450
|
+
/* harmony export */ });
|
|
451
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
452
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
453
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
454
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
455
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material/Stack */ "@mui/material/Stack");
|
|
456
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_2__);
|
|
457
|
+
/* harmony import */ var _mui_icons_material_FilterList__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/icons-material/FilterList */ "@mui/icons-material/FilterList");
|
|
458
|
+
/* harmony import */ var _mui_icons_material_FilterList__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_FilterList__WEBPACK_IMPORTED_MODULE_3__);
|
|
459
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
460
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_4__);
|
|
461
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
462
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_5__);
|
|
463
|
+
/* harmony import */ var _Datepicker__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Datepicker */ "./src/components/FilterSortSearch/Datepicker.js");
|
|
464
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/FilterSortSearch/styles.module.scss");
|
|
465
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
466
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__);
|
|
467
|
+
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
function Filter(_ref) {
|
|
477
|
+
let {
|
|
478
|
+
onFilter,
|
|
479
|
+
onReset
|
|
480
|
+
} = _ref;
|
|
481
|
+
const {
|
|
482
|
+
t
|
|
483
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_5__.useTranslation)();
|
|
484
|
+
const [showFilterList, setShowFilterList] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
485
|
+
const [showDatepicker, setShowDatepicker] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
486
|
+
const [filterNumActive, setFilterNumActive] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
487
|
+
const filterRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
488
|
+
const handleFilterClickOutside = event => {
|
|
489
|
+
if (filterRef.current && !filterRef.current.contains(event.target)) {
|
|
490
|
+
if (showFilterList) {
|
|
491
|
+
setShowFilterList(false);
|
|
492
|
+
setShowDatepicker(false);
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
};
|
|
496
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
497
|
+
document.addEventListener("click", handleFilterClickOutside, false);
|
|
498
|
+
return () => {
|
|
499
|
+
document.removeEventListener("click", handleFilterClickOutside, false);
|
|
500
|
+
};
|
|
501
|
+
}, [showFilterList]);
|
|
502
|
+
const toggle = () => {
|
|
503
|
+
setShowFilterList(!showFilterList);
|
|
504
|
+
setShowDatepicker(!showDatepicker);
|
|
505
|
+
};
|
|
506
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Box, {
|
|
507
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.filterContainer,
|
|
508
|
+
ref: filterRef,
|
|
509
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)((_mui_material_Stack__WEBPACK_IMPORTED_MODULE_2___default()), {
|
|
510
|
+
alignItems: "center",
|
|
511
|
+
direction: "row",
|
|
512
|
+
sx: {
|
|
513
|
+
pt: 2,
|
|
514
|
+
pb: 2
|
|
515
|
+
},
|
|
516
|
+
onClick: toggle,
|
|
517
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)((_mui_icons_material_FilterList__WEBPACK_IMPORTED_MODULE_3___default()), {
|
|
518
|
+
fontSize: "large",
|
|
519
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.filterIcon
|
|
520
|
+
}), filterNumActive && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
|
|
521
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.filterNumActive,
|
|
522
|
+
children: "1"
|
|
523
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
|
|
524
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.filterLabel,
|
|
525
|
+
children: t("filter.filter")
|
|
526
|
+
})]
|
|
527
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Box, {
|
|
528
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.filterListContainer} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.container} ${showFilterList ? _styles_module_scss__WEBPACK_IMPORTED_MODULE_7__.showDatePicker : ""}`,
|
|
529
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Datepicker__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
|
530
|
+
onReset: () => {
|
|
531
|
+
onReset();
|
|
532
|
+
setFilterNumActive(false);
|
|
533
|
+
toggle();
|
|
534
|
+
},
|
|
535
|
+
onFilter: filter => {
|
|
536
|
+
onFilter(filter);
|
|
537
|
+
setFilterNumActive(true);
|
|
538
|
+
}
|
|
539
|
+
})
|
|
540
|
+
})]
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
Filter.propTypes = {
|
|
544
|
+
onFilter: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)
|
|
545
|
+
};
|
|
546
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Filter);
|
|
547
|
+
|
|
548
|
+
/***/ }),
|
|
549
|
+
|
|
550
|
+
/***/ "./src/components/FilterSortSearch/Search.js":
|
|
551
|
+
/*!***************************************************!*\
|
|
552
|
+
!*** ./src/components/FilterSortSearch/Search.js ***!
|
|
553
|
+
\***************************************************/
|
|
554
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
555
|
+
|
|
556
|
+
__webpack_require__.r(__webpack_exports__);
|
|
557
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
558
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
559
|
+
/* harmony export */ });
|
|
560
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
561
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
562
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
563
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
564
|
+
/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material/styles */ "@mui/material/styles");
|
|
565
|
+
/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material_styles__WEBPACK_IMPORTED_MODULE_2__);
|
|
566
|
+
/* harmony import */ var _mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/icons-material/Search */ "@mui/icons-material/Search");
|
|
567
|
+
/* harmony import */ var _mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_3__);
|
|
568
|
+
/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/icons-material/Close */ "@mui/icons-material/Close");
|
|
569
|
+
/* harmony import */ var _mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_4__);
|
|
570
|
+
/* harmony import */ var _mui_material_InputBase__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material/InputBase */ "@mui/material/InputBase");
|
|
571
|
+
/* harmony import */ var _mui_material_InputBase__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_mui_material_InputBase__WEBPACK_IMPORTED_MODULE_5__);
|
|
572
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
573
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_6__);
|
|
574
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
575
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_7__);
|
|
576
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../actions */ "./src/actions.js");
|
|
577
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
578
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__);
|
|
579
|
+
|
|
580
|
+
|
|
581
|
+
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
|
|
585
|
+
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
|
|
589
|
+
const SearchContainer = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_2__.styled)("div")(() => ({
|
|
590
|
+
position: "relative",
|
|
591
|
+
marginRight: "0",
|
|
592
|
+
marginLeft: "0",
|
|
593
|
+
width: "100%",
|
|
594
|
+
display: "block"
|
|
595
|
+
}));
|
|
596
|
+
const SearchIconWrapper = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_2__.styled)("div")(() => ({
|
|
597
|
+
height: "100%",
|
|
598
|
+
position: "absolute",
|
|
599
|
+
display: "flex",
|
|
600
|
+
alignItems: "center",
|
|
601
|
+
justifyContent: "center"
|
|
602
|
+
}));
|
|
603
|
+
const StyledInputBase = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_2__.styled)((_mui_material_InputBase__WEBPACK_IMPORTED_MODULE_5___default()))(() => ({
|
|
604
|
+
color: "inherit",
|
|
605
|
+
borderBottom: "1px solid rgba(0, 0, 0, 0.42)",
|
|
606
|
+
paddingLeft: "25px",
|
|
607
|
+
paddingRight: "25px",
|
|
608
|
+
fontSize: "1em"
|
|
609
|
+
}));
|
|
610
|
+
const CloseIconWrapper = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_2__.styled)((_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_4___default()))(() => ({
|
|
611
|
+
padding: "2px",
|
|
612
|
+
fontSize: "1.5em",
|
|
613
|
+
height: "100%",
|
|
614
|
+
position: "absolute",
|
|
615
|
+
top: "0",
|
|
616
|
+
right: "0",
|
|
617
|
+
display: "flex",
|
|
618
|
+
alignItems: "center",
|
|
619
|
+
justifyContent: "center",
|
|
620
|
+
cursor: "pointer",
|
|
621
|
+
zIndex: "1000"
|
|
622
|
+
}));
|
|
623
|
+
function Search(_ref) {
|
|
624
|
+
let {
|
|
625
|
+
onSearch,
|
|
626
|
+
onReset
|
|
627
|
+
} = _ref;
|
|
628
|
+
const {
|
|
629
|
+
t
|
|
630
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_7__.useTranslation)();
|
|
631
|
+
const [showClose, setShowClose] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
632
|
+
const [searchValue, setSearchValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
|
633
|
+
const onKeyDown = event => {
|
|
634
|
+
const {
|
|
635
|
+
key,
|
|
636
|
+
nativeEvent: {
|
|
637
|
+
target: {
|
|
638
|
+
value
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
} = event;
|
|
642
|
+
if (key === "Enter") {
|
|
643
|
+
onSearch({
|
|
644
|
+
value,
|
|
645
|
+
name: "number",
|
|
646
|
+
type: _actions__WEBPACK_IMPORTED_MODULE_8__.FILTER_VAR_ORDER_NUMBER
|
|
647
|
+
});
|
|
648
|
+
setShowClose(true);
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
const resetSearch = () => {
|
|
652
|
+
setSearchValue("");
|
|
653
|
+
setShowClose(false);
|
|
654
|
+
onReset();
|
|
655
|
+
};
|
|
656
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__.Box, {
|
|
657
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(SearchContainer, {
|
|
658
|
+
children: [showClose && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(CloseIconWrapper, {
|
|
659
|
+
onClick: resetSearch,
|
|
660
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)((_mui_icons_material_Close__WEBPACK_IMPORTED_MODULE_4___default()), {})
|
|
661
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(SearchIconWrapper, {
|
|
662
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)((_mui_icons_material_Search__WEBPACK_IMPORTED_MODULE_3___default()), {})
|
|
663
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(StyledInputBase, {
|
|
664
|
+
placeholder: t("order_search.order_number"),
|
|
665
|
+
inputProps: {
|
|
666
|
+
"aria-label": "search"
|
|
667
|
+
},
|
|
668
|
+
value: searchValue,
|
|
669
|
+
onChange: e => setSearchValue(e.target.value),
|
|
670
|
+
onKeyDown: onKeyDown
|
|
671
|
+
})]
|
|
672
|
+
})
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
Search.propTypes = {
|
|
676
|
+
onSearch: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
677
|
+
onReset: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)
|
|
678
|
+
};
|
|
679
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Search);
|
|
680
|
+
|
|
681
|
+
/***/ }),
|
|
682
|
+
|
|
683
|
+
/***/ "./src/components/FilterSortSearch/Sort.js":
|
|
684
|
+
/*!*************************************************!*\
|
|
685
|
+
!*** ./src/components/FilterSortSearch/Sort.js ***!
|
|
686
|
+
\*************************************************/
|
|
687
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
688
|
+
|
|
689
|
+
__webpack_require__.r(__webpack_exports__);
|
|
690
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
691
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
692
|
+
/* harmony export */ });
|
|
693
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
694
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
695
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @mui/material/Stack */ "@mui/material/Stack");
|
|
696
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_1__);
|
|
697
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
698
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_2__);
|
|
699
|
+
/* harmony import */ var _mui_icons_material_ImportExport__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/icons-material/ImportExport */ "@mui/icons-material/ImportExport");
|
|
700
|
+
/* harmony import */ var _mui_icons_material_ImportExport__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_ImportExport__WEBPACK_IMPORTED_MODULE_3__);
|
|
701
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
702
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_4__);
|
|
703
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/FilterSortSearch/styles.module.scss");
|
|
704
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
705
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__);
|
|
706
|
+
|
|
707
|
+
|
|
708
|
+
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
|
|
713
|
+
function Sort(_ref) {
|
|
714
|
+
let {
|
|
715
|
+
onSort
|
|
716
|
+
} = _ref;
|
|
717
|
+
const {
|
|
718
|
+
t
|
|
719
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__.useTranslation)();
|
|
720
|
+
const [showSort, setShowSort] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
721
|
+
const sortRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
|
|
722
|
+
const handleSortClickOutside = event => {
|
|
723
|
+
if (sortRef.current && !sortRef.current.contains(event.target)) {
|
|
724
|
+
setShowSort(false);
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
728
|
+
document.addEventListener("click", handleSortClickOutside, false);
|
|
729
|
+
return () => {
|
|
730
|
+
document.removeEventListener("click", handleSortClickOutside, false);
|
|
731
|
+
};
|
|
732
|
+
}, [showSort]);
|
|
733
|
+
const toggle = () => {
|
|
734
|
+
setShowSort(!showSort);
|
|
735
|
+
};
|
|
736
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
737
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.sortContainer,
|
|
738
|
+
onClick: toggle,
|
|
739
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)((_mui_material_Stack__WEBPACK_IMPORTED_MODULE_1___default()), {
|
|
740
|
+
ref: sortRef,
|
|
741
|
+
alignItems: "center",
|
|
742
|
+
direction: "row",
|
|
743
|
+
sx: {
|
|
744
|
+
pt: 2,
|
|
745
|
+
pb: 2
|
|
746
|
+
},
|
|
747
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)((_mui_icons_material_ImportExport__WEBPACK_IMPORTED_MODULE_3___default()), {
|
|
748
|
+
fontSize: "large",
|
|
749
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.sortIcon
|
|
750
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
|
|
751
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.sortLabel,
|
|
752
|
+
children: t("sort.sort")
|
|
753
|
+
})]
|
|
754
|
+
}), showSort && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
755
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.sortListContainer} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.container}`,
|
|
756
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Button, {
|
|
757
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.label,
|
|
758
|
+
onClick: () => onSort("desc"),
|
|
759
|
+
children: t("sort.new_first")
|
|
760
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Button, {
|
|
761
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.label,
|
|
762
|
+
onClick: () => onSort("asc"),
|
|
763
|
+
children: t("sort.old_first")
|
|
764
|
+
})]
|
|
765
|
+
})]
|
|
766
|
+
});
|
|
767
|
+
}
|
|
768
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Sort);
|
|
769
|
+
|
|
770
|
+
/***/ }),
|
|
771
|
+
|
|
772
|
+
/***/ "./src/components/FilterSortSearch/index.js":
|
|
773
|
+
/*!**************************************************!*\
|
|
774
|
+
!*** ./src/components/FilterSortSearch/index.js ***!
|
|
775
|
+
\**************************************************/
|
|
776
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
777
|
+
|
|
778
|
+
__webpack_require__.r(__webpack_exports__);
|
|
779
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
780
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
781
|
+
/* harmony export */ });
|
|
782
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
783
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
784
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
785
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
786
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
787
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_2__);
|
|
788
|
+
/* harmony import */ var _Filter__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Filter */ "./src/components/FilterSortSearch/Filter.js");
|
|
789
|
+
/* harmony import */ var _Sort__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Sort */ "./src/components/FilterSortSearch/Sort.js");
|
|
790
|
+
/* harmony import */ var _Search__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Search */ "./src/components/FilterSortSearch/Search.js");
|
|
791
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/FilterSortSearch/styles.module.scss");
|
|
792
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
793
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__);
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
function FilterSortSearch(_ref) {
|
|
803
|
+
let {
|
|
804
|
+
onFilter,
|
|
805
|
+
onSort,
|
|
806
|
+
onSearch,
|
|
807
|
+
onReset
|
|
808
|
+
} = _ref;
|
|
809
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
810
|
+
container: true,
|
|
811
|
+
justify: "flex-end",
|
|
812
|
+
alignItems: "center",
|
|
813
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
814
|
+
item: true,
|
|
815
|
+
xs: 6,
|
|
816
|
+
container: true,
|
|
817
|
+
padding: 1,
|
|
818
|
+
gap: 2,
|
|
819
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.filterSortContainer,
|
|
820
|
+
sx: {
|
|
821
|
+
pt: 2,
|
|
822
|
+
pb: 2
|
|
823
|
+
},
|
|
824
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
825
|
+
item: true,
|
|
826
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Filter__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
827
|
+
onFilter: onFilter,
|
|
828
|
+
onReset: onReset
|
|
829
|
+
})
|
|
830
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
831
|
+
item: true,
|
|
832
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Sort__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
|
833
|
+
onSort: onSort
|
|
834
|
+
})
|
|
835
|
+
})]
|
|
836
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
837
|
+
item: true,
|
|
838
|
+
xs: 6,
|
|
839
|
+
container: true,
|
|
840
|
+
justifyContent: "flex-end",
|
|
841
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Search__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
|
842
|
+
onSearch: onSearch,
|
|
843
|
+
onReset: onReset
|
|
844
|
+
})
|
|
845
|
+
})]
|
|
846
|
+
});
|
|
847
|
+
}
|
|
848
|
+
FilterSortSearch.propTypes = {
|
|
849
|
+
onFilter: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
850
|
+
onSort: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
851
|
+
onSearch: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
852
|
+
onReset: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)
|
|
853
|
+
};
|
|
854
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FilterSortSearch);
|
|
855
|
+
|
|
856
|
+
/***/ }),
|
|
857
|
+
|
|
858
|
+
/***/ "./src/components/MyOrdersTickets.js":
|
|
859
|
+
/*!*******************************************!*\
|
|
860
|
+
!*** ./src/components/MyOrdersTickets.js ***!
|
|
861
|
+
\*******************************************/
|
|
862
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
863
|
+
|
|
864
|
+
__webpack_require__.r(__webpack_exports__);
|
|
865
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
866
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
867
|
+
/* harmony export */ });
|
|
868
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
869
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
870
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
871
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
|
|
872
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
873
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
874
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
875
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
876
|
+
/* harmony import */ var react_infinite_scroll_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-infinite-scroll-component */ "react-infinite-scroll-component");
|
|
877
|
+
/* harmony import */ var react_infinite_scroll_component__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_infinite_scroll_component__WEBPACK_IMPORTED_MODULE_4__);
|
|
878
|
+
/* harmony import */ var _FilterSortSearch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FilterSortSearch */ "./src/components/FilterSortSearch/index.js");
|
|
879
|
+
/* harmony import */ var _OrdersList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OrdersList */ "./src/components/OrdersList/index.js");
|
|
880
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils */ "./src/utils/index.js");
|
|
881
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../actions */ "./src/actions.js");
|
|
882
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/styles.module.scss");
|
|
883
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
884
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__);
|
|
885
|
+
|
|
886
|
+
|
|
887
|
+
|
|
888
|
+
|
|
889
|
+
|
|
890
|
+
|
|
891
|
+
|
|
892
|
+
|
|
893
|
+
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
function MyOrdersTickets() {
|
|
897
|
+
const {
|
|
898
|
+
t
|
|
899
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
900
|
+
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
|
|
901
|
+
const {
|
|
902
|
+
summit,
|
|
903
|
+
memberOrders,
|
|
904
|
+
orders_current_page,
|
|
905
|
+
orders_per_page,
|
|
906
|
+
orders_total
|
|
907
|
+
} = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useSelector)(state => state.widgetState || {}, react_redux__WEBPACK_IMPORTED_MODULE_1__.shallowEqual);
|
|
908
|
+
const [hasMore, setHasMore] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(true);
|
|
909
|
+
const [searchNext, setSearchNext] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
910
|
+
const [filter, setFilter] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
|
|
911
|
+
const [sort, setSort] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({});
|
|
912
|
+
const onReset = () => {
|
|
913
|
+
setSort({});
|
|
914
|
+
setFilter({});
|
|
915
|
+
setSearchNext(false);
|
|
916
|
+
dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_8__.resetFilter)());
|
|
917
|
+
};
|
|
918
|
+
const fetchData = async () => {
|
|
919
|
+
dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_8__.getUserOrders)({
|
|
920
|
+
page: orders_current_page,
|
|
921
|
+
perPage: orders_per_page,
|
|
922
|
+
next: searchNext,
|
|
923
|
+
filter,
|
|
924
|
+
sort
|
|
925
|
+
})).then(res => {
|
|
926
|
+
if (res.response?.data?.length > orders_per_page && memberOrders.length === orders_total) setHasMore(false);
|
|
927
|
+
});
|
|
928
|
+
};
|
|
929
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
930
|
+
fetchData();
|
|
931
|
+
}, [filter, sort, searchNext]);
|
|
932
|
+
const onFilter = filter => {
|
|
933
|
+
setSort({});
|
|
934
|
+
setFilter(filter);
|
|
935
|
+
};
|
|
936
|
+
const onSort = direction => {
|
|
937
|
+
setFilter({});
|
|
938
|
+
setSort({
|
|
939
|
+
direction,
|
|
940
|
+
name: "created"
|
|
941
|
+
});
|
|
942
|
+
};
|
|
943
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.Fragment, {
|
|
944
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_FilterSortSearch__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
|
945
|
+
onFilter: onFilter,
|
|
946
|
+
onSort: onSort,
|
|
947
|
+
onSearch: onFilter,
|
|
948
|
+
onReset: onReset
|
|
949
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Box, {
|
|
950
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_9__.widgetHeader,
|
|
951
|
+
sx: {
|
|
952
|
+
padding: {
|
|
953
|
+
xs: 2,
|
|
954
|
+
md: 0,
|
|
955
|
+
lg: 0
|
|
956
|
+
}
|
|
957
|
+
},
|
|
958
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("h2", {
|
|
959
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_9__.summitTitleDate,
|
|
960
|
+
children: summit?.name
|
|
961
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("h2", {
|
|
962
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_9__.summitTitleDate,
|
|
963
|
+
children: (0,_utils__WEBPACK_IMPORTED_MODULE_7__.getSummitFormattedDate)(summit)
|
|
964
|
+
})]
|
|
965
|
+
}), memberOrders.length ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)((react_infinite_scroll_component__WEBPACK_IMPORTED_MODULE_4___default()), {
|
|
966
|
+
dataLength: memberOrders.length,
|
|
967
|
+
next: () => setSearchNext(true),
|
|
968
|
+
hasMore: hasMore,
|
|
969
|
+
scrollThreshold: 1,
|
|
970
|
+
children: memberOrders?.map(order => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_OrdersList__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
|
971
|
+
order: order,
|
|
972
|
+
summit: summit
|
|
973
|
+
}, order.id))
|
|
974
|
+
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Box, {
|
|
975
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_9__.noOrdersFound,
|
|
976
|
+
children: t("orders.no_orders")
|
|
977
|
+
})]
|
|
978
|
+
});
|
|
979
|
+
}
|
|
980
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyOrdersTickets);
|
|
981
|
+
|
|
982
|
+
/***/ }),
|
|
983
|
+
|
|
984
|
+
/***/ "./src/components/OrderSummary/OrderSummaryTable.js":
|
|
985
|
+
/*!**********************************************************!*\
|
|
986
|
+
!*** ./src/components/OrderSummary/OrderSummaryTable.js ***!
|
|
987
|
+
\**********************************************************/
|
|
988
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
989
|
+
|
|
990
|
+
__webpack_require__.r(__webpack_exports__);
|
|
991
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
992
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
993
|
+
/* harmony export */ });
|
|
994
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
995
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
996
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
997
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
998
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
999
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
1000
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1001
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
1002
|
+
/* harmony import */ var _mui_material_Divider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material/Divider */ "@mui/material/Divider");
|
|
1003
|
+
/* harmony import */ var _mui_material_Divider__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Divider__WEBPACK_IMPORTED_MODULE_4__);
|
|
1004
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js");
|
|
1005
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrderSummary/styles.module.scss");
|
|
1006
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1007
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__);
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
function OrderSummaryTable(_ref) {
|
|
1017
|
+
let {
|
|
1018
|
+
order,
|
|
1019
|
+
summit,
|
|
1020
|
+
tickets
|
|
1021
|
+
} = _ref;
|
|
1022
|
+
const {
|
|
1023
|
+
t
|
|
1024
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
1025
|
+
const {
|
|
1026
|
+
discountTotal,
|
|
1027
|
+
refundTotal,
|
|
1028
|
+
taxesTotal,
|
|
1029
|
+
amountTotal,
|
|
1030
|
+
ticketSummary
|
|
1031
|
+
} = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.calculateOrderTotals)({
|
|
1032
|
+
order,
|
|
1033
|
+
summit,
|
|
1034
|
+
tickets
|
|
1035
|
+
});
|
|
1036
|
+
const hundred = 100;
|
|
1037
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Box, {
|
|
1038
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.orderSummaryTable,
|
|
1039
|
+
children: [ticketSummary?.length > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
|
|
1040
|
+
children: ticketSummary.map(ticket => {
|
|
1041
|
+
const ticketTotal = ticket.qty * (ticket.ticket_type.cost * hundred) / hundred;
|
|
1042
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1043
|
+
container: true,
|
|
1044
|
+
sx: {
|
|
1045
|
+
pb: 1
|
|
1046
|
+
},
|
|
1047
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1048
|
+
xs: 8,
|
|
1049
|
+
item: true,
|
|
1050
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("span", {
|
|
1051
|
+
children: ["x", ticket.qty, " ", ticket.ticket_type.name]
|
|
1052
|
+
})
|
|
1053
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1054
|
+
xs: 4,
|
|
1055
|
+
item: true,
|
|
1056
|
+
align: "right",
|
|
1057
|
+
children: (0,_utils__WEBPACK_IMPORTED_MODULE_5__.formatCurrency)(ticketTotal, {
|
|
1058
|
+
currency: order.currency
|
|
1059
|
+
})
|
|
1060
|
+
})]
|
|
1061
|
+
}, `tixorder_${ticket.ticket_type.created}`);
|
|
1062
|
+
})
|
|
1063
|
+
}), order.discount_amount > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1064
|
+
container: true,
|
|
1065
|
+
sx: {
|
|
1066
|
+
pb: 1
|
|
1067
|
+
},
|
|
1068
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1069
|
+
xs: 8,
|
|
1070
|
+
item: true,
|
|
1071
|
+
children: t("order_summary.discounts")
|
|
1072
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1073
|
+
xs: 4,
|
|
1074
|
+
item: true,
|
|
1075
|
+
align: "right",
|
|
1076
|
+
children: ["-", discountTotal]
|
|
1077
|
+
})]
|
|
1078
|
+
}), order.taxes_amount > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1079
|
+
container: true,
|
|
1080
|
+
sx: {
|
|
1081
|
+
pb: 1
|
|
1082
|
+
},
|
|
1083
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1084
|
+
xs: 8,
|
|
1085
|
+
item: true,
|
|
1086
|
+
children: t("order_summary.taxes")
|
|
1087
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1088
|
+
xs: 4,
|
|
1089
|
+
item: true,
|
|
1090
|
+
align: "right",
|
|
1091
|
+
children: taxesTotal
|
|
1092
|
+
})]
|
|
1093
|
+
}), order.status === "Paid" && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1094
|
+
container: true,
|
|
1095
|
+
sx: {
|
|
1096
|
+
pb: 1
|
|
1097
|
+
},
|
|
1098
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1099
|
+
xs: 8,
|
|
1100
|
+
item: true,
|
|
1101
|
+
children: t("order_summary.amount_paid")
|
|
1102
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1103
|
+
xs: 4,
|
|
1104
|
+
item: true,
|
|
1105
|
+
align: "right",
|
|
1106
|
+
children: ["-", amountTotal]
|
|
1107
|
+
})]
|
|
1108
|
+
}), refundTotal > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1109
|
+
container: true,
|
|
1110
|
+
sx: {
|
|
1111
|
+
pb: 1
|
|
1112
|
+
},
|
|
1113
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1114
|
+
xs: 8,
|
|
1115
|
+
item: true,
|
|
1116
|
+
children: t("order_summary.refunds")
|
|
1117
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1118
|
+
xs: 4,
|
|
1119
|
+
item: true,
|
|
1120
|
+
align: "right",
|
|
1121
|
+
children: refundTotal
|
|
1122
|
+
})]
|
|
1123
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)((_mui_material_Divider__WEBPACK_IMPORTED_MODULE_4___default()), {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1124
|
+
container: true,
|
|
1125
|
+
sx: {
|
|
1126
|
+
pt: 1,
|
|
1127
|
+
pb: 1
|
|
1128
|
+
},
|
|
1129
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1130
|
+
xs: 8,
|
|
1131
|
+
item: true,
|
|
1132
|
+
children: t("order_summary.total")
|
|
1133
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1134
|
+
xs: 4,
|
|
1135
|
+
item: true,
|
|
1136
|
+
align: "right",
|
|
1137
|
+
children: order.status === "Paid" ? "$0.00" : amountTotal
|
|
1138
|
+
})]
|
|
1139
|
+
})]
|
|
1140
|
+
});
|
|
1141
|
+
}
|
|
1142
|
+
OrderSummaryTable.propTypes = {
|
|
1143
|
+
order: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1144
|
+
currency: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
1145
|
+
discount_amount: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number),
|
|
1146
|
+
taxes_amount: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number),
|
|
1147
|
+
status: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
|
|
1148
|
+
}),
|
|
1149
|
+
summit: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
1150
|
+
tickets: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(Object)
|
|
1151
|
+
};
|
|
1152
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderSummaryTable);
|
|
1153
|
+
|
|
1154
|
+
/***/ }),
|
|
1155
|
+
|
|
1156
|
+
/***/ "./src/components/OrderSummary/RefundEmailSupport.js":
|
|
1157
|
+
/*!***********************************************************!*\
|
|
1158
|
+
!*** ./src/components/OrderSummary/RefundEmailSupport.js ***!
|
|
1159
|
+
\***********************************************************/
|
|
1160
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1161
|
+
|
|
1162
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1163
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1164
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1165
|
+
/* harmony export */ });
|
|
1166
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1167
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1168
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1169
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1170
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1171
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
1172
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1173
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
1174
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrderSummary/styles.module.scss");
|
|
1175
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1176
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
function RefundEmailSupport(_ref) {
|
|
1184
|
+
let {
|
|
1185
|
+
onRefundClick,
|
|
1186
|
+
onRefundDetailClick,
|
|
1187
|
+
onEmailSupportClick
|
|
1188
|
+
} = _ref;
|
|
1189
|
+
const {
|
|
1190
|
+
t
|
|
1191
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
1192
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
|
1193
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1194
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.orderSummaryButton,
|
|
1195
|
+
variant: "outlined",
|
|
1196
|
+
size: "large",
|
|
1197
|
+
onClick: onRefundClick,
|
|
1198
|
+
children: t("order_summary.request_refund")
|
|
1199
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1200
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.orderSummaryButton,
|
|
1201
|
+
variant: "outlined",
|
|
1202
|
+
size: "large",
|
|
1203
|
+
onClick: onRefundDetailClick,
|
|
1204
|
+
children: t("order_summary.refund_details")
|
|
1205
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1206
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.orderSummaryButton,
|
|
1207
|
+
variant: "outlined",
|
|
1208
|
+
size: "large",
|
|
1209
|
+
onClick: onEmailSupportClick,
|
|
1210
|
+
children: t("order_info.email_support")
|
|
1211
|
+
})]
|
|
1212
|
+
});
|
|
1213
|
+
}
|
|
1214
|
+
RefundEmailSupport.propTypes = {
|
|
1215
|
+
onRefundClick: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
1216
|
+
onRefundDetailClick: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func),
|
|
1217
|
+
onEmailSupportClick: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().func)
|
|
1218
|
+
};
|
|
1219
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefundEmailSupport);
|
|
1220
|
+
|
|
1221
|
+
/***/ }),
|
|
1222
|
+
|
|
1223
|
+
/***/ "./src/components/OrderSummary/index.js":
|
|
1224
|
+
/*!**********************************************!*\
|
|
1225
|
+
!*** ./src/components/OrderSummary/index.js ***!
|
|
1226
|
+
\**********************************************/
|
|
1227
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1228
|
+
|
|
1229
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1230
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1231
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1232
|
+
/* harmony export */ });
|
|
1233
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1234
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1235
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1236
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1237
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1238
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_2__);
|
|
1239
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1240
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_3__);
|
|
1241
|
+
/* harmony import */ var _OrderSummaryTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OrderSummaryTable */ "./src/components/OrderSummary/OrderSummaryTable.js");
|
|
1242
|
+
/* harmony import */ var _RefundEmailSupport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./RefundEmailSupport */ "./src/components/OrderSummary/RefundEmailSupport.js");
|
|
1243
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrderSummary/styles.module.scss");
|
|
1244
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1245
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__);
|
|
1246
|
+
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
|
|
1250
|
+
|
|
1251
|
+
|
|
1252
|
+
|
|
1253
|
+
|
|
1254
|
+
function OrderSummary(_ref) {
|
|
1255
|
+
let {
|
|
1256
|
+
order,
|
|
1257
|
+
summit,
|
|
1258
|
+
tickets
|
|
1259
|
+
} = _ref;
|
|
1260
|
+
const {
|
|
1261
|
+
t
|
|
1262
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_3__.useTranslation)();
|
|
1263
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
|
|
1264
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
1265
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.orderSummaryWrapper,
|
|
1266
|
+
sx: {
|
|
1267
|
+
pt: 4,
|
|
1268
|
+
px: 4
|
|
1269
|
+
},
|
|
1270
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("h3", {
|
|
1271
|
+
children: t("order_summary.order_summary")
|
|
1272
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
1273
|
+
container: true,
|
|
1274
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
1275
|
+
xs: 12,
|
|
1276
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.orderSummaryPurchasedInfo,
|
|
1277
|
+
sx: {
|
|
1278
|
+
pb: 3
|
|
1279
|
+
},
|
|
1280
|
+
item: true,
|
|
1281
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_OrderSummaryTable__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
|
1282
|
+
order: order,
|
|
1283
|
+
summit: summit,
|
|
1284
|
+
tickets: tickets
|
|
1285
|
+
})
|
|
1286
|
+
})
|
|
1287
|
+
})]
|
|
1288
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
1289
|
+
xs: 12,
|
|
1290
|
+
sx: {
|
|
1291
|
+
pb: 3
|
|
1292
|
+
},
|
|
1293
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_RefundEmailSupport__WEBPACK_IMPORTED_MODULE_5__["default"], {
|
|
1294
|
+
onRefundClick: () => {},
|
|
1295
|
+
onRefundDetailClick: () => {},
|
|
1296
|
+
onEmailSupportClick: () => {}
|
|
1297
|
+
})
|
|
1298
|
+
})]
|
|
1299
|
+
});
|
|
1300
|
+
}
|
|
1301
|
+
OrderSummary.propTypes = {
|
|
1302
|
+
order: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
1303
|
+
summit: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
1304
|
+
tickets: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(Object)
|
|
1305
|
+
};
|
|
1306
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderSummary);
|
|
1307
|
+
|
|
1308
|
+
/***/ }),
|
|
1309
|
+
|
|
1310
|
+
/***/ "./src/components/OrdersList/OrderListItem.js":
|
|
1311
|
+
/*!****************************************************!*\
|
|
1312
|
+
!*** ./src/components/OrdersList/OrderListItem.js ***!
|
|
1313
|
+
\****************************************************/
|
|
1314
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1315
|
+
|
|
1316
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1317
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1318
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1319
|
+
/* harmony export */ });
|
|
1320
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1321
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1322
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1323
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1324
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1325
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
1326
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1327
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
1328
|
+
/* harmony import */ var _OrderListTickets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OrderListTickets */ "./src/components/OrdersList/OrderListTickets.js");
|
|
1329
|
+
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/constants */ "./src/utils/constants.js");
|
|
1330
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrdersList/styles.module.scss");
|
|
1331
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1332
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__);
|
|
1333
|
+
|
|
1334
|
+
|
|
1335
|
+
|
|
1336
|
+
|
|
1337
|
+
|
|
1338
|
+
|
|
1339
|
+
|
|
1340
|
+
|
|
1341
|
+
function OrderListItem(_ref) {
|
|
1342
|
+
let {
|
|
1343
|
+
tickets,
|
|
1344
|
+
total,
|
|
1345
|
+
onPaginateClick,
|
|
1346
|
+
summit
|
|
1347
|
+
} = _ref;
|
|
1348
|
+
const {
|
|
1349
|
+
t
|
|
1350
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
1351
|
+
const [itemsToDisplay, setItemsToDisplay] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(_utils_constants__WEBPACK_IMPORTED_MODULE_5__.PAGINATION_DISPLAY_COUNT);
|
|
1352
|
+
const slicedTickets = tickets?.slice(0, itemsToDisplay);
|
|
1353
|
+
const onViewMore = () => {
|
|
1354
|
+
if (total > tickets.length) {
|
|
1355
|
+
onPaginateClick();
|
|
1356
|
+
}
|
|
1357
|
+
setItemsToDisplay(itemsToDisplay + _utils_constants__WEBPACK_IMPORTED_MODULE_5__.PAGINATION_DISPLAY_COUNT);
|
|
1358
|
+
};
|
|
1359
|
+
const onViewLess = () => setItemsToDisplay(_utils_constants__WEBPACK_IMPORTED_MODULE_5__.PAGINATION_DISPLAY_COUNT);
|
|
1360
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
|
|
1361
|
+
children: [slicedTickets?.map(ticket => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_OrderListTickets__WEBPACK_IMPORTED_MODULE_4__["default"], {
|
|
1362
|
+
ticket: ticket,
|
|
1363
|
+
summit: summit
|
|
1364
|
+
}, ticket.id)), tickets?.length > itemsToDisplay ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1365
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.viewMoreButton,
|
|
1366
|
+
onClick: onViewMore,
|
|
1367
|
+
children: t("orders-tickets.view_more")
|
|
1368
|
+
}) : "", slicedTickets?.length > _utils_constants__WEBPACK_IMPORTED_MODULE_5__.PAGINATION_DISPLAY_COUNT && slicedTickets?.length === total ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1369
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_6__.viewMoreButton,
|
|
1370
|
+
onClick: onViewLess,
|
|
1371
|
+
children: t("orders-tickets.view_less")
|
|
1372
|
+
}) : ""]
|
|
1373
|
+
});
|
|
1374
|
+
}
|
|
1375
|
+
OrderListItem.propTypes = {
|
|
1376
|
+
tickets: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(Object)
|
|
1377
|
+
};
|
|
1378
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderListItem);
|
|
1379
|
+
|
|
1380
|
+
/***/ }),
|
|
1381
|
+
|
|
1382
|
+
/***/ "./src/components/OrdersList/OrderListTickets.js":
|
|
1383
|
+
/*!*******************************************************!*\
|
|
1384
|
+
!*** ./src/components/OrdersList/OrderListTickets.js ***!
|
|
1385
|
+
\*******************************************************/
|
|
1386
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1387
|
+
|
|
1388
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1389
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1390
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1391
|
+
/* harmony export */ });
|
|
1392
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1393
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1394
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1395
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1396
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1397
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
1398
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1399
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
1400
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material/Stack */ "@mui/material/Stack");
|
|
1401
|
+
/* harmony import */ var _mui_material_Stack__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Stack__WEBPACK_IMPORTED_MODULE_4__);
|
|
1402
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrdersList/styles.module.scss");
|
|
1403
|
+
/* harmony import */ var _TicketStatus__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../TicketStatus */ "./src/components/TicketStatus/index.js");
|
|
1404
|
+
/* harmony import */ var _OrderNumber__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./OrderNumber */ "./src/components/OrdersList/OrderNumber.js");
|
|
1405
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js");
|
|
1406
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1407
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__);
|
|
1408
|
+
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
|
|
1412
|
+
|
|
1413
|
+
|
|
1414
|
+
|
|
1415
|
+
|
|
1416
|
+
|
|
1417
|
+
|
|
1418
|
+
function OrderListTickets(_ref) {
|
|
1419
|
+
let {
|
|
1420
|
+
ticket,
|
|
1421
|
+
summit
|
|
1422
|
+
} = _ref;
|
|
1423
|
+
const {
|
|
1424
|
+
t
|
|
1425
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
1426
|
+
const now = (0,_utils__WEBPACK_IMPORTED_MODULE_8__.useNow)();
|
|
1427
|
+
const getActiveButtonActions = ticket => {
|
|
1428
|
+
if (ticket.owner?.status === "Incomplete") {
|
|
1429
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1430
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.viewFinishTicketButton,
|
|
1431
|
+
children: t("ticket_status.finish_ticket")
|
|
1432
|
+
});
|
|
1433
|
+
}
|
|
1434
|
+
if (ticket.owner?.status === "Complete") {
|
|
1435
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1436
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.viewFinishTicketButton,
|
|
1437
|
+
children: t("ticket_status.view_ticket")
|
|
1438
|
+
});
|
|
1439
|
+
}
|
|
1440
|
+
return null;
|
|
1441
|
+
};
|
|
1442
|
+
const showReassignButton = () => {
|
|
1443
|
+
const reassignDate = (0,_utils__WEBPACK_IMPORTED_MODULE_8__.getSummitReassignDate)(summit);
|
|
1444
|
+
const isReassignable = reassignDate > now;
|
|
1445
|
+
return isReassignable ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1446
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.reassignButton,
|
|
1447
|
+
children: t("ticket_status.reassign_ticket")
|
|
1448
|
+
}) : "";
|
|
1449
|
+
};
|
|
1450
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1451
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.orderWrapper,
|
|
1452
|
+
container: true,
|
|
1453
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1454
|
+
xs: 7,
|
|
1455
|
+
padding: 2,
|
|
1456
|
+
item: true,
|
|
1457
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.ticketTicketType,
|
|
1458
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("h4", {
|
|
1459
|
+
children: ticket.ticket_type?.name
|
|
1460
|
+
})
|
|
1461
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1462
|
+
xs: 5,
|
|
1463
|
+
padding: 2,
|
|
1464
|
+
item: true
|
|
1465
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1466
|
+
xs: 12,
|
|
1467
|
+
sx: {
|
|
1468
|
+
px: 2,
|
|
1469
|
+
pb: 2
|
|
1470
|
+
},
|
|
1471
|
+
item: true,
|
|
1472
|
+
children: [ticket.owner?.email ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {
|
|
1473
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Box, {
|
|
1474
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.label,
|
|
1475
|
+
children: [t("ticket_status.assigned_to"), ":"]
|
|
1476
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Box, {
|
|
1477
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.ticketOwnerEmail,
|
|
1478
|
+
children: ticket.owner?.email
|
|
1479
|
+
})]
|
|
1480
|
+
}) : ticket.is_active && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("span", {
|
|
1481
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.ticketOwnerEmail,
|
|
1482
|
+
children: t("ticket_status.attendee_status_unassigned")
|
|
1483
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("span", {
|
|
1484
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.ticketNo,
|
|
1485
|
+
children: [t("ticket_status.ticket_no"), ":", " ", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_OrderNumber__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
|
1486
|
+
number: ticket.number,
|
|
1487
|
+
copy: true,
|
|
1488
|
+
truncated: true
|
|
1489
|
+
})]
|
|
1490
|
+
})]
|
|
1491
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1492
|
+
container: true,
|
|
1493
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1494
|
+
container: true,
|
|
1495
|
+
direction: "row",
|
|
1496
|
+
xs: 12,
|
|
1497
|
+
lg: 6,
|
|
1498
|
+
alignItems: "center",
|
|
1499
|
+
item: true,
|
|
1500
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_TicketStatus__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
|
1501
|
+
ticket: ticket
|
|
1502
|
+
})
|
|
1503
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1504
|
+
padding: 2,
|
|
1505
|
+
xs: 12,
|
|
1506
|
+
lg: 6,
|
|
1507
|
+
container: true,
|
|
1508
|
+
item: true,
|
|
1509
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Grid, {
|
|
1510
|
+
item: true,
|
|
1511
|
+
container: true,
|
|
1512
|
+
align: "center",
|
|
1513
|
+
sx: {
|
|
1514
|
+
justifyContent: "space-between"
|
|
1515
|
+
},
|
|
1516
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.ticketActionButtons,
|
|
1517
|
+
children: ticket.is_active && (ticket.owner ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)((_mui_material_Stack__WEBPACK_IMPORTED_MODULE_4___default()), {
|
|
1518
|
+
sx: {
|
|
1519
|
+
justifyContent: "space-between",
|
|
1520
|
+
width: "100%"
|
|
1521
|
+
},
|
|
1522
|
+
alignItems: "center",
|
|
1523
|
+
direction: "row",
|
|
1524
|
+
children: [getActiveButtonActions(ticket), showReassignButton()]
|
|
1525
|
+
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1526
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_5__.assignTicketButton,
|
|
1527
|
+
children: t("ticket_status.assign_ticket")
|
|
1528
|
+
}))
|
|
1529
|
+
})
|
|
1530
|
+
})]
|
|
1531
|
+
})]
|
|
1532
|
+
}, ticket.id);
|
|
1533
|
+
}
|
|
1534
|
+
OrderListTickets.propTypes = {
|
|
1535
|
+
ticket: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1536
|
+
id: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number),
|
|
1537
|
+
owner: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1538
|
+
email: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
|
|
1539
|
+
}),
|
|
1540
|
+
number: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
1541
|
+
total_refunded_amount: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number),
|
|
1542
|
+
ticket_type: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1543
|
+
name: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
|
|
1544
|
+
})
|
|
1545
|
+
})
|
|
1546
|
+
};
|
|
1547
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderListTickets);
|
|
1548
|
+
|
|
1549
|
+
/***/ }),
|
|
1550
|
+
|
|
1551
|
+
/***/ "./src/components/OrdersList/OrderNumber.js":
|
|
1552
|
+
/*!**************************************************!*\
|
|
1553
|
+
!*** ./src/components/OrdersList/OrderNumber.js ***!
|
|
1554
|
+
\**************************************************/
|
|
1555
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1556
|
+
|
|
1557
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1558
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1559
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1560
|
+
/* harmony export */ });
|
|
1561
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1562
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1563
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1564
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1565
|
+
/* harmony import */ var _mui_icons_material_ContentCopy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/icons-material/ContentCopy */ "@mui/icons-material/ContentCopy");
|
|
1566
|
+
/* harmony import */ var _mui_icons_material_ContentCopy__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_ContentCopy__WEBPACK_IMPORTED_MODULE_2__);
|
|
1567
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrdersList/styles.module.scss");
|
|
1568
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1569
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__);
|
|
1570
|
+
|
|
1571
|
+
|
|
1572
|
+
|
|
1573
|
+
|
|
1574
|
+
|
|
1575
|
+
function OrderNumber(_ref) {
|
|
1576
|
+
let {
|
|
1577
|
+
number,
|
|
1578
|
+
copy = false,
|
|
1579
|
+
truncated = false
|
|
1580
|
+
} = _ref;
|
|
1581
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
|
|
1582
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_3__.orderTicketNoContainer,
|
|
1583
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
|
|
1584
|
+
className: truncated && _styles_module_scss__WEBPACK_IMPORTED_MODULE_3__.orderTicketNumberTruncated,
|
|
1585
|
+
children: number
|
|
1586
|
+
}), copy && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)((_mui_icons_material_ContentCopy__WEBPACK_IMPORTED_MODULE_2___default()), {
|
|
1587
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_3__.copyIcon,
|
|
1588
|
+
onClick: () => navigator.clipboard.writeText(number)
|
|
1589
|
+
})]
|
|
1590
|
+
});
|
|
1591
|
+
}
|
|
1592
|
+
OrderNumber.propTypes = {
|
|
1593
|
+
number: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
1594
|
+
copy: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool)
|
|
1595
|
+
};
|
|
1596
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrderNumber);
|
|
1597
|
+
|
|
1598
|
+
/***/ }),
|
|
1599
|
+
|
|
1600
|
+
/***/ "./src/components/OrdersList/OrdersListDesktopMobile.js":
|
|
1601
|
+
/*!**************************************************************!*\
|
|
1602
|
+
!*** ./src/components/OrdersList/OrdersListDesktopMobile.js ***!
|
|
1603
|
+
\**************************************************************/
|
|
1604
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1605
|
+
|
|
1606
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1607
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1608
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1609
|
+
/* harmony export */ });
|
|
1610
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1611
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1612
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1613
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_1__);
|
|
1614
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1615
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_2__);
|
|
1616
|
+
/* harmony import */ var _mui_material_Tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material/Tabs */ "@mui/material/Tabs");
|
|
1617
|
+
/* harmony import */ var _mui_material_Tabs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Tabs__WEBPACK_IMPORTED_MODULE_3__);
|
|
1618
|
+
/* harmony import */ var _mui_material_Tab__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material/Tab */ "@mui/material/Tab");
|
|
1619
|
+
/* harmony import */ var _mui_material_Tab__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_material_Tab__WEBPACK_IMPORTED_MODULE_4__);
|
|
1620
|
+
/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/icons-material/Error */ "@mui/icons-material/Error");
|
|
1621
|
+
/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_5__);
|
|
1622
|
+
/* harmony import */ var _OrderListItem__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OrderListItem */ "./src/components/OrdersList/OrderListItem.js");
|
|
1623
|
+
/* harmony import */ var _OrderSummary__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../OrderSummary */ "./src/components/OrderSummary/index.js");
|
|
1624
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrdersList/styles.module.scss");
|
|
1625
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1626
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__);
|
|
1627
|
+
|
|
1628
|
+
|
|
1629
|
+
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
|
|
1633
|
+
|
|
1634
|
+
|
|
1635
|
+
|
|
1636
|
+
|
|
1637
|
+
function TabPanel(props) {
|
|
1638
|
+
const {
|
|
1639
|
+
children,
|
|
1640
|
+
value,
|
|
1641
|
+
index
|
|
1642
|
+
} = props;
|
|
1643
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
|
|
1644
|
+
role: "tabpanel",
|
|
1645
|
+
hidden: value !== index,
|
|
1646
|
+
id: `tabpanel-${index}`,
|
|
1647
|
+
"aria-labelledby": `tab-${index}`,
|
|
1648
|
+
children: value === index && children
|
|
1649
|
+
});
|
|
1650
|
+
}
|
|
1651
|
+
function OrdersListDesktopMobile(_ref) {
|
|
1652
|
+
let {
|
|
1653
|
+
isMobile,
|
|
1654
|
+
summit,
|
|
1655
|
+
tickets,
|
|
1656
|
+
order,
|
|
1657
|
+
total,
|
|
1658
|
+
detailsRequired,
|
|
1659
|
+
onPaginateClick
|
|
1660
|
+
} = _ref;
|
|
1661
|
+
const {
|
|
1662
|
+
t
|
|
1663
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__.useTranslation)();
|
|
1664
|
+
const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0);
|
|
1665
|
+
const handleChange = (_, newValue) => {
|
|
1666
|
+
setValue(newValue);
|
|
1667
|
+
};
|
|
1668
|
+
const moreDetails = () => detailsRequired && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("span", {
|
|
1669
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__.detailsRequiredLabel,
|
|
1670
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)((_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_5___default()), {
|
|
1671
|
+
sx: {
|
|
1672
|
+
color: "#FF9800"
|
|
1673
|
+
}
|
|
1674
|
+
}), t("ticket_status.status_details_required")]
|
|
1675
|
+
});
|
|
1676
|
+
return isMobile ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
1677
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__.ticketListContainer,
|
|
1678
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Box, {
|
|
1679
|
+
sx: {
|
|
1680
|
+
borderColor: "divider",
|
|
1681
|
+
pb: 2
|
|
1682
|
+
},
|
|
1683
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)((_mui_material_Tabs__WEBPACK_IMPORTED_MODULE_3___default()), {
|
|
1684
|
+
value: value,
|
|
1685
|
+
onChange: handleChange,
|
|
1686
|
+
textColor: "#000",
|
|
1687
|
+
"aria-label": "Tickets & Summary",
|
|
1688
|
+
TabIndicatorProps: {
|
|
1689
|
+
style: {
|
|
1690
|
+
background: "#000"
|
|
1691
|
+
}
|
|
1692
|
+
},
|
|
1693
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)((_mui_material_Tab__WEBPACK_IMPORTED_MODULE_4___default()), {
|
|
1694
|
+
label: t("labels.tickets"),
|
|
1695
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__.tabButtons
|
|
1696
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)((_mui_material_Tab__WEBPACK_IMPORTED_MODULE_4___default()), {
|
|
1697
|
+
label: t("labels.summary"),
|
|
1698
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__.tabButtons
|
|
1699
|
+
})]
|
|
1700
|
+
})
|
|
1701
|
+
}), moreDetails(), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(TabPanel, {
|
|
1702
|
+
value: value,
|
|
1703
|
+
index: 0,
|
|
1704
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_OrderListItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
|
1705
|
+
order: order,
|
|
1706
|
+
tickets: tickets,
|
|
1707
|
+
total: total,
|
|
1708
|
+
onPaginateClick: onPaginateClick,
|
|
1709
|
+
summit: summit
|
|
1710
|
+
})
|
|
1711
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(TabPanel, {
|
|
1712
|
+
value: value,
|
|
1713
|
+
index: 1,
|
|
1714
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_OrderSummary__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
|
1715
|
+
order: order,
|
|
1716
|
+
summit: summit,
|
|
1717
|
+
tickets: tickets
|
|
1718
|
+
})
|
|
1719
|
+
})]
|
|
1720
|
+
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.Fragment, {
|
|
1721
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
1722
|
+
item: true,
|
|
1723
|
+
md: 12,
|
|
1724
|
+
children: moreDetails()
|
|
1725
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
1726
|
+
padding: 2,
|
|
1727
|
+
item: true,
|
|
1728
|
+
md: 7,
|
|
1729
|
+
order: {
|
|
1730
|
+
md: 1
|
|
1731
|
+
},
|
|
1732
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_8__.ticketListContainer,
|
|
1733
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_OrderListItem__WEBPACK_IMPORTED_MODULE_6__["default"], {
|
|
1734
|
+
order: order,
|
|
1735
|
+
tickets: tickets,
|
|
1736
|
+
total: total,
|
|
1737
|
+
onPaginateClick: onPaginateClick,
|
|
1738
|
+
summit: summit
|
|
1739
|
+
})
|
|
1740
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__.Grid, {
|
|
1741
|
+
padding: 2,
|
|
1742
|
+
item: true,
|
|
1743
|
+
md: 5,
|
|
1744
|
+
order: {
|
|
1745
|
+
md: 1
|
|
1746
|
+
},
|
|
1747
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_OrderSummary__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
|
1748
|
+
order: order,
|
|
1749
|
+
summit: summit,
|
|
1750
|
+
tickets: tickets
|
|
1751
|
+
})
|
|
1752
|
+
})]
|
|
1753
|
+
});
|
|
1754
|
+
}
|
|
1755
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrdersListDesktopMobile);
|
|
1756
|
+
|
|
1757
|
+
/***/ }),
|
|
1758
|
+
|
|
1759
|
+
/***/ "./src/components/OrdersList/index.js":
|
|
1760
|
+
/*!********************************************!*\
|
|
1761
|
+
!*** ./src/components/OrdersList/index.js ***!
|
|
1762
|
+
\********************************************/
|
|
1763
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1764
|
+
|
|
1765
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1766
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1767
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1768
|
+
/* harmony export */ });
|
|
1769
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1770
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1771
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1772
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1773
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
1774
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
|
|
1775
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1776
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_3__);
|
|
1777
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1778
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_4__);
|
|
1779
|
+
/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material/styles */ "@mui/material/styles");
|
|
1780
|
+
/* harmony import */ var _mui_material_styles__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_mui_material_styles__WEBPACK_IMPORTED_MODULE_5__);
|
|
1781
|
+
/* harmony import */ var _mui_material_useMediaQuery__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @mui/material/useMediaQuery */ "@mui/material/useMediaQuery");
|
|
1782
|
+
/* harmony import */ var _mui_material_useMediaQuery__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_mui_material_useMediaQuery__WEBPACK_IMPORTED_MODULE_6__);
|
|
1783
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../actions */ "./src/actions.js");
|
|
1784
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils */ "./src/utils/index.js");
|
|
1785
|
+
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/constants */ "./src/utils/constants.js");
|
|
1786
|
+
/* harmony import */ var _OrderNumber__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./OrderNumber */ "./src/components/OrdersList/OrderNumber.js");
|
|
1787
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/OrdersList/styles.module.scss");
|
|
1788
|
+
/* harmony import */ var _OrdersListDesktopMobile__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./OrdersListDesktopMobile */ "./src/components/OrdersList/OrdersListDesktopMobile.js");
|
|
1789
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1790
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__);
|
|
1791
|
+
|
|
1792
|
+
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
|
|
1797
|
+
|
|
1798
|
+
|
|
1799
|
+
|
|
1800
|
+
|
|
1801
|
+
|
|
1802
|
+
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
function OrdersList(props) {
|
|
1806
|
+
const {
|
|
1807
|
+
summit,
|
|
1808
|
+
order
|
|
1809
|
+
} = props;
|
|
1810
|
+
const {
|
|
1811
|
+
t
|
|
1812
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_3__.useTranslation)();
|
|
1813
|
+
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
|
|
1814
|
+
const {
|
|
1815
|
+
per_page,
|
|
1816
|
+
last_page,
|
|
1817
|
+
memberOrders
|
|
1818
|
+
} = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useSelector)(state => state.widgetState || {}, react_redux__WEBPACK_IMPORTED_MODULE_2__.shallowEqual);
|
|
1819
|
+
const theme = (0,_mui_material_styles__WEBPACK_IMPORTED_MODULE_5__.useTheme)();
|
|
1820
|
+
const isMobile = _mui_material_useMediaQuery__WEBPACK_IMPORTED_MODULE_6___default()(theme.breakpoints.down("lg"));
|
|
1821
|
+
const [isMobileViewable, setMobileViewable] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
1822
|
+
const detailsRequired = order.memberTickets?.find(ticket => ticket.owner?.status === "Incomplete");
|
|
1823
|
+
const fetchTicketsByOrder = async () => {
|
|
1824
|
+
await dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_7__.getTicketsByOrder)({
|
|
1825
|
+
orderId: order.id,
|
|
1826
|
+
current_page: last_page,
|
|
1827
|
+
perPage: per_page
|
|
1828
|
+
})).catch(e => {
|
|
1829
|
+
console.log(e);
|
|
1830
|
+
});
|
|
1831
|
+
};
|
|
1832
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
1833
|
+
fetchTicketsByOrder();
|
|
1834
|
+
}, []);
|
|
1835
|
+
const onPaginateClick = () => dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_7__.getTicketsByOrder)({
|
|
1836
|
+
orderId: order.id,
|
|
1837
|
+
page: order.tickets_page_current + _utils_constants__WEBPACK_IMPORTED_MODULE_9__.ONE_PAGE_NEXT,
|
|
1838
|
+
perPage: per_page,
|
|
1839
|
+
next: true
|
|
1840
|
+
}));
|
|
1841
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.Fragment, {
|
|
1842
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Box, {
|
|
1843
|
+
sx: {
|
|
1844
|
+
padding: {
|
|
1845
|
+
xs: 2,
|
|
1846
|
+
md: 1,
|
|
1847
|
+
lg: 0
|
|
1848
|
+
}
|
|
1849
|
+
},
|
|
1850
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.orderTicketInfoContainer,
|
|
1851
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("span", {
|
|
1852
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.orderTicketInfo,
|
|
1853
|
+
children: [t("orders.purchased"), ": ", (0,_utils__WEBPACK_IMPORTED_MODULE_8__.getFormattedDate)(order.created), " |", " ", t("order_summary.order_no"), ":", " ", /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_OrderNumber__WEBPACK_IMPORTED_MODULE_10__["default"], {
|
|
1854
|
+
number: order.number,
|
|
1855
|
+
copy: true,
|
|
1856
|
+
truncated: true
|
|
1857
|
+
})]
|
|
1858
|
+
}), isMobile && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Button, {
|
|
1859
|
+
sx: {
|
|
1860
|
+
padding: 0
|
|
1861
|
+
},
|
|
1862
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.blackButton,
|
|
1863
|
+
onClick: () => setMobileViewable(!isMobileViewable),
|
|
1864
|
+
children: isMobileViewable ? t("ticket_status.hide_tickets") : t("ticket_status.view_tickets")
|
|
1865
|
+
})]
|
|
1866
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__.Grid, {
|
|
1867
|
+
container: true,
|
|
1868
|
+
rowSpacing: 1,
|
|
1869
|
+
columnSpacing: {
|
|
1870
|
+
xs: 1,
|
|
1871
|
+
sm: 2,
|
|
1872
|
+
md: 3
|
|
1873
|
+
},
|
|
1874
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.orderTicketContainer} ${isMobile && !isMobileViewable ? _styles_module_scss__WEBPACK_IMPORTED_MODULE_11__.display_none : ""}`,
|
|
1875
|
+
sx: {
|
|
1876
|
+
flexDirection: {
|
|
1877
|
+
md: "row",
|
|
1878
|
+
lg: "row"
|
|
1879
|
+
},
|
|
1880
|
+
padding: {
|
|
1881
|
+
xs: 2,
|
|
1882
|
+
md: 0,
|
|
1883
|
+
lg: 0
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1886
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_OrdersListDesktopMobile__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
|
1887
|
+
isMobile: isMobile,
|
|
1888
|
+
summit: summit,
|
|
1889
|
+
order: order,
|
|
1890
|
+
tickets: (0,_utils__WEBPACK_IMPORTED_MODULE_8__.getOrderTickets)(memberOrders, order.id),
|
|
1891
|
+
total: order.tickets_total,
|
|
1892
|
+
detailsRequired: detailsRequired,
|
|
1893
|
+
onPaginateClick: onPaginateClick
|
|
1894
|
+
})
|
|
1895
|
+
}, order.id)]
|
|
1896
|
+
});
|
|
1897
|
+
}
|
|
1898
|
+
OrdersList.propTypes = {
|
|
1899
|
+
summit: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
1900
|
+
order: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object)
|
|
1901
|
+
};
|
|
1902
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OrdersList);
|
|
1903
|
+
|
|
1904
|
+
/***/ }),
|
|
1905
|
+
|
|
1906
|
+
/***/ "./src/components/TicketStatus/index.js":
|
|
1907
|
+
/*!**********************************************!*\
|
|
1908
|
+
!*** ./src/components/TicketStatus/index.js ***!
|
|
1909
|
+
\**********************************************/
|
|
1910
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1911
|
+
|
|
1912
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1913
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1914
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1915
|
+
/* harmony export */ });
|
|
1916
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
1917
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
1918
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
1919
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
1920
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
1921
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_2__);
|
|
1922
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
1923
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_3__);
|
|
1924
|
+
/* harmony import */ var _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./styles.module.scss */ "./src/components/TicketStatus/styles.module.scss");
|
|
1925
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
1926
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__);
|
|
1927
|
+
|
|
1928
|
+
|
|
1929
|
+
|
|
1930
|
+
|
|
1931
|
+
|
|
1932
|
+
|
|
1933
|
+
function TicketStatus(_ref) {
|
|
1934
|
+
let {
|
|
1935
|
+
ticket
|
|
1936
|
+
} = _ref;
|
|
1937
|
+
const {
|
|
1938
|
+
t
|
|
1939
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_2__.useTranslation)();
|
|
1940
|
+
const isActive = ticket.is_active;
|
|
1941
|
+
const refund_requests = ticket.refund_requests.find(r => r.status === "Requested");
|
|
1942
|
+
const ticket_status_incomplete = ticket.owner?.status === "Incomplete";
|
|
1943
|
+
const ticket_unassigned = ticket.owner_id === 0;
|
|
1944
|
+
const ticket_complete = ticket.owner && ticket.owner?.status === "Complete";
|
|
1945
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Container, {
|
|
1946
|
+
className: _styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.ticketStatusContainer,
|
|
1947
|
+
children: isActive ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
|
|
1948
|
+
children: [refund_requests && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1949
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonPill} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonRefundRequested}`,
|
|
1950
|
+
children: t("ticket_status.status_refund_requested")
|
|
1951
|
+
}), ticket_status_incomplete && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1952
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonPill} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonIncomplete}`,
|
|
1953
|
+
children: t("ticket_status.status_incomplete")
|
|
1954
|
+
}), ticket_unassigned && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1955
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonPill} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonUnassigned}`,
|
|
1956
|
+
children: t("ticket_status.status_unassigned")
|
|
1957
|
+
}), ticket_complete && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1958
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonPill} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonComplete}`,
|
|
1959
|
+
children: t("ticket_status.status_complete")
|
|
1960
|
+
})]
|
|
1961
|
+
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__.Button, {
|
|
1962
|
+
className: `${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonPill} ${_styles_module_scss__WEBPACK_IMPORTED_MODULE_4__.buttonCancelled}`,
|
|
1963
|
+
children: t("ticket_status.status_cancelled")
|
|
1964
|
+
})
|
|
1965
|
+
});
|
|
1966
|
+
}
|
|
1967
|
+
TicketStatus.propTypes = {
|
|
1968
|
+
ticket: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1969
|
+
owner: prop_types__WEBPACK_IMPORTED_MODULE_1___default().shape({
|
|
1970
|
+
status: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string)
|
|
1971
|
+
}),
|
|
1972
|
+
refund_requests: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf(Object)
|
|
1973
|
+
})
|
|
1974
|
+
};
|
|
1975
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TicketStatus);
|
|
1976
|
+
|
|
1977
|
+
/***/ }),
|
|
1978
|
+
|
|
1979
|
+
/***/ "./src/reducer.js":
|
|
1980
|
+
/*!************************!*\
|
|
1981
|
+
!*** ./src/reducer.js ***!
|
|
1982
|
+
\************************/
|
|
1983
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1984
|
+
|
|
1985
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1986
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1987
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
1988
|
+
/* harmony export */ });
|
|
1989
|
+
/* harmony import */ var openstack_uicore_foundation_lib_security_actions__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! openstack-uicore-foundation/lib/security/actions */ "openstack-uicore-foundation/lib/security/actions");
|
|
1990
|
+
/* harmony import */ var openstack_uicore_foundation_lib_security_actions__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(openstack_uicore_foundation_lib_security_actions__WEBPACK_IMPORTED_MODULE_0__);
|
|
1991
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./actions */ "./src/actions.js");
|
|
1992
|
+
/* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/constants */ "./src/utils/constants.js");
|
|
1993
|
+
/**
|
|
1994
|
+
* Copyright 2024 OpenStack Foundation
|
|
1995
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1996
|
+
* you may not use this file except in compliance with the License.
|
|
1997
|
+
* You may obtain a copy of the License at
|
|
1998
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1999
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2000
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2001
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2002
|
+
* See the License for the specific language governing permissions and
|
|
2003
|
+
* limitations under the License.
|
|
2004
|
+
* */
|
|
2005
|
+
|
|
2006
|
+
|
|
2007
|
+
|
|
2008
|
+
const DEFAULT_STATE = {
|
|
2009
|
+
summit: null,
|
|
2010
|
+
user: {},
|
|
2011
|
+
widgetLoading: false,
|
|
2012
|
+
memberOrders: [],
|
|
2013
|
+
errors: {},
|
|
2014
|
+
loading: false,
|
|
2015
|
+
isOrderLoading: false,
|
|
2016
|
+
orders_current_page: 1,
|
|
2017
|
+
orders_last_page: 1,
|
|
2018
|
+
orders_per_page: 5,
|
|
2019
|
+
orders_total: 0,
|
|
2020
|
+
ticket_current_page: 1,
|
|
2021
|
+
ticket_last_page: 1,
|
|
2022
|
+
ticket_per_page: 5,
|
|
2023
|
+
ticket_total: 0
|
|
2024
|
+
};
|
|
2025
|
+
const WidgetReducer = function () {
|
|
2026
|
+
let state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_STATE;
|
|
2027
|
+
let {
|
|
2028
|
+
type,
|
|
2029
|
+
payload
|
|
2030
|
+
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
2031
|
+
switch (type) {
|
|
2032
|
+
case openstack_uicore_foundation_lib_security_actions__WEBPACK_IMPORTED_MODULE_0__.LOGOUT_USER:
|
|
2033
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.RESET_STATE:
|
|
2034
|
+
return DEFAULT_STATE;
|
|
2035
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.RESET_FILTER:
|
|
2036
|
+
return {
|
|
2037
|
+
...state,
|
|
2038
|
+
orders_current_page: 1,
|
|
2039
|
+
orders_last_page: 1
|
|
2040
|
+
};
|
|
2041
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.SET_SUMMIT:
|
|
2042
|
+
return {
|
|
2043
|
+
...state,
|
|
2044
|
+
summit: payload
|
|
2045
|
+
};
|
|
2046
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.SET_USER:
|
|
2047
|
+
return {
|
|
2048
|
+
...state,
|
|
2049
|
+
user: payload
|
|
2050
|
+
};
|
|
2051
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.GET_USER_ORDERS:
|
|
2052
|
+
{
|
|
2053
|
+
const {
|
|
2054
|
+
memberOrders
|
|
2055
|
+
} = state;
|
|
2056
|
+
const {
|
|
2057
|
+
data,
|
|
2058
|
+
total,
|
|
2059
|
+
current_page
|
|
2060
|
+
} = payload.response;
|
|
2061
|
+
return {
|
|
2062
|
+
...state,
|
|
2063
|
+
memberOrders: current_page === _utils_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_PAGE ? data : [...memberOrders, ...data],
|
|
2064
|
+
orders_total: total,
|
|
2065
|
+
orders_current_page: current_page
|
|
2066
|
+
};
|
|
2067
|
+
}
|
|
2068
|
+
case _actions__WEBPACK_IMPORTED_MODULE_1__.GET_TICKETS_BY_ORDER:
|
|
2069
|
+
{
|
|
2070
|
+
const {
|
|
2071
|
+
memberOrders
|
|
2072
|
+
} = state;
|
|
2073
|
+
const {
|
|
2074
|
+
data,
|
|
2075
|
+
total,
|
|
2076
|
+
current_page,
|
|
2077
|
+
last_page
|
|
2078
|
+
} = payload.response;
|
|
2079
|
+
const formerOrder = memberOrders.find(o => o.id === data[0]?.order_id);
|
|
2080
|
+
const updatedOrder = {
|
|
2081
|
+
...formerOrder,
|
|
2082
|
+
memberTickets: current_page === _utils_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_PAGE ? data : [...formerOrder.memberTickets, ...data],
|
|
2083
|
+
tickets_page_current: current_page,
|
|
2084
|
+
tickets_page_last: last_page,
|
|
2085
|
+
tickets_total: total
|
|
2086
|
+
};
|
|
2087
|
+
return {
|
|
2088
|
+
...state,
|
|
2089
|
+
memberOrders: memberOrders.map(mo => mo.id === updatedOrder.id ? updatedOrder : mo)
|
|
2090
|
+
};
|
|
2091
|
+
}
|
|
2092
|
+
default:
|
|
2093
|
+
return state;
|
|
2094
|
+
}
|
|
2095
|
+
};
|
|
2096
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WidgetReducer);
|
|
2097
|
+
|
|
2098
|
+
/***/ }),
|
|
2099
|
+
|
|
2100
|
+
/***/ "./src/store.js":
|
|
2101
|
+
/*!**********************!*\
|
|
2102
|
+
!*** ./src/store.js ***!
|
|
2103
|
+
\**********************/
|
|
2104
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2105
|
+
|
|
2106
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2107
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2108
|
+
/* harmony export */ getStore: () => (/* binding */ getStore),
|
|
2109
|
+
/* harmony export */ useInitStore: () => (/* binding */ useInitStore)
|
|
2110
|
+
/* harmony export */ });
|
|
2111
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2112
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2113
|
+
/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @reduxjs/toolkit */ "@reduxjs/toolkit");
|
|
2114
|
+
/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__);
|
|
2115
|
+
/* harmony import */ var redux_persist__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! redux-persist */ "redux-persist");
|
|
2116
|
+
/* harmony import */ var redux_persist__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(redux_persist__WEBPACK_IMPORTED_MODULE_2__);
|
|
2117
|
+
/* harmony import */ var redux_persist_lib_storage__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! redux-persist/lib/storage */ "redux-persist/lib/storage");
|
|
2118
|
+
/* harmony import */ var redux_persist_lib_storage__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(redux_persist_lib_storage__WEBPACK_IMPORTED_MODULE_3__);
|
|
2119
|
+
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! redux */ "redux");
|
|
2120
|
+
/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(redux__WEBPACK_IMPORTED_MODULE_4__);
|
|
2121
|
+
/* harmony import */ var _reducer__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./reducer */ "./src/reducer.js");
|
|
2122
|
+
|
|
2123
|
+
|
|
2124
|
+
|
|
2125
|
+
|
|
2126
|
+
|
|
2127
|
+
|
|
2128
|
+
const getStore = _ref => {
|
|
2129
|
+
let {
|
|
2130
|
+
clientId,
|
|
2131
|
+
loginUrl,
|
|
2132
|
+
summit,
|
|
2133
|
+
apiBaseUrl
|
|
2134
|
+
} = _ref;
|
|
2135
|
+
// to add other reducers later
|
|
2136
|
+
const reducers = (0,redux__WEBPACK_IMPORTED_MODULE_4__.combineReducers)({
|
|
2137
|
+
widgetState: _reducer__WEBPACK_IMPORTED_MODULE_5__["default"]
|
|
2138
|
+
});
|
|
2139
|
+
const store = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_1__.configureStore)({
|
|
2140
|
+
reducer: (0,redux_persist__WEBPACK_IMPORTED_MODULE_2__.persistReducer)({
|
|
2141
|
+
key: `root_my_orders_tickets_${clientId}`,
|
|
2142
|
+
storage: (redux_persist_lib_storage__WEBPACK_IMPORTED_MODULE_3___default())
|
|
2143
|
+
}, reducers),
|
|
2144
|
+
middleware: getDefaultMiddleware => getDefaultMiddleware({
|
|
2145
|
+
thunk: {
|
|
2146
|
+
extraArgument: {
|
|
2147
|
+
clientId,
|
|
2148
|
+
apiBaseUrl,
|
|
2149
|
+
summit,
|
|
2150
|
+
loginUrl
|
|
2151
|
+
}
|
|
2152
|
+
},
|
|
2153
|
+
immutableCheck: false,
|
|
2154
|
+
serializableCheck: {
|
|
2155
|
+
ignoredActions: [redux_persist__WEBPACK_IMPORTED_MODULE_2__.FLUSH, redux_persist__WEBPACK_IMPORTED_MODULE_2__.REHYDRATE, redux_persist__WEBPACK_IMPORTED_MODULE_2__.PAUSE, redux_persist__WEBPACK_IMPORTED_MODULE_2__.PERSIST, redux_persist__WEBPACK_IMPORTED_MODULE_2__.PURGE, redux_persist__WEBPACK_IMPORTED_MODULE_2__.REGISTER]
|
|
2156
|
+
}
|
|
2157
|
+
})
|
|
2158
|
+
});
|
|
2159
|
+
return store;
|
|
2160
|
+
};
|
|
2161
|
+
const useInitStore = config => {
|
|
2162
|
+
const store = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => getStore(config), []);
|
|
2163
|
+
const persistor = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => (0,redux_persist__WEBPACK_IMPORTED_MODULE_2__.persistStore)(store), [store]);
|
|
2164
|
+
return {
|
|
2165
|
+
store,
|
|
2166
|
+
persistor
|
|
2167
|
+
};
|
|
2168
|
+
};
|
|
2169
|
+
|
|
2170
|
+
/***/ }),
|
|
2171
|
+
|
|
2172
|
+
/***/ "./src/utils/auth.js":
|
|
2173
|
+
/*!***************************!*\
|
|
2174
|
+
!*** ./src/utils/auth.js ***!
|
|
2175
|
+
\***************************/
|
|
2176
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2177
|
+
|
|
2178
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2179
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2180
|
+
/* harmony export */ getAccessTokenSafely: () => (/* binding */ getAccessTokenSafely)
|
|
2181
|
+
/* harmony export */ });
|
|
2182
|
+
/* harmony import */ var openstack_uicore_foundation_lib_security_methods__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! openstack-uicore-foundation/lib/security/methods */ "openstack-uicore-foundation/lib/security/methods");
|
|
2183
|
+
/* harmony import */ var openstack_uicore_foundation_lib_security_methods__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(openstack_uicore_foundation_lib_security_methods__WEBPACK_IMPORTED_MODULE_0__);
|
|
2184
|
+
/* harmony import */ var _sentry_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @sentry/react */ "@sentry/react");
|
|
2185
|
+
/* harmony import */ var _sentry_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_sentry_react__WEBPACK_IMPORTED_MODULE_1__);
|
|
2186
|
+
|
|
2187
|
+
|
|
2188
|
+
const getAccessTokenSafely = async () => {
|
|
2189
|
+
try {
|
|
2190
|
+
return await (0,openstack_uicore_foundation_lib_security_methods__WEBPACK_IMPORTED_MODULE_0__.getAccessToken)();
|
|
2191
|
+
} catch (e) {
|
|
2192
|
+
console.log("my-orders-tickets-widge:: getAccessTokenSafely error: ", e);
|
|
2193
|
+
_sentry_react__WEBPACK_IMPORTED_MODULE_1__.captureException(e);
|
|
2194
|
+
(0,openstack_uicore_foundation_lib_security_methods__WEBPACK_IMPORTED_MODULE_0__.initLogOut)();
|
|
2195
|
+
return Promise.reject();
|
|
2196
|
+
}
|
|
2197
|
+
};
|
|
2198
|
+
|
|
2199
|
+
/***/ }),
|
|
2200
|
+
|
|
2201
|
+
/***/ "./src/utils/constants.js":
|
|
2202
|
+
/*!********************************!*\
|
|
2203
|
+
!*** ./src/utils/constants.js ***!
|
|
2204
|
+
\********************************/
|
|
2205
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2206
|
+
|
|
2207
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2208
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2209
|
+
/* harmony export */ DEFAULT_ITEMS_PER_PAGE: () => (/* binding */ DEFAULT_ITEMS_PER_PAGE),
|
|
2210
|
+
/* harmony export */ FIRST_PAGE: () => (/* binding */ FIRST_PAGE),
|
|
2211
|
+
/* harmony export */ LAST_HOUR_OF_24_HOUR: () => (/* binding */ LAST_HOUR_OF_24_HOUR),
|
|
2212
|
+
/* harmony export */ LAST_MINUTE_OF_HOUR: () => (/* binding */ LAST_MINUTE_OF_HOUR),
|
|
2213
|
+
/* harmony export */ MILLISEC_TO_SEC: () => (/* binding */ MILLISEC_TO_SEC),
|
|
2214
|
+
/* harmony export */ ONE_DAY: () => (/* binding */ ONE_DAY),
|
|
2215
|
+
/* harmony export */ ONE_PAGE_NEXT: () => (/* binding */ ONE_PAGE_NEXT),
|
|
2216
|
+
/* harmony export */ PAGINATION_DISPLAY_COUNT: () => (/* binding */ PAGINATION_DISPLAY_COUNT)
|
|
2217
|
+
/* harmony export */ });
|
|
2218
|
+
const LAST_HOUR_OF_24_HOUR = 23;
|
|
2219
|
+
const LAST_MINUTE_OF_HOUR = 59;
|
|
2220
|
+
const ONE_PAGE_NEXT = 1;
|
|
2221
|
+
const MILLISEC_TO_SEC = 1000;
|
|
2222
|
+
const ONE_DAY = 1;
|
|
2223
|
+
const DEFAULT_ITEMS_PER_PAGE = 5;
|
|
2224
|
+
const FIRST_PAGE = 1;
|
|
2225
|
+
const PAGINATION_DISPLAY_COUNT = 3;
|
|
2226
|
+
|
|
2227
|
+
/***/ }),
|
|
2228
|
+
|
|
2229
|
+
/***/ "./src/utils/index.js":
|
|
2230
|
+
/*!****************************!*\
|
|
2231
|
+
!*** ./src/utils/index.js ***!
|
|
2232
|
+
\****************************/
|
|
2233
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2234
|
+
|
|
2235
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2236
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2237
|
+
/* harmony export */ calculateOrderTotals: () => (/* binding */ calculateOrderTotals),
|
|
2238
|
+
/* harmony export */ defaultCurrentTime: () => (/* binding */ defaultCurrentTime),
|
|
2239
|
+
/* harmony export */ formatCurrency: () => (/* binding */ formatCurrency),
|
|
2240
|
+
/* harmony export */ getEpochLowerUpperInSeconds: () => (/* binding */ getEpochLowerUpperInSeconds),
|
|
2241
|
+
/* harmony export */ getFormattedDate: () => (/* binding */ getFormattedDate),
|
|
2242
|
+
/* harmony export */ getNow: () => (/* binding */ getNow),
|
|
2243
|
+
/* harmony export */ getOrderTickets: () => (/* binding */ getOrderTickets),
|
|
2244
|
+
/* harmony export */ getSummitFormattedDate: () => (/* binding */ getSummitFormattedDate),
|
|
2245
|
+
/* harmony export */ getSummitReassignDate: () => (/* binding */ getSummitReassignDate),
|
|
2246
|
+
/* harmony export */ useNow: () => (/* binding */ useNow)
|
|
2247
|
+
/* harmony export */ });
|
|
2248
|
+
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ "moment-timezone");
|
|
2249
|
+
/* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);
|
|
2250
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
2251
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
|
|
2252
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./src/utils/constants.js");
|
|
2253
|
+
|
|
2254
|
+
|
|
2255
|
+
|
|
2256
|
+
const formatCurrency = (value, _ref) => {
|
|
2257
|
+
let {
|
|
2258
|
+
locale = "en-US",
|
|
2259
|
+
...options
|
|
2260
|
+
} = _ref;
|
|
2261
|
+
const defaultOptions = {
|
|
2262
|
+
currency: "USD",
|
|
2263
|
+
minimumFractionDigits: 2,
|
|
2264
|
+
maximumFractionDigits: 2
|
|
2265
|
+
};
|
|
2266
|
+
const formatter = new Intl.NumberFormat(locale, {
|
|
2267
|
+
style: "currency",
|
|
2268
|
+
...defaultOptions,
|
|
2269
|
+
...options
|
|
2270
|
+
});
|
|
2271
|
+
return formatter.format(value);
|
|
2272
|
+
};
|
|
2273
|
+
const getFormattedDate = (datetime, timeZone) => {
|
|
2274
|
+
if (timeZone) return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(datetime * _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC, timeZone).format("MMMM DD, YYYY");
|
|
2275
|
+
return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().unix(datetime).format("MMMM DD, YYYY");
|
|
2276
|
+
};
|
|
2277
|
+
const getSummitFormattedDate = summit => {
|
|
2278
|
+
if (!summit) return null;
|
|
2279
|
+
const startDay = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(summit.start_date * _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC).tz(summit.time_zone_id);
|
|
2280
|
+
const endDay = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(summit.end_date * _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC).tz(summit.time_zone_id);
|
|
2281
|
+
const days = endDay.diff(startDay, "days");
|
|
2282
|
+
let formatStartDate = "MMMM DD, YYYY";
|
|
2283
|
+
let formatEndDate = "MMMM DD, YYYY";
|
|
2284
|
+
if (startDay.year() === endDay.year()) formatStartDate = "MMMM DD";
|
|
2285
|
+
if (startDay.month() === endDay.month()) formatEndDate = "DD, YYYY";
|
|
2286
|
+
const startDate = startDay.format(formatStartDate);
|
|
2287
|
+
const endDate = endDay.format(formatEndDate);
|
|
2288
|
+
if (days > _constants__WEBPACK_IMPORTED_MODULE_2__.ONE_DAY) return `${startDate} - ${endDate}`;
|
|
2289
|
+
return startDate;
|
|
2290
|
+
};
|
|
2291
|
+
const calculateOrderTotals = _ref2 => {
|
|
2292
|
+
let {
|
|
2293
|
+
order,
|
|
2294
|
+
summit,
|
|
2295
|
+
tickets
|
|
2296
|
+
} = _ref2;
|
|
2297
|
+
if (!order || !summit || !tickets) return {};
|
|
2298
|
+
const {
|
|
2299
|
+
refunded_amount,
|
|
2300
|
+
discount_amount,
|
|
2301
|
+
taxes_amount,
|
|
2302
|
+
amount
|
|
2303
|
+
} = order;
|
|
2304
|
+
const {
|
|
2305
|
+
ticket_types
|
|
2306
|
+
} = summit;
|
|
2307
|
+
const ticketSummary = [];
|
|
2308
|
+
let purchaseTicketTotal = 0;
|
|
2309
|
+
const currencyObject = {
|
|
2310
|
+
currency: order.currency
|
|
2311
|
+
};
|
|
2312
|
+
Object.keys(order.tickets_excerpt_by_ticket_type).map(ticket => {
|
|
2313
|
+
const ticketType = ticket_types.find(tt => tt.name === ticket);
|
|
2314
|
+
ticketSummary.push({
|
|
2315
|
+
ticket_type_id: ticketType.id,
|
|
2316
|
+
ticket_type: ticketType,
|
|
2317
|
+
name: ticket,
|
|
2318
|
+
qty: order.tickets_excerpt_by_ticket_type[ticket]
|
|
2319
|
+
});
|
|
2320
|
+
purchaseTicketTotal += ticketType.cost * order.tickets_excerpt_by_ticket_type[ticket];
|
|
2321
|
+
return ticketSummary;
|
|
2322
|
+
});
|
|
2323
|
+
const purchaseTotal = formatCurrency(purchaseTicketTotal, currencyObject);
|
|
2324
|
+
const discountTotal = formatCurrency(discount_amount, currencyObject);
|
|
2325
|
+
const refundTotal = formatCurrency(refunded_amount, currencyObject);
|
|
2326
|
+
const taxesTotal = formatCurrency(taxes_amount, currencyObject);
|
|
2327
|
+
const amountTotal = Object.prototype.hasOwnProperty.call(order, "amount") ? formatCurrency(amount, currencyObject) : formatCurrency(purchaseTotal, currencyObject);
|
|
2328
|
+
return {
|
|
2329
|
+
discountTotal,
|
|
2330
|
+
refundTotal,
|
|
2331
|
+
taxesTotal,
|
|
2332
|
+
amountTotal,
|
|
2333
|
+
ticketSummary
|
|
2334
|
+
};
|
|
2335
|
+
};
|
|
2336
|
+
const getOrderTickets = (memberOrders, orderId) => {
|
|
2337
|
+
const orders = memberOrders.filter(o => o.id === orderId);
|
|
2338
|
+
return orders[0]?.memberTickets;
|
|
2339
|
+
};
|
|
2340
|
+
const getEpochLowerUpperInSeconds = ts => {
|
|
2341
|
+
const lower = ts.setHours(0, 0, 0, 0) / _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC;
|
|
2342
|
+
const upper = ts.setHours(_constants__WEBPACK_IMPORTED_MODULE_2__.LAST_HOUR_OF_24_HOUR, _constants__WEBPACK_IMPORTED_MODULE_2__.LAST_MINUTE_OF_HOUR, 0, 0) / _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC;
|
|
2343
|
+
return {
|
|
2344
|
+
lower,
|
|
2345
|
+
upper
|
|
2346
|
+
};
|
|
2347
|
+
};
|
|
2348
|
+
const getSummitReassignDate = summit => {
|
|
2349
|
+
if (!summit) return null;
|
|
2350
|
+
return summit.reassign_ticket_till_date && summit.reassign_ticket_till_date < summit.end_date ? summit.reassign_ticket_till_date : summit.end_date;
|
|
2351
|
+
};
|
|
2352
|
+
const defaultCurrentTime = () => Math.round(+new Date() / _constants__WEBPACK_IMPORTED_MODULE_2__.MILLISEC_TO_SEC);
|
|
2353
|
+
const getNow = () => (dispatch, getState) => {
|
|
2354
|
+
const {
|
|
2355
|
+
timerState
|
|
2356
|
+
} = getState();
|
|
2357
|
+
return timerState?.nowUtc == null ? defaultCurrentTime() : timerState?.nowUtc;
|
|
2358
|
+
};
|
|
2359
|
+
const useNow = () => {
|
|
2360
|
+
const dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
|
|
2361
|
+
return dispatch(getNow());
|
|
2362
|
+
};
|
|
2363
|
+
|
|
2364
|
+
/***/ }),
|
|
2365
|
+
|
|
2366
|
+
/***/ "./src/components/FilterSortSearch/styles.module.scss":
|
|
2367
|
+
/*!************************************************************!*\
|
|
2368
|
+
!*** ./src/components/FilterSortSearch/styles.module.scss ***!
|
|
2369
|
+
\************************************************************/
|
|
2370
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2371
|
+
|
|
2372
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2373
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2374
|
+
/* harmony export */ "MuiOutlinedInput-notchedOutline": () => (/* binding */ _1),
|
|
2375
|
+
/* harmony export */ "MuiPickersCalendarHeader-labelContainer": () => (/* binding */ _2),
|
|
2376
|
+
/* harmony export */ calendarDisplay: () => (/* binding */ _3),
|
|
2377
|
+
/* harmony export */ container: () => (/* binding */ _4),
|
|
2378
|
+
/* harmony export */ datePickerContainer: () => (/* binding */ _5),
|
|
2379
|
+
/* harmony export */ datepickerClose: () => (/* binding */ _6),
|
|
2380
|
+
/* harmony export */ filterContainer: () => (/* binding */ _7),
|
|
2381
|
+
/* harmony export */ filterDateLabel: () => (/* binding */ _8),
|
|
2382
|
+
/* harmony export */ filterIcon: () => (/* binding */ _9),
|
|
2383
|
+
/* harmony export */ filterLabel: () => (/* binding */ _a),
|
|
2384
|
+
/* harmony export */ filterListContainer: () => (/* binding */ _b),
|
|
2385
|
+
/* harmony export */ filterNumActive: () => (/* binding */ _c),
|
|
2386
|
+
/* harmony export */ filterSortContainer: () => (/* binding */ _d),
|
|
2387
|
+
/* harmony export */ label: () => (/* binding */ _e),
|
|
2388
|
+
/* harmony export */ showDatePicker: () => (/* binding */ _f),
|
|
2389
|
+
/* harmony export */ sortContainer: () => (/* binding */ _10),
|
|
2390
|
+
/* harmony export */ sortIcon: () => (/* binding */ _11),
|
|
2391
|
+
/* harmony export */ sortLabel: () => (/* binding */ _12),
|
|
2392
|
+
/* harmony export */ sortListContainer: () => (/* binding */ _13)
|
|
2393
|
+
/* harmony export */ });
|
|
2394
|
+
// extracted by mini-css-extract-plugin
|
|
2395
|
+
var _1 = "MuiOutlinedInput-notchedOutline___RoimR";
|
|
2396
|
+
var _2 = "MuiPickersCalendarHeader-labelContainer___ooI0V";
|
|
2397
|
+
var _3 = "calendarDisplay___im_jh";
|
|
2398
|
+
var _4 = "container___N3Y4X";
|
|
2399
|
+
var _5 = "datePickerContainer___JW2lO";
|
|
2400
|
+
var _6 = "datepickerClose___V9gHC";
|
|
2401
|
+
var _7 = "filterContainer___rGpYV";
|
|
2402
|
+
var _8 = "filterDateLabel___ifD4p";
|
|
2403
|
+
var _9 = "filterIcon___l21KI";
|
|
2404
|
+
var _a = "filterLabel____P0wn";
|
|
2405
|
+
var _b = "filterListContainer___VmdGq";
|
|
2406
|
+
var _c = "filterNumActive___VuHCJ";
|
|
2407
|
+
var _d = "filterSortContainer___arBvQ";
|
|
2408
|
+
var _e = "label___yNFyj";
|
|
2409
|
+
var _f = "showDatePicker___UpQbp";
|
|
2410
|
+
var _10 = "sortContainer___lRsjU";
|
|
2411
|
+
var _11 = "sortIcon___fVV5K";
|
|
2412
|
+
var _12 = "sortLabel___UqLTC";
|
|
2413
|
+
var _13 = "sortListContainer___cmnBD";
|
|
2414
|
+
|
|
2415
|
+
|
|
2416
|
+
|
|
2417
|
+
/***/ }),
|
|
2418
|
+
|
|
2419
|
+
/***/ "./src/components/OrderSummary/styles.module.scss":
|
|
2420
|
+
/*!********************************************************!*\
|
|
2421
|
+
!*** ./src/components/OrderSummary/styles.module.scss ***!
|
|
2422
|
+
\********************************************************/
|
|
2423
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2424
|
+
|
|
2425
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2426
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2427
|
+
/* harmony export */ orderDetailsMmount: () => (/* binding */ _1),
|
|
2428
|
+
/* harmony export */ orderDetailsTickets: () => (/* binding */ _2),
|
|
2429
|
+
/* harmony export */ orderOrderNumber: () => (/* binding */ _3),
|
|
2430
|
+
/* harmony export */ orderSummaryButton: () => (/* binding */ _4),
|
|
2431
|
+
/* harmony export */ orderSummaryPurchasedInfo: () => (/* binding */ _5),
|
|
2432
|
+
/* harmony export */ orderSummaryPurchasedNumber: () => (/* binding */ _6),
|
|
2433
|
+
/* harmony export */ orderSummaryTable: () => (/* binding */ _7),
|
|
2434
|
+
/* harmony export */ orderSummaryWrapper: () => (/* binding */ _8)
|
|
2435
|
+
/* harmony export */ });
|
|
2436
|
+
// extracted by mini-css-extract-plugin
|
|
2437
|
+
var _1 = "orderDetailsMmount___r3kRA";
|
|
2438
|
+
var _2 = "orderDetailsTickets___m4IjK";
|
|
2439
|
+
var _3 = "orderOrderNumber___RqCbC";
|
|
2440
|
+
var _4 = "orderSummaryButton___uxjht";
|
|
2441
|
+
var _5 = "orderSummaryPurchasedInfo____RBXE";
|
|
2442
|
+
var _6 = "orderSummaryPurchasedNumber___pqy_I";
|
|
2443
|
+
var _7 = "orderSummaryTable___YDnxV";
|
|
2444
|
+
var _8 = "orderSummaryWrapper___RwIER";
|
|
2445
|
+
|
|
2446
|
+
|
|
2447
|
+
|
|
2448
|
+
/***/ }),
|
|
2449
|
+
|
|
2450
|
+
/***/ "./src/components/OrdersList/styles.module.scss":
|
|
2451
|
+
/*!******************************************************!*\
|
|
2452
|
+
!*** ./src/components/OrdersList/styles.module.scss ***!
|
|
2453
|
+
\******************************************************/
|
|
2454
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2455
|
+
|
|
2456
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2457
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2458
|
+
/* harmony export */ assignTicketButton: () => (/* binding */ _1),
|
|
2459
|
+
/* harmony export */ blackButton: () => (/* binding */ _2),
|
|
2460
|
+
/* harmony export */ copyIcon: () => (/* binding */ _3),
|
|
2461
|
+
/* harmony export */ detailsRequiredLabel: () => (/* binding */ _4),
|
|
2462
|
+
/* harmony export */ display_none: () => (/* binding */ _5),
|
|
2463
|
+
/* harmony export */ label: () => (/* binding */ _6),
|
|
2464
|
+
/* harmony export */ orderTicketContainer: () => (/* binding */ _7),
|
|
2465
|
+
/* harmony export */ orderTicketInfo: () => (/* binding */ _8),
|
|
2466
|
+
/* harmony export */ orderTicketInfoContainer: () => (/* binding */ _9),
|
|
2467
|
+
/* harmony export */ orderTicketNoContainer: () => (/* binding */ _a),
|
|
2468
|
+
/* harmony export */ orderTicketNumberTruncated: () => (/* binding */ _b),
|
|
2469
|
+
/* harmony export */ orderWrapper: () => (/* binding */ _c),
|
|
2470
|
+
/* harmony export */ reassignButton: () => (/* binding */ _d),
|
|
2471
|
+
/* harmony export */ tabButtons: () => (/* binding */ _e),
|
|
2472
|
+
/* harmony export */ ticketActionButtons: () => (/* binding */ _f),
|
|
2473
|
+
/* harmony export */ ticketListContainer: () => (/* binding */ _10),
|
|
2474
|
+
/* harmony export */ ticketNo: () => (/* binding */ _11),
|
|
2475
|
+
/* harmony export */ ticketOwnerEmail: () => (/* binding */ _12),
|
|
2476
|
+
/* harmony export */ ticketTicketType: () => (/* binding */ _13),
|
|
2477
|
+
/* harmony export */ viewFinishTicketButton: () => (/* binding */ _14),
|
|
2478
|
+
/* harmony export */ viewMoreButton: () => (/* binding */ _15)
|
|
2479
|
+
/* harmony export */ });
|
|
2480
|
+
// extracted by mini-css-extract-plugin
|
|
2481
|
+
var _1 = "assignTicketButton___zzLsc";
|
|
2482
|
+
var _2 = "blackButton___l9hj9";
|
|
2483
|
+
var _3 = "copyIcon___NkHGO";
|
|
2484
|
+
var _4 = "detailsRequiredLabel___Y2kor";
|
|
2485
|
+
var _5 = "display_none___CqpL3";
|
|
2486
|
+
var _6 = "label___zXDWz";
|
|
2487
|
+
var _7 = "orderTicketContainer___ZJLzk";
|
|
2488
|
+
var _8 = "orderTicketInfo___gemqB";
|
|
2489
|
+
var _9 = "orderTicketInfoContainer____p66V";
|
|
2490
|
+
var _a = "orderTicketNoContainer___vqohN";
|
|
2491
|
+
var _b = "orderTicketNumberTruncated___HXmdw";
|
|
2492
|
+
var _c = "orderWrapper___yDBAo";
|
|
2493
|
+
var _d = "reassignButton___RojM5";
|
|
2494
|
+
var _e = "tabButtons___xTyJA";
|
|
2495
|
+
var _f = "ticketActionButtons___rpSMQ";
|
|
2496
|
+
var _10 = "ticketListContainer___cfmrr";
|
|
2497
|
+
var _11 = "ticketNo___a2iM9";
|
|
2498
|
+
var _12 = "ticketOwnerEmail___Zt4OE";
|
|
2499
|
+
var _13 = "ticketTicketType___Zq_f0";
|
|
2500
|
+
var _14 = "viewFinishTicketButton___HF6Im";
|
|
2501
|
+
var _15 = "viewMoreButton___K_1zT";
|
|
2502
|
+
|
|
2503
|
+
|
|
2504
|
+
|
|
2505
|
+
/***/ }),
|
|
2506
|
+
|
|
2507
|
+
/***/ "./src/components/TicketStatus/styles.module.scss":
|
|
2508
|
+
/*!********************************************************!*\
|
|
2509
|
+
!*** ./src/components/TicketStatus/styles.module.scss ***!
|
|
2510
|
+
\********************************************************/
|
|
2511
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2512
|
+
|
|
2513
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2514
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2515
|
+
/* harmony export */ buttonCancelled: () => (/* binding */ _1),
|
|
2516
|
+
/* harmony export */ buttonComplete: () => (/* binding */ _2),
|
|
2517
|
+
/* harmony export */ buttonIncomplete: () => (/* binding */ _3),
|
|
2518
|
+
/* harmony export */ buttonPill: () => (/* binding */ _4),
|
|
2519
|
+
/* harmony export */ buttonRefundRequested: () => (/* binding */ _5),
|
|
2520
|
+
/* harmony export */ buttonUnassigned: () => (/* binding */ _6),
|
|
2521
|
+
/* harmony export */ ticketStatusContainer: () => (/* binding */ _7)
|
|
2522
|
+
/* harmony export */ });
|
|
2523
|
+
// extracted by mini-css-extract-plugin
|
|
2524
|
+
var _1 = "buttonCancelled___ErlDZ";
|
|
2525
|
+
var _2 = "buttonComplete___llWkZ";
|
|
2526
|
+
var _3 = "buttonIncomplete___TolHg";
|
|
2527
|
+
var _4 = "buttonPill___zq2tc";
|
|
2528
|
+
var _5 = "buttonRefundRequested___pWt30";
|
|
2529
|
+
var _6 = "buttonUnassigned___YDd8X";
|
|
2530
|
+
var _7 = "ticketStatusContainer___qj6fb";
|
|
2531
|
+
|
|
2532
|
+
|
|
2533
|
+
|
|
2534
|
+
/***/ }),
|
|
2535
|
+
|
|
2536
|
+
/***/ "./src/components/styles.module.scss":
|
|
2537
|
+
/*!*******************************************!*\
|
|
2538
|
+
!*** ./src/components/styles.module.scss ***!
|
|
2539
|
+
\*******************************************/
|
|
2540
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2541
|
+
|
|
2542
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2543
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2544
|
+
/* harmony export */ noOrdersFound: () => (/* binding */ _1),
|
|
2545
|
+
/* harmony export */ summitTitleDate: () => (/* binding */ _2),
|
|
2546
|
+
/* harmony export */ widgetHeader: () => (/* binding */ _3)
|
|
2547
|
+
/* harmony export */ });
|
|
2548
|
+
// extracted by mini-css-extract-plugin
|
|
2549
|
+
var _1 = "noOrdersFound___Aog2p";
|
|
2550
|
+
var _2 = "summitTitleDate___Z19Pm";
|
|
2551
|
+
var _3 = "widgetHeader___yY5ge";
|
|
2552
|
+
|
|
2553
|
+
|
|
2554
|
+
|
|
2555
|
+
/***/ }),
|
|
2556
|
+
|
|
2557
|
+
/***/ "@mui/icons-material/Close":
|
|
2558
|
+
/*!********************************************!*\
|
|
2559
|
+
!*** external "@mui/icons-material/Close" ***!
|
|
2560
|
+
\********************************************/
|
|
2561
|
+
/***/ ((module) => {
|
|
2562
|
+
|
|
2563
|
+
module.exports = require("@mui/icons-material/Close");
|
|
2564
|
+
|
|
2565
|
+
/***/ }),
|
|
2566
|
+
|
|
2567
|
+
/***/ "@mui/icons-material/ContentCopy":
|
|
2568
|
+
/*!**************************************************!*\
|
|
2569
|
+
!*** external "@mui/icons-material/ContentCopy" ***!
|
|
2570
|
+
\**************************************************/
|
|
2571
|
+
/***/ ((module) => {
|
|
2572
|
+
|
|
2573
|
+
module.exports = require("@mui/icons-material/ContentCopy");
|
|
2574
|
+
|
|
2575
|
+
/***/ }),
|
|
2576
|
+
|
|
2577
|
+
/***/ "@mui/icons-material/Error":
|
|
2578
|
+
/*!********************************************!*\
|
|
2579
|
+
!*** external "@mui/icons-material/Error" ***!
|
|
2580
|
+
\********************************************/
|
|
2581
|
+
/***/ ((module) => {
|
|
2582
|
+
|
|
2583
|
+
module.exports = require("@mui/icons-material/Error");
|
|
2584
|
+
|
|
2585
|
+
/***/ }),
|
|
2586
|
+
|
|
2587
|
+
/***/ "@mui/icons-material/FilterList":
|
|
2588
|
+
/*!*************************************************!*\
|
|
2589
|
+
!*** external "@mui/icons-material/FilterList" ***!
|
|
2590
|
+
\*************************************************/
|
|
2591
|
+
/***/ ((module) => {
|
|
2592
|
+
|
|
2593
|
+
module.exports = require("@mui/icons-material/FilterList");
|
|
2594
|
+
|
|
2595
|
+
/***/ }),
|
|
2596
|
+
|
|
2597
|
+
/***/ "@mui/icons-material/ImportExport":
|
|
2598
|
+
/*!***************************************************!*\
|
|
2599
|
+
!*** external "@mui/icons-material/ImportExport" ***!
|
|
2600
|
+
\***************************************************/
|
|
2601
|
+
/***/ ((module) => {
|
|
2602
|
+
|
|
2603
|
+
module.exports = require("@mui/icons-material/ImportExport");
|
|
2604
|
+
|
|
2605
|
+
/***/ }),
|
|
2606
|
+
|
|
2607
|
+
/***/ "@mui/icons-material/Search":
|
|
2608
|
+
/*!*********************************************!*\
|
|
2609
|
+
!*** external "@mui/icons-material/Search" ***!
|
|
2610
|
+
\*********************************************/
|
|
2611
|
+
/***/ ((module) => {
|
|
2612
|
+
|
|
2613
|
+
module.exports = require("@mui/icons-material/Search");
|
|
2614
|
+
|
|
2615
|
+
/***/ }),
|
|
2616
|
+
|
|
2617
|
+
/***/ "@mui/material":
|
|
2618
|
+
/*!********************************!*\
|
|
2619
|
+
!*** external "@mui/material" ***!
|
|
2620
|
+
\********************************/
|
|
2621
|
+
/***/ ((module) => {
|
|
2622
|
+
|
|
2623
|
+
module.exports = require("@mui/material");
|
|
2624
|
+
|
|
2625
|
+
/***/ }),
|
|
2626
|
+
|
|
2627
|
+
/***/ "@mui/material/Divider":
|
|
2628
|
+
/*!****************************************!*\
|
|
2629
|
+
!*** external "@mui/material/Divider" ***!
|
|
2630
|
+
\****************************************/
|
|
2631
|
+
/***/ ((module) => {
|
|
2632
|
+
|
|
2633
|
+
module.exports = require("@mui/material/Divider");
|
|
2634
|
+
|
|
2635
|
+
/***/ }),
|
|
2636
|
+
|
|
2637
|
+
/***/ "@mui/material/InputBase":
|
|
2638
|
+
/*!******************************************!*\
|
|
2639
|
+
!*** external "@mui/material/InputBase" ***!
|
|
2640
|
+
\******************************************/
|
|
2641
|
+
/***/ ((module) => {
|
|
2642
|
+
|
|
2643
|
+
module.exports = require("@mui/material/InputBase");
|
|
2644
|
+
|
|
2645
|
+
/***/ }),
|
|
2646
|
+
|
|
2647
|
+
/***/ "@mui/material/Stack":
|
|
2648
|
+
/*!**************************************!*\
|
|
2649
|
+
!*** external "@mui/material/Stack" ***!
|
|
2650
|
+
\**************************************/
|
|
2651
|
+
/***/ ((module) => {
|
|
2652
|
+
|
|
2653
|
+
module.exports = require("@mui/material/Stack");
|
|
2654
|
+
|
|
2655
|
+
/***/ }),
|
|
2656
|
+
|
|
2657
|
+
/***/ "@mui/material/Tab":
|
|
2658
|
+
/*!************************************!*\
|
|
2659
|
+
!*** external "@mui/material/Tab" ***!
|
|
2660
|
+
\************************************/
|
|
2661
|
+
/***/ ((module) => {
|
|
2662
|
+
|
|
2663
|
+
module.exports = require("@mui/material/Tab");
|
|
2664
|
+
|
|
2665
|
+
/***/ }),
|
|
2666
|
+
|
|
2667
|
+
/***/ "@mui/material/Tabs":
|
|
2668
|
+
/*!*************************************!*\
|
|
2669
|
+
!*** external "@mui/material/Tabs" ***!
|
|
2670
|
+
\*************************************/
|
|
2671
|
+
/***/ ((module) => {
|
|
2672
|
+
|
|
2673
|
+
module.exports = require("@mui/material/Tabs");
|
|
2674
|
+
|
|
2675
|
+
/***/ }),
|
|
2676
|
+
|
|
2677
|
+
/***/ "@mui/material/styles":
|
|
2678
|
+
/*!***************************************!*\
|
|
2679
|
+
!*** external "@mui/material/styles" ***!
|
|
2680
|
+
\***************************************/
|
|
2681
|
+
/***/ ((module) => {
|
|
2682
|
+
|
|
2683
|
+
module.exports = require("@mui/material/styles");
|
|
2684
|
+
|
|
2685
|
+
/***/ }),
|
|
2686
|
+
|
|
2687
|
+
/***/ "@mui/material/useMediaQuery":
|
|
2688
|
+
/*!**********************************************!*\
|
|
2689
|
+
!*** external "@mui/material/useMediaQuery" ***!
|
|
2690
|
+
\**********************************************/
|
|
2691
|
+
/***/ ((module) => {
|
|
2692
|
+
|
|
2693
|
+
module.exports = require("@mui/material/useMediaQuery");
|
|
2694
|
+
|
|
2695
|
+
/***/ }),
|
|
2696
|
+
|
|
2697
|
+
/***/ "@mui/x-date-pickers/AdapterDayjs":
|
|
2698
|
+
/*!***************************************************!*\
|
|
2699
|
+
!*** external "@mui/x-date-pickers/AdapterDayjs" ***!
|
|
2700
|
+
\***************************************************/
|
|
2701
|
+
/***/ ((module) => {
|
|
2702
|
+
|
|
2703
|
+
module.exports = require("@mui/x-date-pickers/AdapterDayjs");
|
|
2704
|
+
|
|
2705
|
+
/***/ }),
|
|
2706
|
+
|
|
2707
|
+
/***/ "@mui/x-date-pickers/DatePicker":
|
|
2708
|
+
/*!*************************************************!*\
|
|
2709
|
+
!*** external "@mui/x-date-pickers/DatePicker" ***!
|
|
2710
|
+
\*************************************************/
|
|
2711
|
+
/***/ ((module) => {
|
|
2712
|
+
|
|
2713
|
+
module.exports = require("@mui/x-date-pickers/DatePicker");
|
|
2714
|
+
|
|
2715
|
+
/***/ }),
|
|
2716
|
+
|
|
2717
|
+
/***/ "@mui/x-date-pickers/LocalizationProvider":
|
|
2718
|
+
/*!***********************************************************!*\
|
|
2719
|
+
!*** external "@mui/x-date-pickers/LocalizationProvider" ***!
|
|
2720
|
+
\***********************************************************/
|
|
2721
|
+
/***/ ((module) => {
|
|
2722
|
+
|
|
2723
|
+
module.exports = require("@mui/x-date-pickers/LocalizationProvider");
|
|
2724
|
+
|
|
2725
|
+
/***/ }),
|
|
2726
|
+
|
|
2727
|
+
/***/ "@reduxjs/toolkit":
|
|
2728
|
+
/*!***********************************!*\
|
|
2729
|
+
!*** external "@reduxjs/toolkit" ***!
|
|
2730
|
+
\***********************************/
|
|
2731
|
+
/***/ ((module) => {
|
|
2732
|
+
|
|
2733
|
+
module.exports = require("@reduxjs/toolkit");
|
|
2734
|
+
|
|
2735
|
+
/***/ }),
|
|
2736
|
+
|
|
2737
|
+
/***/ "@sentry/react":
|
|
2738
|
+
/*!********************************!*\
|
|
2739
|
+
!*** external "@sentry/react" ***!
|
|
2740
|
+
\********************************/
|
|
2741
|
+
/***/ ((module) => {
|
|
2742
|
+
|
|
2743
|
+
module.exports = require("@sentry/react");
|
|
2744
|
+
|
|
2745
|
+
/***/ }),
|
|
2746
|
+
|
|
2747
|
+
/***/ "dayjs":
|
|
2748
|
+
/*!************************!*\
|
|
2749
|
+
!*** external "dayjs" ***!
|
|
2750
|
+
\************************/
|
|
2751
|
+
/***/ ((module) => {
|
|
2752
|
+
|
|
2753
|
+
module.exports = require("dayjs");
|
|
2754
|
+
|
|
2755
|
+
/***/ }),
|
|
2756
|
+
|
|
2757
|
+
/***/ "moment-timezone":
|
|
2758
|
+
/*!**********************************!*\
|
|
2759
|
+
!*** external "moment-timezone" ***!
|
|
2760
|
+
\**********************************/
|
|
2761
|
+
/***/ ((module) => {
|
|
2762
|
+
|
|
2763
|
+
module.exports = require("moment-timezone");
|
|
2764
|
+
|
|
2765
|
+
/***/ }),
|
|
2766
|
+
|
|
2767
|
+
/***/ "openstack-uicore-foundation/lib/security/actions":
|
|
2768
|
+
/*!*******************************************************************!*\
|
|
2769
|
+
!*** external "openstack-uicore-foundation/lib/security/actions" ***!
|
|
2770
|
+
\*******************************************************************/
|
|
2771
|
+
/***/ ((module) => {
|
|
2772
|
+
|
|
2773
|
+
module.exports = require("openstack-uicore-foundation/lib/security/actions");
|
|
2774
|
+
|
|
2775
|
+
/***/ }),
|
|
2776
|
+
|
|
2777
|
+
/***/ "openstack-uicore-foundation/lib/security/methods":
|
|
2778
|
+
/*!*******************************************************************!*\
|
|
2779
|
+
!*** external "openstack-uicore-foundation/lib/security/methods" ***!
|
|
2780
|
+
\*******************************************************************/
|
|
2781
|
+
/***/ ((module) => {
|
|
2782
|
+
|
|
2783
|
+
module.exports = require("openstack-uicore-foundation/lib/security/methods");
|
|
2784
|
+
|
|
2785
|
+
/***/ }),
|
|
2786
|
+
|
|
2787
|
+
/***/ "openstack-uicore-foundation/lib/utils/actions":
|
|
2788
|
+
/*!****************************************************************!*\
|
|
2789
|
+
!*** external "openstack-uicore-foundation/lib/utils/actions" ***!
|
|
2790
|
+
\****************************************************************/
|
|
2791
|
+
/***/ ((module) => {
|
|
2792
|
+
|
|
2793
|
+
module.exports = require("openstack-uicore-foundation/lib/utils/actions");
|
|
2794
|
+
|
|
2795
|
+
/***/ }),
|
|
2796
|
+
|
|
2797
|
+
/***/ "prop-types":
|
|
2798
|
+
/*!*****************************!*\
|
|
2799
|
+
!*** external "prop-types" ***!
|
|
2800
|
+
\*****************************/
|
|
2801
|
+
/***/ ((module) => {
|
|
2802
|
+
|
|
2803
|
+
module.exports = require("prop-types");
|
|
2804
|
+
|
|
2805
|
+
/***/ }),
|
|
2806
|
+
|
|
2807
|
+
/***/ "react":
|
|
2808
|
+
/*!************************!*\
|
|
2809
|
+
!*** external "react" ***!
|
|
2810
|
+
\************************/
|
|
2811
|
+
/***/ ((module) => {
|
|
2812
|
+
|
|
2813
|
+
module.exports = require("react");
|
|
2814
|
+
|
|
2815
|
+
/***/ }),
|
|
2816
|
+
|
|
2817
|
+
/***/ "react-i18next":
|
|
2818
|
+
/*!********************************!*\
|
|
2819
|
+
!*** external "react-i18next" ***!
|
|
2820
|
+
\********************************/
|
|
2821
|
+
/***/ ((module) => {
|
|
2822
|
+
|
|
2823
|
+
module.exports = require("react-i18next");
|
|
2824
|
+
|
|
2825
|
+
/***/ }),
|
|
2826
|
+
|
|
2827
|
+
/***/ "react-infinite-scroll-component":
|
|
2828
|
+
/*!**************************************************!*\
|
|
2829
|
+
!*** external "react-infinite-scroll-component" ***!
|
|
2830
|
+
\**************************************************/
|
|
2831
|
+
/***/ ((module) => {
|
|
2832
|
+
|
|
2833
|
+
module.exports = require("react-infinite-scroll-component");
|
|
2834
|
+
|
|
2835
|
+
/***/ }),
|
|
2836
|
+
|
|
2837
|
+
/***/ "react-redux":
|
|
2838
|
+
/*!******************************!*\
|
|
2839
|
+
!*** external "react-redux" ***!
|
|
2840
|
+
\******************************/
|
|
2841
|
+
/***/ ((module) => {
|
|
2842
|
+
|
|
2843
|
+
module.exports = require("react-redux");
|
|
2844
|
+
|
|
2845
|
+
/***/ }),
|
|
2846
|
+
|
|
2847
|
+
/***/ "react/jsx-runtime":
|
|
2848
|
+
/*!************************************!*\
|
|
2849
|
+
!*** external "react/jsx-runtime" ***!
|
|
2850
|
+
\************************************/
|
|
2851
|
+
/***/ ((module) => {
|
|
2852
|
+
|
|
2853
|
+
module.exports = require("react/jsx-runtime");
|
|
2854
|
+
|
|
2855
|
+
/***/ }),
|
|
2856
|
+
|
|
2857
|
+
/***/ "redux":
|
|
2858
|
+
/*!************************!*\
|
|
2859
|
+
!*** external "redux" ***!
|
|
2860
|
+
\************************/
|
|
2861
|
+
/***/ ((module) => {
|
|
2862
|
+
|
|
2863
|
+
module.exports = require("redux");
|
|
2864
|
+
|
|
2865
|
+
/***/ }),
|
|
2866
|
+
|
|
2867
|
+
/***/ "redux-persist":
|
|
2868
|
+
/*!********************************!*\
|
|
2869
|
+
!*** external "redux-persist" ***!
|
|
2870
|
+
\********************************/
|
|
2871
|
+
/***/ ((module) => {
|
|
2872
|
+
|
|
2873
|
+
module.exports = require("redux-persist");
|
|
2874
|
+
|
|
2875
|
+
/***/ }),
|
|
2876
|
+
|
|
2877
|
+
/***/ "redux-persist/integration/react":
|
|
2878
|
+
/*!**************************************************!*\
|
|
2879
|
+
!*** external "redux-persist/integration/react" ***!
|
|
2880
|
+
\**************************************************/
|
|
2881
|
+
/***/ ((module) => {
|
|
2882
|
+
|
|
2883
|
+
module.exports = require("redux-persist/integration/react");
|
|
2884
|
+
|
|
2885
|
+
/***/ }),
|
|
2886
|
+
|
|
2887
|
+
/***/ "redux-persist/lib/storage":
|
|
2888
|
+
/*!********************************************!*\
|
|
2889
|
+
!*** external "redux-persist/lib/storage" ***!
|
|
2890
|
+
\********************************************/
|
|
2891
|
+
/***/ ((module) => {
|
|
2892
|
+
|
|
2893
|
+
module.exports = require("redux-persist/lib/storage");
|
|
2894
|
+
|
|
2895
|
+
/***/ })
|
|
2896
|
+
|
|
2897
|
+
/******/ });
|
|
2898
|
+
/************************************************************************/
|
|
2899
|
+
/******/ // The module cache
|
|
2900
|
+
/******/ var __webpack_module_cache__ = {};
|
|
2901
|
+
/******/
|
|
2902
|
+
/******/ // The require function
|
|
2903
|
+
/******/ function __webpack_require__(moduleId) {
|
|
2904
|
+
/******/ // Check if module is in cache
|
|
2905
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
2906
|
+
/******/ if (cachedModule !== undefined) {
|
|
2907
|
+
/******/ return cachedModule.exports;
|
|
2908
|
+
/******/ }
|
|
2909
|
+
/******/ // Create a new module (and put it into the cache)
|
|
2910
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
2911
|
+
/******/ // no module.id needed
|
|
2912
|
+
/******/ // no module.loaded needed
|
|
2913
|
+
/******/ exports: {}
|
|
2914
|
+
/******/ };
|
|
2915
|
+
/******/
|
|
2916
|
+
/******/ // Execute the module function
|
|
2917
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
2918
|
+
/******/
|
|
2919
|
+
/******/ // Return the exports of the module
|
|
2920
|
+
/******/ return module.exports;
|
|
2921
|
+
/******/ }
|
|
2922
|
+
/******/
|
|
2923
|
+
/************************************************************************/
|
|
2924
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
2925
|
+
/******/ (() => {
|
|
2926
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
2927
|
+
/******/ __webpack_require__.n = (module) => {
|
|
2928
|
+
/******/ var getter = module && module.__esModule ?
|
|
2929
|
+
/******/ () => (module['default']) :
|
|
2930
|
+
/******/ () => (module);
|
|
2931
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
2932
|
+
/******/ return getter;
|
|
2933
|
+
/******/ };
|
|
2934
|
+
/******/ })();
|
|
2935
|
+
/******/
|
|
2936
|
+
/******/ /* webpack/runtime/define property getters */
|
|
2937
|
+
/******/ (() => {
|
|
2938
|
+
/******/ // define getter functions for harmony exports
|
|
2939
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
2940
|
+
/******/ for(var key in definition) {
|
|
2941
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
2942
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
2943
|
+
/******/ }
|
|
2944
|
+
/******/ }
|
|
2945
|
+
/******/ };
|
|
2946
|
+
/******/ })();
|
|
2947
|
+
/******/
|
|
2948
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
2949
|
+
/******/ (() => {
|
|
2950
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
2951
|
+
/******/ })();
|
|
2952
|
+
/******/
|
|
2953
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
2954
|
+
/******/ (() => {
|
|
2955
|
+
/******/ // define __esModule on exports
|
|
2956
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
2957
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
2958
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2959
|
+
/******/ }
|
|
2960
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
2961
|
+
/******/ };
|
|
2962
|
+
/******/ })();
|
|
2963
|
+
/******/
|
|
2964
|
+
/************************************************************************/
|
|
2965
|
+
var __webpack_exports__ = {};
|
|
2966
|
+
/*!*****************************************!*\
|
|
2967
|
+
!*** ./src/my-orders-tickets-widget.js ***!
|
|
2968
|
+
\*****************************************/
|
|
2969
|
+
__webpack_require__.r(__webpack_exports__);
|
|
2970
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2971
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
2972
|
+
/* harmony export */ });
|
|
2973
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
2974
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
2975
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "prop-types");
|
|
2976
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
2977
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "react-redux");
|
|
2978
|
+
/* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
|
|
2979
|
+
/* harmony import */ var redux_persist_integration_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! redux-persist/integration/react */ "redux-persist/integration/react");
|
|
2980
|
+
/* harmony import */ var redux_persist_integration_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(redux_persist_integration_react__WEBPACK_IMPORTED_MODULE_3__);
|
|
2981
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-i18next */ "react-i18next");
|
|
2982
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_i18next__WEBPACK_IMPORTED_MODULE_4__);
|
|
2983
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mui/material */ "@mui/material");
|
|
2984
|
+
/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_mui_material__WEBPACK_IMPORTED_MODULE_5__);
|
|
2985
|
+
/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./src/store.js");
|
|
2986
|
+
/* harmony import */ var _components_MyOrdersTickets__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/MyOrdersTickets */ "./src/components/MyOrdersTickets.js");
|
|
2987
|
+
/* harmony import */ var _actions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./actions */ "./src/actions.js");
|
|
2988
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime");
|
|
2989
|
+
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__);
|
|
2990
|
+
/**
|
|
2991
|
+
* Copyright 2024 OpenStack Foundation
|
|
2992
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
2993
|
+
* you may not use this file except in compliance with the License.
|
|
2994
|
+
* You may obtain a copy of the License at
|
|
2995
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
2996
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
2997
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
2998
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
2999
|
+
* See the License for the specific language governing permissions and
|
|
3000
|
+
* limitations under the License.
|
|
3001
|
+
* */
|
|
3002
|
+
|
|
3003
|
+
|
|
3004
|
+
|
|
3005
|
+
|
|
3006
|
+
|
|
3007
|
+
|
|
3008
|
+
|
|
3009
|
+
|
|
3010
|
+
|
|
3011
|
+
|
|
3012
|
+
function MyOrdersMyTicketsWidget(props) {
|
|
3013
|
+
const {
|
|
3014
|
+
loginUrl,
|
|
3015
|
+
supportEmail,
|
|
3016
|
+
summit,
|
|
3017
|
+
apiBaseUrl,
|
|
3018
|
+
user,
|
|
3019
|
+
clientId
|
|
3020
|
+
} = props;
|
|
3021
|
+
const {
|
|
3022
|
+
t
|
|
3023
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__.useTranslation)();
|
|
3024
|
+
const {
|
|
3025
|
+
store,
|
|
3026
|
+
persistor
|
|
3027
|
+
} = (0,_store__WEBPACK_IMPORTED_MODULE_6__.useInitStore)({
|
|
3028
|
+
loginUrl,
|
|
3029
|
+
supportEmail,
|
|
3030
|
+
summit,
|
|
3031
|
+
user,
|
|
3032
|
+
apiBaseUrl,
|
|
3033
|
+
clientId
|
|
3034
|
+
});
|
|
3035
|
+
const handleBeforeLift = () => {
|
|
3036
|
+
const params = new URLSearchParams(window.location.search);
|
|
3037
|
+
const flush = params.has("flushState");
|
|
3038
|
+
if (flush) store.dispatch({
|
|
3039
|
+
type: _actions__WEBPACK_IMPORTED_MODULE_8__.RESET_STATE,
|
|
3040
|
+
payload: null
|
|
3041
|
+
});
|
|
3042
|
+
};
|
|
3043
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
3044
|
+
store.dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_8__.setSummit)(summit));
|
|
3045
|
+
}, [summit]);
|
|
3046
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
3047
|
+
store.dispatch((0,_actions__WEBPACK_IMPORTED_MODULE_8__.setUser)(user));
|
|
3048
|
+
}, [user]);
|
|
3049
|
+
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(react_redux__WEBPACK_IMPORTED_MODULE_2__.Provider, {
|
|
3050
|
+
store: store,
|
|
3051
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(redux_persist_integration_react__WEBPACK_IMPORTED_MODULE_3__.PersistGate, {
|
|
3052
|
+
onBeforeLift: handleBeforeLift,
|
|
3053
|
+
loading: null,
|
|
3054
|
+
persistor: persistor,
|
|
3055
|
+
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__.Box, {
|
|
3056
|
+
sx: {
|
|
3057
|
+
padding: {
|
|
3058
|
+
xs: 2,
|
|
3059
|
+
md: 0,
|
|
3060
|
+
lg: 0
|
|
3061
|
+
}
|
|
3062
|
+
},
|
|
3063
|
+
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("h3", {
|
|
3064
|
+
children: t("orders.title")
|
|
3065
|
+
})
|
|
3066
|
+
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_components_MyOrdersTickets__WEBPACK_IMPORTED_MODULE_7__["default"], {
|
|
3067
|
+
loginUrl: loginUrl,
|
|
3068
|
+
supportEmail: supportEmail,
|
|
3069
|
+
summit: summit,
|
|
3070
|
+
apiBaseUrl: apiBaseUrl
|
|
3071
|
+
})]
|
|
3072
|
+
})
|
|
3073
|
+
});
|
|
3074
|
+
}
|
|
3075
|
+
MyOrdersMyTicketsWidget.propTypes = {
|
|
3076
|
+
loginUrl: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
3077
|
+
supportEmail: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
3078
|
+
summit: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
3079
|
+
apiBaseUrl: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string),
|
|
3080
|
+
user: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object)
|
|
3081
|
+
};
|
|
3082
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MyOrdersMyTicketsWidget);
|
|
3083
|
+
/******/ return __webpack_exports__;
|
|
3084
|
+
/******/ })()
|
|
3085
|
+
;
|
|
3086
|
+
});
|
|
3087
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,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QztFQUVWLG9CQUNFMEMsc0RBQUEsQ0FBQzRZLGlEQUFRO0lBQUN0RSxLQUFLLEVBQUVBLEtBQU07SUFBQXBULFFBQUEsZUFDckJoQix1REFBQSxDQUFDMlksd0VBQVc7TUFDVlUsWUFBWSxFQUFFUCxnQkFBaUI7TUFDL0J6RyxPQUFPLEVBQUUsSUFBSztNQUNkMEMsU0FBUyxFQUFFQSxTQUFVO01BQUEvVCxRQUFBLGdCQUVyQmxCLHNEQUFBLENBQUNxQyw4Q0FBRztRQUFDZixFQUFFLEVBQUU7VUFBRTBELE9BQU8sRUFBRTtZQUFFa0MsRUFBRSxFQUFFLENBQUM7WUFBRTBCLEVBQUUsRUFBRSxDQUFDO1lBQUVDLEVBQUUsRUFBRTtVQUFFO1FBQUUsQ0FBRTtRQUFBM0gsUUFBQSxlQUM1Q2xCLHNEQUFBO1VBQUFrQixRQUFBLEVBQUtWLENBQUMsQ0FBQyxjQUFjO1FBQUMsQ0FBSztNQUFDLENBQ3pCLENBQUMsZUFDTlIsc0RBQUEsQ0FBQzJILG1FQUFlO1FBQ2R5TSxRQUFRLEVBQUVBLFFBQVM7UUFDbkIyRSxZQUFZLEVBQUVBLFlBQWE7UUFDM0I5YyxNQUFNLEVBQUVBLE1BQU87UUFDZkYsVUFBVSxFQUFFQTtNQUFXLENBQ3hCLENBQUM7SUFBQSxDQUNTO0VBQUMsQ0FDTixDQUFDO0FBRWY7QUFFQStjLHVCQUF1QixDQUFDOVcsU0FBUyxHQUFHO0VBQ2xDb1MsUUFBUSxFQUFFL1UsMERBQWdCO0VBQzFCMFosWUFBWSxFQUFFMVosMERBQWdCO0VBQzlCcEQsTUFBTSxFQUFFb0QsMERBQWdCO0VBQ3hCdEQsVUFBVSxFQUFFc0QsMERBQWdCO0VBQzVCL0IsSUFBSSxFQUFFK0IsMERBQWdCdUw7QUFDeEIsQ0FBQztBQUVELGlFQUFla08sdUJBQXVCLEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9hY3Rpb25zLmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL0ZpbHRlclNvcnRTZWFyY2gvRGF0ZXBpY2tlci5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJTb3J0U2VhcmNoL0ZpbHRlci5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJTb3J0U2VhcmNoL1NlYXJjaC5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJTb3J0U2VhcmNoL1NvcnQuanMiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvRmlsdGVyU29ydFNlYXJjaC9pbmRleC5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9NeU9yZGVyc1RpY2tldHMuanMiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvT3JkZXJTdW1tYXJ5L09yZGVyU3VtbWFyeVRhYmxlLmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL09yZGVyU3VtbWFyeS9SZWZ1bmRFbWFpbFN1cHBvcnQuanMiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvT3JkZXJTdW1tYXJ5L2luZGV4LmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL09yZGVyc0xpc3QvT3JkZXJMaXN0SXRlbS5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9PcmRlcnNMaXN0L09yZGVyTGlzdFRpY2tldHMuanMiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvT3JkZXJzTGlzdC9PcmRlck51bWJlci5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9PcmRlcnNMaXN0L09yZGVyc0xpc3REZXNrdG9wTW9iaWxlLmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL09yZGVyc0xpc3QvaW5kZXguanMiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvVGlja2V0U3RhdHVzL2luZGV4LmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9yZWR1Y2VyLmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9zdG9yZS5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvdXRpbHMvYXV0aC5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvdXRpbHMvY29uc3RhbnRzLmpzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy91dGlscy9pbmRleC5qcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9GaWx0ZXJTb3J0U2VhcmNoL3N0eWxlcy5tb2R1bGUuc2NzcyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvY29tcG9uZW50cy9PcmRlclN1bW1hcnkvc3R5bGVzLm1vZHVsZS5zY3NzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL09yZGVyc0xpc3Qvc3R5bGVzLm1vZHVsZS5zY3NzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC8uL3NyYy9jb21wb25lbnRzL1RpY2tldFN0YXR1cy9zdHlsZXMubW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0Ly4vc3JjL2NvbXBvbmVudHMvc3R5bGVzLm1vZHVsZS5zY3NzIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQ2xvc2VcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAbXVpL2ljb25zLW1hdGVyaWFsL0NvbnRlbnRDb3B5XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS9pY29ucy1tYXRlcmlhbC9FcnJvclwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvRmlsdGVyTGlzdFwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvSW1wb3J0RXhwb3J0XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAbXVpL21hdGVyaWFsXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS9tYXRlcmlhbC9EaXZpZGVyXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS9tYXRlcmlhbC9JbnB1dEJhc2VcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAbXVpL21hdGVyaWFsL1N0YWNrXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS9tYXRlcmlhbC9UYWJcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAbXVpL21hdGVyaWFsL1RhYnNcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkBtdWkvbWF0ZXJpYWwvdXNlTWVkaWFRdWVyeVwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkBtdWkveC1kYXRlLXBpY2tlcnMvQWRhcHRlckRheWpzXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS94LWRhdGUtcGlja2Vycy9EYXRlUGlja2VyXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiQG11aS94LWRhdGUtcGlja2Vycy9Mb2NhbGl6YXRpb25Qcm92aWRlclwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcIkByZWR1eGpzL3Rvb2xraXRcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJAc2VudHJ5L3JlYWN0XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwiZGF5anNcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJtb21lbnQtdGltZXpvbmVcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vbGliL3NlY3VyaXR5L2FjdGlvbnNcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vbGliL3NlY3VyaXR5L21ldGhvZHNcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vbGliL3V0aWxzL2FjdGlvbnNcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJwcm9wLXR5cGVzXCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1pMThuZXh0XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtaW5maW5pdGUtc2Nyb2xsLWNvbXBvbmVudFwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXJlZHV4XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QvanN4LXJ1bnRpbWVcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWR1eFwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC9leHRlcm5hbCBjb21tb25qcyBcInJlZHV4LXBlcnNpc3RcIiIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWR1eC1wZXJzaXN0L2ludGVncmF0aW9uL3JlYWN0XCIiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L2V4dGVybmFsIGNvbW1vbmpzIFwicmVkdXgtcGVyc2lzdC9saWIvc3RvcmFnZVwiIiwid2VicGFjazovL215LW9yZGVycy10aWNrZXRzLXdpZGdldC93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0L3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9teS1vcmRlcnMtdGlja2V0cy13aWRnZXQvLi9zcmMvbXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwibXktb3JkZXJzLXRpY2tldHMtd2lkZ2V0XCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIm15LW9yZGVycy10aWNrZXRzLXdpZGdldFwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJteS1vcmRlcnMtdGlja2V0cy13aWRnZXRcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwiaW1wb3J0IHsgZ2V0QWNjZXNzVG9rZW5TYWZlbHkgfSBmcm9tIFwiLi91dGlscy9hdXRoXCI7XG5pbXBvcnQge1xuICBhdXRoRXJyb3JIYW5kbGVyLFxuICBnZXRSZXF1ZXN0LFxuICBkZWxldGVSZXF1ZXN0LFxuICBjcmVhdGVBY3Rpb24sXG4gIHN0b3BMb2FkaW5nLFxuICBzdGFydExvYWRpbmcsXG4gIHB1dFJlcXVlc3Rcbn0gZnJvbSBcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi9saWIvdXRpbHMvYWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgRklSU1RfUEFHRSxcbiAgREVGQVVMVF9JVEVNU19QRVJfUEFHRSxcbiAgT05FX1BBR0VfTkVYVFxufSBmcm9tIFwiLi91dGlscy9jb25zdGFudHNcIjtcblxuZXhwb3J0IGNvbnN0IFJFU0VUX1NUQVRFID0gXCJSRVNFVF9TVEFURVwiO1xuZXhwb3J0IGNvbnN0IFJFU0VUX0ZJTFRFUiA9IFwiUkVTRVRfRklMVEVSXCI7XG5cbi8vIE9SREVSUyBDT05TVFNcbmV4cG9ydCBjb25zdCBHRVRfVVNFUl9PUkRFUlMgPSBcIkdFVF9PUkRFUlNcIjtcbmV4cG9ydCBjb25zdCBSRUZVTkRfT1JERVIgPSBcIlJFRlVORF9PUkRFUlwiO1xuZXhwb3J0IGNvbnN0IFNFVF9BQ1RJVkVfT1JERVJfSUQgPSBcIlNFVF9BQ1RJVkVfT1JERVJfSURcIjtcbmV4cG9ydCBjb25zdCBGSUxURVJfVVNFUl9PUkRFUlMgPSBcIkZJTFRFUl9VU0VSX09SREVSU1wiO1xuXG4vLyBUSUNLRVRTIENPTlNUU1xuZXhwb3J0IGNvbnN0IEdFVF9USUNLRVRTID0gXCJHRVRfVElDS0VUU1wiO1xuZXhwb3J0IGNvbnN0IEFTU0lHTl9USUNLRVQgPSBcIkFTU0lHTl9USUNLRVRcIjtcbmV4cG9ydCBjb25zdCBSRU1PVkVfVElDS0VUX0FUVEVOREVFID0gXCJSRU1PVkVfVElDS0VUX0FUVEVOREVFXCI7XG5leHBvcnQgY29uc3QgUkVGVU5EX1RJQ0tFVCA9IFwiUkVGVU5EX1RJQ0tFVFwiO1xuZXhwb3J0IGNvbnN0IFJFU0VORF9OT1RJRklDQVRJT04gPSBcIlJFU0VORF9OT1RJRklDQVRJT05cIjtcbmV4cG9ydCBjb25zdCBHRVRfVElDS0VUU19CWV9PUkRFUiA9IFwiR0VUX1RJQ0tFVFNfQllfT1JERVJcIjtcbmV4cG9ydCBjb25zdCBHRVRfVElDS0VUU19CWV9PUkRFUl9FUlJPUiA9IFwiR0VUX1RJQ0tFVFNfQllfT1JERVJfRVJST1JcIjtcbmV4cG9ydCBjb25zdCBHRVRfT1JERVJfVElDS0VUX0RFVEFJTFMgPSBcIkdFVF9PUkRFUl9USUNLRVRfREVUQUlMU1wiO1xuZXhwb3J0IGNvbnN0IEdFVF9USUNLRVRfREVUQUlMUyA9IFwiR0VUX1RJQ0tFVF9ERVRBSUxTXCI7XG5leHBvcnQgY29uc3QgVElDS0VUX0FUVEVOREVFX0tFWVMgPSB7XG4gIGVtYWlsOiBcImF0dGVuZGVlX2VtYWlsXCIsXG4gIGZpcnN0TmFtZTogXCJhdHRlbmRlZV9maXJzdF9uYW1lXCIsXG4gIGxhc3ROYW1lOiBcImF0dGVuZGVlX2xhc3RfbmFtZVwiLFxuICBjb21wYW55OiBcImF0dGVuZGVlX2NvbXBhbnlcIixcbiAgZGlzY2xhaW1lckFjY2VwdGVkOiBcImRpc2NsYWltZXJfYWNjZXB0ZWRcIixcbiAgZXh0cmFRdWVzdGlvbnM6IFwiZXh0cmFfcXVlc3Rpb25zXCJcbn07XG5cbi8vIFVTRVIgQ09OVFNcbmV4cG9ydCBjb25zdCBTVEFSVF9MT0FESU5HX0lEUF9QUk9GSUxFID0gXCJTVEFSVF9MT0FESU5HX0lEUF9QUk9GSUxFXCI7XG5leHBvcnQgY29uc3QgU1RPUF9MT0FESU5HX0lEUF9QUk9GSUxFID0gXCJTVE9QX0xPQURJTkdfSURQX1BST0ZJTEVcIjtcbmV4cG9ydCBjb25zdCBVUERBVEVfSURQX1BST0ZJTEUgPSBcIlVQREFURV9JRFBfUFJPRklMRVwiO1xuZXhwb3J0IGNvbnN0IFNFVF9VU0VSID0gXCJTRVRfVVNFUlwiO1xuXG4vLyBTVU1NSVQgQ09OU1RTXG5leHBvcnQgY29uc3QgU0VUX1NVTU1JVCA9IFwiU0VUX1NVTU1JVFwiO1xuZXhwb3J0IGNvbnN0IEdFVF9NQUlOX0VYVFJBX1FVRVNUSU9OUyA9IFwiR0VUX01BSU5fRVhUUkFfUVVFU1RJT05TXCI7XG5leHBvcnQgY29uc3QgUkVDRUlWRV9NQVJLRVRJTkdfU0VUVElOR1MgPSBcIlJFQ0VJVkVfTUFSS0VUSU5HX1NFVFRJTkdTXCI7XG5leHBvcnQgY29uc3QgQ0xFQVJfTUFSS0VUSU5HX1NFVFRJTkdTID0gXCJDTEVBUl9NQVJLRVRJTkdfU0VUVElOR1NcIjtcblxuZXhwb3J0IGNvbnN0IHJlc2V0U3RhdGUgPSAoKSA9PiAoZGlzcGF0Y2gpID0+IHtcbiAgZGlzcGF0Y2goY3JlYXRlQWN0aW9uKFJFU0VUX1NUQVRFKSh7fSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc2V0RmlsdGVyID0gKCkgPT4gKGRpc3BhdGNoKSA9PiB7XG4gIGRpc3BhdGNoKGNyZWF0ZUFjdGlvbihSRVNFVF9GSUxURVIpKHt9KSk7XG59O1xuXG4vLyBGSUxURVIgLyBTT1JUIENPTlNUQU5UU1xuZXhwb3J0IGNvbnN0IEZJTFRFUl9WQVJfREFURSA9IFwiRklMVEVSX1ZBUl9EQVRFXCI7XG5leHBvcnQgY29uc3QgRklMVEVSX1ZBUl9PUkRFUl9OVU1CRVIgPSBcIkZJTFRFUl9WQVJfT1JERVJfTlVNQkVSXCI7XG5cbi8vIEZJTFRFUi9TT1JUIEFDVElPTlNcbmV4cG9ydCBjb25zdCBwYXJzZUZpbHRlciA9IChmaWx0ZXJPYmopID0+IHtcbiAgY29uc3QgZmlsdGVyID0gW107XG4gIGlmIChmaWx0ZXJPYmoudHlwZSA9PT0gRklMVEVSX1ZBUl9EQVRFKSB7XG4gICAgZmlsdGVyLnB1c2goYCR7ZmlsdGVyT2JqLm5hbWV9W10ke2ZpbHRlck9iai5sb3dlcn0mJiR7ZmlsdGVyT2JqLnVwcGVyfWApO1xuICB9XG4gIGlmIChmaWx0ZXJPYmoudHlwZSA9PT0gRklMVEVSX1ZBUl9PUkRFUl9OVU1CRVIpIHtcbiAgICBmaWx0ZXIucHVzaChgJHtmaWx0ZXJPYmoubmFtZX09QCR7ZmlsdGVyT2JqLnZhbHVlfWApO1xuICB9XG4gIHJldHVybiBmaWx0ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U29ydERpcmVjdGlvbiA9IChkaXJlY3Rpb24pID0+XG4gIGRpcmVjdGlvbiA9PT0gXCJhc2NcIiA/IFwiK1wiIDogXCItXCI7XG5cbi8vIE9SREVSUyBBQ1RJT05TXG5leHBvcnQgY29uc3QgZ2V0VXNlck9yZGVycyA9XG4gICh7XG4gICAgcGFnZSA9IEZJUlNUX1BBR0UsXG4gICAgcGVyUGFnZSA9IERFRkFVTFRfSVRFTVNfUEVSX1BBR0UsXG4gICAgZmlsdGVyID0ge30sXG4gICAgc29ydCA9IHt9LFxuICAgIG5leHQgPSBmYWxzZVxuICB9KSA9PlxuICBhc3luYyAoZGlzcGF0Y2gsIGdldFN0YXRlLCB7IGFwaUJhc2VVcmwgfSkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHdpZGdldFN0YXRlOiB7IHN1bW1pdCB9XG4gICAgfSA9IGdldFN0YXRlKCk7XG5cbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IGdldEFjY2Vzc1Rva2VuU2FmZWx5KClcbiAgICAgIC5jYXRjaCgoKSA9PiBQcm9taXNlLnJlamVjdCgpKTtcblxuICAgIGRpc3BhdGNoKHN0YXJ0TG9hZGluZygpKTtcbiAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICBhY2Nlc3NfdG9rZW46IGFjY2Vzc1Rva2VuLFxuICAgICAgb3JkZXI6IFwiLWlkXCIsXG4gICAgICBcImZpbHRlcltdXCI6IFtcInN0YXR1cz09UGFpZFwiXSxcbiAgICAgIHJlbGF0aW9uczogXCJub25lXCIsXG4gICAgICBwYWdlOiBuZXh0ID8gcGFnZSArIE9ORV9QQUdFX05FWFQgOiBwYWdlLFxuICAgICAgcGVyX3BhZ2U6IHBlclBhZ2VcbiAgICB9O1xuXG4gICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcikubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsdGVycyA9IHBhcnNlRmlsdGVyKGZpbHRlcik7XG4gICAgICBwYXJhbXNbXCJmaWx0ZXJbXVwiXSA9IFsuLi5wYXJhbXNbXCJmaWx0ZXJbXVwiXSwgLi4uZmlsdGVyc107XG4gICAgfVxuICAgIGlmIChPYmplY3Qua2V5cyhzb3J0KS5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMub3JkZXIgPSBgJHtnZXRTb3J0RGlyZWN0aW9uKHNvcnQuZGlyZWN0aW9uKX0ke3NvcnQubmFtZX1gO1xuICAgIH1cblxuICAgIHJldHVybiBnZXRSZXF1ZXN0KFxuICAgICAgbnVsbCxcbiAgICAgIGNyZWF0ZUFjdGlvbihHRVRfVVNFUl9PUkRFUlMpLFxuICAgICAgYCR7YXBpQmFzZVVybH0vYXBpL3YxL3N1bW1pdHMvJHtzdW1taXQuaWR9L29yZGVycy9tZWAsXG4gICAgICBhdXRoRXJyb3JIYW5kbGVyXG4gICAgKShwYXJhbXMpKGRpc3BhdGNoKVxuICAgICAgLnRoZW4oKHBheWxvYWQpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goc3RvcExvYWRpbmcoKSk7XG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBkaXNwYXRjaChzdG9wTG9hZGluZygpKTtcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgICB9KTtcbiAgfTtcblxuZXhwb3J0IGNvbnN0IHNldEFjdGl2ZU9yZGVySWQgPSAob3JkZXJJZCkgPT4gYXN5bmMgKGRpc3BhdGNoKSA9PlxuICBkaXNwYXRjaChjcmVhdGVBY3Rpb24oU0VUX0FDVElWRV9PUkRFUl9JRCkob3JkZXJJZCkpO1xuXG4vLyBVU0VSIEFDVElPTlNcbmV4cG9ydCBjb25zdCBzZXRVc2VyID0gKHVzZXIpID0+IChkaXNwYXRjaCkgPT5cbiAgZGlzcGF0Y2goY3JlYXRlQWN0aW9uKFNFVF9VU0VSKSh1c2VyKSk7XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQcm9maWxlID1cbiAgKHByb2ZpbGUpID0+XG4gIGFzeW5jIChkaXNwYXRjaCwgeyBpZHBCYXNlVXJsIH0pID0+IHtcblxuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgZ2V0QWNjZXNzVG9rZW5TYWZlbHkoKVxuICAgICAgLmNhdGNoKCgpID0+IFByb21pc2UucmVqZWN0KCkpO1xuXG4gICAgZGlzcGF0Y2goc3RhcnRMb2FkaW5nKCkpO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgYWNjZXNzX3Rva2VuOiBhY2Nlc3NUb2tlblxuICAgIH07XG5cbiAgICBkaXNwYXRjaChjcmVhdGVBY3Rpb24oU1RBUlRfTE9BRElOR19JRFBfUFJPRklMRSkoKSk7XG5cbiAgICByZXR1cm4gcHV0UmVxdWVzdChcbiAgICAgIG51bGwsXG4gICAgICBjcmVhdGVBY3Rpb24oVVBEQVRFX0lEUF9QUk9GSUxFKSxcbiAgICAgIC8vIFRPRE86IG5lZWQgSURQX0JBU0VfVVJMXG4gICAgICBgJHtpZHBCYXNlVXJsfS9hcGkvdjEvdXNlcnMvbWVgLFxuICAgICAgcHJvZmlsZSxcbiAgICAgIGF1dGhFcnJvckhhbmRsZXJcbiAgICApKHBhcmFtcykoZGlzcGF0Y2gpXG4gICAgICAudGhlbigocGF5bG9hZCkgPT4gcGF5bG9hZClcbiAgICAgIC5jYXRjaCgoKSA9PiBkaXNwYXRjaChjcmVhdGVBY3Rpb24oU1RPUF9MT0FESU5HX0lEUF9QUk9GSUxFKSgpKSk7XG4gIH07XG5cbi8vIFRJQ0tFVCBBQ1RJT05TXG5cbmV4cG9ydCBjb25zdCBnZXRVc2VyVGlja2V0cyA9XG4gICh7IHBhZ2UgPSBGSVJTVF9QQUdFLCBwZXJQYWdlID0gREVGQVVMVF9JVEVNU19QRVJfUEFHRSB9KSA9PlxuICBhc3luYyAoZGlzcGF0Y2gsIGdldFN0YXRlLCB7IGFwaUJhc2VVcmwgfSkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHVzZXJTdGF0ZTogeyB1c2VyUHJvZmlsZSB9LFxuICAgICAgc3VtbWl0XG4gICAgfSA9IGdldFN0YXRlKCk7XG4gICAgaWYgKCFzdW1taXQpIHJldHVybiBQcm9taXNlLnJlamVjdCgpO1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gYXdhaXQgZ2V0QWNjZXNzVG9rZW5TYWZlbHkoKVxuICAgICAgLmNhdGNoKCgpID0+IFByb21pc2UucmVqZWN0KCkpO1xuXG4gICAgaWYgKCF1c2VyUHJvZmlsZS5pZCkgcmV0dXJuIFByb21pc2UucmVqZWN0KCk7XG4gICAgZGlzcGF0Y2goc3RhcnRMb2FkaW5nKCkpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGFjY2Vzc190b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICBmaWx0ZXI6IFwic3RhdHVzPT1QYWlkXCIsXG4gICAgICBleHBhbmQ6IFwib3JkZXIsIG93bmVyLCB0aWNrZXRfdHlwZVwiLFxuICAgICAgb3JkZXI6IFwiLWlkXCIsXG4gICAgICBmaWVsZHM6XG4gICAgICAgIFwib3JkZXIuaWQsb3JkZXIub3duZXJfZmlyc3RfbmFtZSxvcmRlci5vd25lcl9sYXN0X25hbWUsb3JkZXIub3duZXJfZW1haWwsb3duZXIuZmlyc3RfbmFtZSxvd25lci5sYXN0X25hbWUsb3duZXIuc3RhdHVzXCIsXG4gICAgICByZWxhdGlvbnM6IFwibm9uZVwiLFxuICAgICAgcGFnZSxcbiAgICAgIHBlcl9wYWdlOiBwZXJQYWdlXG4gICAgfTtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdChcbiAgICAgIG51bGwsXG4gICAgICBjcmVhdGVBY3Rpb24oR0VUX1RJQ0tFVFMpLFxuICAgICAgYCR7YXBpQmFzZVVybH0vYXBpL3YxL3N1bW1pdHMvJHtzdW1taXQuaWR9L29yZGVycy9hbGwvdGlja2V0cy9tZWAsXG4gICAgICBhdXRoRXJyb3JIYW5kbGVyXG4gICAgKShwYXJhbXMpKGRpc3BhdGNoKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBkaXNwYXRjaChzdG9wTG9hZGluZygpKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goc3RvcExvYWRpbmcoKSk7XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfSk7XG4gIH07XG5cbmV4cG9ydCBjb25zdCBnZXRUaWNrZXRzQnlPcmRlciA9XG4gICh7IG9yZGVySWQsIHBhZ2UgPSBGSVJTVF9QQUdFLCBwZXJQYWdlID0gREVGQVVMVF9JVEVNU19QRVJfUEFHRSB9KSA9PlxuICBhc3luYyAoZGlzcGF0Y2gsIGdldFN0YXRlLCB7IGFwaUJhc2VVcmwgfSkgPT4ge1xuICAgIGRpc3BhdGNoKHN0YXJ0TG9hZGluZygpKTtcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IGdldEFjY2Vzc1Rva2VuU2FmZWx5KClcbiAgICAgIC5jYXRjaCgoKSA9PiBQcm9taXNlLnJlamVjdCgpKTtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGFjY2Vzc190b2tlbjogYWNjZXNzVG9rZW4sXG4gICAgICBleHBhbmQ6XG4gICAgICAgIFwicmVmdW5kX3JlcXVlc3RzLG93bmVyLG93bmVyLmV4dHJhX3F1ZXN0aW9ucyxiYWRnZSxiYWRnZS5mZWF0dXJlcyx0aWNrZXRfdHlwZVwiLFxuICAgICAgb3JkZXI6IFwiK2lkXCIsXG4gICAgICBwYWdlLFxuICAgICAgcGVyX3BhZ2U6IHBlclBhZ2VcbiAgICB9O1xuICAgIHJldHVybiBnZXRSZXF1ZXN0KFxuICAgICAgbnVsbCxcbiAgICAgIGNyZWF0ZUFjdGlvbihHRVRfVElDS0VUU19CWV9PUkRFUiksXG4gICAgICBgJHthcGlCYXNlVXJsfS9hcGkvdjEvc3VtbWl0cy9hbGwvb3JkZXJzLyR7b3JkZXJJZH0vdGlja2V0c2AsXG4gICAgICBhdXRoRXJyb3JIYW5kbGVyXG4gICAgKShwYXJhbXMpKGRpc3BhdGNoKVxuICAgICAgLnRoZW4oKHBheWxvYWQpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goc3RvcExvYWRpbmcoKSk7XG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBkaXNwYXRjaChzdG9wTG9hZGluZygpKTtcbiAgICAgICAgZGlzcGF0Y2goY3JlYXRlQWN0aW9uKEdFVF9USUNLRVRTX0JZX09SREVSX0VSUk9SKSk7XG4gICAgICAgIHJldHVybiBlO1xuICAgICAgfSk7XG4gIH07XG5cbmV4cG9ydCBjb25zdCByZXNlbmROb3RpZmljYXRpb24gPVxuICAodGlja2V0KSA9PlxuICBhc3luYyAoZGlzcGF0Y2gsIHsgYXBpQmFzZVVybCB9KSA9PiB7XG5cbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IGdldEFjY2Vzc1Rva2VuU2FmZWx5KClcbiAgICAgIC5jYXRjaCgoKSA9PiBQcm9taXNlLnJlamVjdCgpKTtcblxuICAgIGNvbnN0IHsgbWVzc2FnZSB9ID0gdGlja2V0O1xuXG4gICAgZGlzcGF0Y2goc3RhcnRMb2FkaW5nKCkpO1xuXG4gICAgY29uc3Qgb3JkZXJJZCA9IHRpY2tldC5vcmRlciA/IHRpY2tldC5vcmRlci5pZCA6IHRpY2tldC5vcmRlcl9pZDtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIGFjY2Vzc190b2tlbjogYWNjZXNzVG9rZW5cbiAgICB9O1xuXG4gICAgcmV0dXJuIHB1dFJlcXVlc3QoXG4gICAgICBudWxsLFxuICAgICAgY3JlYXRlQWN0aW9uKFJFU0VORF9OT1RJRklDQVRJT04pLFxuICAgICAgYCR7YXBpQmFzZVVybH0vYXBpL3YxL3N1bW1pdHMvYWxsL29yZGVycy8ke29yZGVySWR9L3RpY2tldHMvJHt0aWNrZXQuaWR9L2F0dGVuZGVlL3JlaW52aXRlYCxcbiAgICAgIHsgbWVzc2FnZSB9LFxuICAgICAgYXV0aEVycm9ySGFuZGxlclxuICAgICkocGFyYW1zKShkaXNwYXRjaClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgZGlzcGF0Y2goc3RvcExvYWRpbmcoKSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoKHN0b3BMb2FkaW5nKCkpO1xuICAgICAgICByZXR1cm4gZTtcbiAgICAgIH0pO1xuICB9O1xuXG5leHBvcnQgY29uc3QgcmVmdW5kVGlja2V0ID1cbiAgKHsgdGlja2V0IH0pID0+XG4gIGFzeW5jIChkaXNwYXRjaCwgZ2V0U3RhdGUsIHsgYXBpQmFzZVVybCB9KSA9PiB7XG5cbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IGF3YWl0IGdldEFjY2Vzc1Rva2VuU2FmZWx5KClcbiAgICAgIC5jYXRjaCgoKSA9PiBQcm9taXNlLnJlamVjdCgpKTtcblxuICAgIGRpc3BhdGNoKHN0YXJ0TG9hZGluZygpKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIG9yZGVyU3RhdGU6IHsgY3VycmVudF9wYWdlOiBvcmRlclBhZ2UgfSxcbiAgICAgIHRpY2tldFN0YXRlOiB7IGN1cnJlbnRfcGFnZTogdGlja2V0UGFnZSB9XG4gICAgfSA9IGdldFN0YXRlKCk7XG5cbiAgICBjb25zdCBvcmRlcklkID0gdGlja2V0Lm9yZGVyID8gdGlja2V0Lm9yZGVyLmlkIDogdGlja2V0Lm9yZGVyX2lkO1xuXG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgYWNjZXNzX3Rva2VuOiBhY2Nlc3NUb2tlblxuICAgIH07XG5cbiAgICByZXR1cm4gZGVsZXRlUmVxdWVzdChcbiAgICAgIG51bGwsXG4gICAgICBjcmVhdGVBY3Rpb24oUkVGVU5EX1RJQ0tFVCksXG4gICAgICBgJHthcGlCYXNlVXJsfS9hcGkvdjEvc3VtbWl0cy9hbGwvb3JkZXJzLyR7b3JkZXJJZH0vdGlja2V0cy8ke3RpY2tldC5pZH0vcmVmdW5kYCxcbiAgICAgIHt9LFxuICAgICAgYXV0aEVycm9ySGFuZGxlclxuICAgICkocGFyYW1zKShkaXNwYXRjaClcbiAgICAgIC50aGVuKChwYXlsb2FkKSA9PiB7XG4gICAgICAgIGRpc3BhdGNoKHN0b3BMb2FkaW5nKCkpO1xuXG4gICAgICAgIGlmICh0aWNrZXQub3JkZXJfaWQpIHtcbiAgICAgICAgICBkaXNwYXRjaChnZXRVc2VyT3JkZXJzKHsgcGFnZTogb3JkZXJQYWdlIH0pKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXNwYXRjaChnZXRVc2VyVGlja2V0cyh7IHBhZ2U6IHRpY2tldFBhZ2UgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwYXlsb2FkO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZSkgPT4ge1xuICAgICAgICBkaXNwYXRjaChzdG9wTG9hZGluZygpKTtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuICB9O1xuXG4vLyBTVU1NSVQgQUNUSU9OU1xuZXhwb3J0IGNvbnN0IHNldFN1bW1pdCA9IChzdW1taXQpID0+IGFzeW5jIChkaXNwYXRjaCkgPT5cbiAgZGlzcGF0Y2goY3JlYXRlQWN0aW9uKFNFVF9TVU1NSVQpKHN1bW1pdCkpO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvU3RhY2tcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7IEFkYXB0ZXJEYXlqcyB9IGZyb20gXCJAbXVpL3gtZGF0ZS1waWNrZXJzL0FkYXB0ZXJEYXlqc1wiO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uUHJvdmlkZXIgfSBmcm9tIFwiQG11aS94LWRhdGUtcGlja2Vycy9Mb2NhbGl6YXRpb25Qcm92aWRlclwiO1xuaW1wb3J0IHsgRGF0ZVBpY2tlciB9IGZyb20gXCJAbXVpL3gtZGF0ZS1waWNrZXJzL0RhdGVQaWNrZXJcIjtcbmltcG9ydCBDbG9zZUljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQ2xvc2VcIjtcbmltcG9ydCB7IEZJTFRFUl9WQVJfREFURSB9IGZyb20gXCIuLi8uLi9hY3Rpb25zXCI7XG5pbXBvcnQgeyBnZXRFcG9jaExvd2VyVXBwZXJJblNlY29uZHMgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQmFzaWNEYXRlUGlja2VyKHsgb25GaWx0ZXIsIG9uUmVzZXQgfSkge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IG5vdyA9IGRheWpzKCk7XG4gIGNvbnN0IFtkYXRlVmFsdWUsIHNldERhdGVWYWx1ZV0gPSB1c2VTdGF0ZShub3cpO1xuICBjb25zdCBvbkRhdGVDaGFuZ2UgPSAodmFsKSA9PiB7XG4gICAgc2V0RGF0ZVZhbHVlKHZhbCk7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbC4kZCk7XG4gICAgY29uc3QgeyBsb3dlciwgdXBwZXIgfSA9IGdldEVwb2NoTG93ZXJVcHBlckluU2Vjb25kcyhkYXRlKTtcbiAgICBvbkZpbHRlcih7XG4gICAgICB0eXBlOiBGSUxURVJfVkFSX0RBVEUsXG4gICAgICBuYW1lOiBcImNyZWF0ZWRcIixcbiAgICAgIGRhdGUsXG4gICAgICBsb3dlcixcbiAgICAgIHVwcGVyXG4gICAgfSk7XG4gIH07XG4gIGNvbnN0IG9uUmVzZXRBY3Rpb24gPSAoKSA9PiB7XG4gICAgb25SZXNldCgpO1xuICAgIHNldERhdGVWYWx1ZShub3cpO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmZpbHRlckRhdGVMYWJlbH0+e3QoXCJmaWx0ZXIucHVyY2hhc2VkX29uXCIpfTwvZGl2PlxuICAgICAgPFN0YWNrXG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBkaXJlY3Rpb249XCJyb3dcIlxuICAgICAgICBzeD17eyBwdDogMiwgcGI6IDIgfX1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuZGF0ZVBpY2tlckNvbnRhaW5lcn1cbiAgICAgID5cbiAgICAgICAgPENsb3NlSWNvblxuICAgICAgICAgIGZvbnRTaXplPVwibGFyZ2VcIlxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmRhdGVwaWNrZXJDbG9zZX1cbiAgICAgICAgICBvbkNsaWNrPXtvblJlc2V0QWN0aW9ufVxuICAgICAgICAvPlxuICAgICAgICA8TG9jYWxpemF0aW9uUHJvdmlkZXIgZGF0ZUFkYXB0ZXI9e0FkYXB0ZXJEYXlqc30+XG4gICAgICAgICAgPERhdGVQaWNrZXJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmNhbGVuZGFyRGlzcGxheX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkRhdGVDaGFuZ2V9XG4gICAgICAgICAgICB2YWx1ZT17ZGF0ZVZhbHVlfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvTG9jYWxpemF0aW9uUHJvdmlkZXI+XG4gICAgICA8L1N0YWNrPlxuICAgIDwvPlxuICApO1xufVxuXG5CYXNpY0RhdGVQaWNrZXIucHJvcFR5cGVzID0ge1xuICBvbkZpbHRlcjogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uUmVzZXQ6IFByb3BUeXBlcy5mdW5jXG59O1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VSZWYsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFN0YWNrIGZyb20gXCJAbXVpL21hdGVyaWFsL1N0YWNrXCI7XG5pbXBvcnQgRmlsdGVyTGlzdEljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvRmlsdGVyTGlzdFwiO1xuaW1wb3J0IHsgQm94IH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBCYXNpY0RhdGVQaWNrZXIgZnJvbSBcIi4vRGF0ZXBpY2tlclwiO1xuaW1wb3J0ICogYXMgc3R5bGVzIGZyb20gXCIuL3N0eWxlcy5tb2R1bGUuc2Nzc1wiO1xuXG5mdW5jdGlvbiBGaWx0ZXIoeyBvbkZpbHRlciwgb25SZXNldCB9KSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgW3Nob3dGaWx0ZXJMaXN0LCBzZXRTaG93RmlsdGVyTGlzdF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzaG93RGF0ZXBpY2tlciwgc2V0U2hvd0RhdGVwaWNrZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbZmlsdGVyTnVtQWN0aXZlLCBzZXRGaWx0ZXJOdW1BY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBmaWx0ZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGhhbmRsZUZpbHRlckNsaWNrT3V0c2lkZSA9IChldmVudCkgPT4ge1xuICAgIGlmIChmaWx0ZXJSZWYuY3VycmVudCAmJiAhZmlsdGVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgaWYgKHNob3dGaWx0ZXJMaXN0KSB7XG4gICAgICAgIHNldFNob3dGaWx0ZXJMaXN0KGZhbHNlKTtcbiAgICAgICAgc2V0U2hvd0RhdGVwaWNrZXIoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlRmlsdGVyQ2xpY2tPdXRzaWRlLCBmYWxzZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVGaWx0ZXJDbGlja091dHNpZGUsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbc2hvd0ZpbHRlckxpc3RdKTtcblxuICBjb25zdCB0b2dnbGUgPSAoKSA9PiB7XG4gICAgc2V0U2hvd0ZpbHRlckxpc3QoIXNob3dGaWx0ZXJMaXN0KTtcbiAgICBzZXRTaG93RGF0ZXBpY2tlcighc2hvd0RhdGVwaWNrZXIpO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDxCb3ggY2xhc3NOYW1lPXtzdHlsZXMuZmlsdGVyQ29udGFpbmVyfSByZWY9e2ZpbHRlclJlZn0+XG4gICAgICA8U3RhY2tcbiAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgIHN4PXt7IHB0OiAyLCBwYjogMiB9fVxuICAgICAgICBvbkNsaWNrPXt0b2dnbGV9XG4gICAgICA+XG4gICAgICAgIDxGaWx0ZXJMaXN0SWNvbiBmb250U2l6ZT1cImxhcmdlXCIgY2xhc3NOYW1lPXtzdHlsZXMuZmlsdGVySWNvbn0gLz5cbiAgICAgICAgey8qKiBjdXJyZW50bHkganVzdCBzaG93aW5nIFwiMVwiIGJlY2F1c2Ugd2UncmUgY3VycmVudGx5IG9ubHkgZmlsdGVyaW5nIG9uZSBjcml0ZXJpYSAtIGNyZWF0ZWQgZGF0ZSAqL31cbiAgICAgICAge2ZpbHRlck51bUFjdGl2ZSAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmZpbHRlck51bUFjdGl2ZX0+MTwvZGl2Pn1cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuZmlsdGVyTGFiZWx9Pnt0KFwiZmlsdGVyLmZpbHRlclwiKX08L3NwYW4+XG4gICAgICA8L1N0YWNrPlxuICAgICAgPEJveFxuICAgICAgICBjbGFzc05hbWU9e2Ake3N0eWxlcy5maWx0ZXJMaXN0Q29udGFpbmVyfSAke3N0eWxlcy5jb250YWluZXJ9ICR7XG4gICAgICAgICAgc2hvd0ZpbHRlckxpc3QgPyBzdHlsZXMuc2hvd0RhdGVQaWNrZXIgOiBcIlwiXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8QmFzaWNEYXRlUGlja2VyXG4gICAgICAgICAgb25SZXNldD17KCkgPT4ge1xuICAgICAgICAgICAgb25SZXNldCgpO1xuICAgICAgICAgICAgc2V0RmlsdGVyTnVtQWN0aXZlKGZhbHNlKTtcbiAgICAgICAgICAgIHRvZ2dsZSgpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgb25GaWx0ZXI9eyhmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgIG9uRmlsdGVyKGZpbHRlcik7XG4gICAgICAgICAgICBzZXRGaWx0ZXJOdW1BY3RpdmUodHJ1ZSk7XG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgIDwvQm94PlxuICAgIDwvQm94PlxuICApO1xufVxuXG5GaWx0ZXIucHJvcFR5cGVzID0ge1xuICBvbkZpbHRlcjogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbHRlcjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgc3R5bGVkIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9TZWFyY2hcIjtcbmltcG9ydCBDbG9zZUljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQ2xvc2VcIjtcbmltcG9ydCBJbnB1dEJhc2UgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvSW5wdXRCYXNlXCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgRklMVEVSX1ZBUl9PUkRFUl9OVU1CRVIgfSBmcm9tIFwiLi4vLi4vYWN0aW9uc1wiO1xuXG5jb25zdCBTZWFyY2hDb250YWluZXIgPSBzdHlsZWQoXCJkaXZcIikoKCkgPT4gKHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgbWFyZ2luUmlnaHQ6IFwiMFwiLFxuICBtYXJnaW5MZWZ0OiBcIjBcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxuICBkaXNwbGF5OiBcImJsb2NrXCJcbn0pKTtcbmNvbnN0IFNlYXJjaEljb25XcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKCgpID0+ICh7XG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIlxufSkpO1xuY29uc3QgU3R5bGVkSW5wdXRCYXNlID0gc3R5bGVkKElucHV0QmFzZSkoKCkgPT4gKHtcbiAgY29sb3I6IFwiaW5oZXJpdFwiLFxuICBib3JkZXJCb3R0b206IFwiMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC40MilcIixcbiAgcGFkZGluZ0xlZnQ6IFwiMjVweFwiLFxuICBwYWRkaW5nUmlnaHQ6IFwiMjVweFwiLFxuICBmb250U2l6ZTogXCIxZW1cIlxufSkpO1xuY29uc3QgQ2xvc2VJY29uV3JhcHBlciA9IHN0eWxlZChDbG9zZUljb24pKCgpID0+ICh7XG4gIHBhZGRpbmc6IFwiMnB4XCIsXG4gIGZvbnRTaXplOiBcIjEuNWVtXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogXCIwXCIsXG4gIHJpZ2h0OiBcIjBcIixcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gIGp1c3RpZnlDb250ZW50OiBcImNlbnRlclwiLFxuICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICB6SW5kZXg6IFwiMTAwMFwiXG59KSk7XG5cbmZ1bmN0aW9uIFNlYXJjaCh7IG9uU2VhcmNoLCBvblJlc2V0IH0pIHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBbc2hvd0Nsb3NlLCBzZXRTaG93Q2xvc2VdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKFwiXCIpO1xuICBjb25zdCBvbktleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBrZXksXG4gICAgICBuYXRpdmVFdmVudDoge1xuICAgICAgICB0YXJnZXQ6IHsgdmFsdWUgfVxuICAgICAgfVxuICAgIH0gPSBldmVudDtcbiAgICBpZiAoa2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIG9uU2VhcmNoKHtcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIG5hbWU6IFwibnVtYmVyXCIsXG4gICAgICAgIHR5cGU6IEZJTFRFUl9WQVJfT1JERVJfTlVNQkVSXG4gICAgICB9KTtcbiAgICAgIHNldFNob3dDbG9zZSh0cnVlKTtcbiAgICB9XG4gIH07XG4gIGNvbnN0IHJlc2V0U2VhcmNoID0gKCkgPT4ge1xuICAgIHNldFNlYXJjaFZhbHVlKFwiXCIpO1xuICAgIHNldFNob3dDbG9zZShmYWxzZSk7XG4gICAgb25SZXNldCgpO1xuICB9O1xuICByZXR1cm4gKFxuICAgIDxCb3g+XG4gICAgICA8U2VhcmNoQ29udGFpbmVyPlxuICAgICAgICB7c2hvd0Nsb3NlICYmIChcbiAgICAgICAgICA8Q2xvc2VJY29uV3JhcHBlciBvbkNsaWNrPXtyZXNldFNlYXJjaH0+XG4gICAgICAgICAgICA8Q2xvc2VJY29uIC8+XG4gICAgICAgICAgPC9DbG9zZUljb25XcmFwcGVyPlxuICAgICAgICApfVxuICAgICAgICA8U2VhcmNoSWNvbldyYXBwZXI+XG4gICAgICAgICAgPFNlYXJjaEljb24gLz5cbiAgICAgICAgPC9TZWFyY2hJY29uV3JhcHBlcj5cbiAgICAgICAgPFN0eWxlZElucHV0QmFzZVxuICAgICAgICAgIHBsYWNlaG9sZGVyPXt0KFwib3JkZXJfc2VhcmNoLm9yZGVyX251bWJlclwiKX1cbiAgICAgICAgICBpbnB1dFByb3BzPXt7IFwiYXJpYS1sYWJlbFwiOiBcInNlYXJjaFwiIH19XG4gICAgICAgICAgdmFsdWU9e3NlYXJjaFZhbHVlfVxuICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0U2VhcmNoVmFsdWUoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICAvPlxuICAgICAgPC9TZWFyY2hDb250YWluZXI+XG4gICAgPC9Cb3g+XG4gICk7XG59XG5cblNlYXJjaC5wcm9wVHlwZXMgPSB7XG4gIG9uU2VhcmNoOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25SZXNldDogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNlYXJjaDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTdGFjayBmcm9tIFwiQG11aS9tYXRlcmlhbC9TdGFja1wiO1xuaW1wb3J0IHsgQm94LCBCdXR0b24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IEltcG9ydEV4cG9ydEljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvSW1wb3J0RXhwb3J0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSBcIi4vc3R5bGVzLm1vZHVsZS5zY3NzXCI7XG5cbmZ1bmN0aW9uIFNvcnQoeyBvblNvcnQgfSkge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IFtzaG93U29ydCwgc2V0U2hvd1NvcnRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBzb3J0UmVmID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBoYW5kbGVTb3J0Q2xpY2tPdXRzaWRlID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKHNvcnRSZWYuY3VycmVudCAmJiAhc29ydFJlZi5jdXJyZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcbiAgICAgIHNldFNob3dTb3J0KGZhbHNlKTtcbiAgICB9XG4gIH07XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZVNvcnRDbGlja091dHNpZGUsIGZhbHNlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGhhbmRsZVNvcnRDbGlja091dHNpZGUsIGZhbHNlKTtcbiAgICB9O1xuICB9LCBbc2hvd1NvcnRdKTtcblxuICBjb25zdCB0b2dnbGUgPSAoKSA9PiB7XG4gICAgc2V0U2hvd1NvcnQoIXNob3dTb3J0KTtcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8Qm94IGNsYXNzTmFtZT17c3R5bGVzLnNvcnRDb250YWluZXJ9IG9uQ2xpY2s9e3RvZ2dsZX0+XG4gICAgICA8U3RhY2tcbiAgICAgICAgcmVmPXtzb3J0UmVmfVxuICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgZGlyZWN0aW9uPVwicm93XCJcbiAgICAgICAgc3g9e3sgcHQ6IDIsIHBiOiAyIH19XG4gICAgICA+XG4gICAgICAgIDxJbXBvcnRFeHBvcnRJY29uIGZvbnRTaXplPVwibGFyZ2VcIiBjbGFzc05hbWU9e3N0eWxlcy5zb3J0SWNvbn0gLz5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtzdHlsZXMuc29ydExhYmVsfT57dChcInNvcnQuc29ydFwiKX08L3NwYW4+XG4gICAgICA8L1N0YWNrPlxuICAgICAge3Nob3dTb3J0ICYmIChcbiAgICAgICAgPEJveCBjbGFzc05hbWU9e2Ake3N0eWxlcy5zb3J0TGlzdENvbnRhaW5lcn0gJHtzdHlsZXMuY29udGFpbmVyfWB9PlxuICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtzdHlsZXMubGFiZWx9IG9uQ2xpY2s9eygpID0+IG9uU29ydChcImRlc2NcIil9PlxuICAgICAgICAgICAge3QoXCJzb3J0Lm5ld19maXJzdFwiKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT17c3R5bGVzLmxhYmVsfSBvbkNsaWNrPXsoKSA9PiBvblNvcnQoXCJhc2NcIil9PlxuICAgICAgICAgICAge3QoXCJzb3J0Lm9sZF9maXJzdFwiKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9Cb3g+XG4gICAgICApfVxuICAgIDwvQm94PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTb3J0O1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgR3JpZCB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgRmlsdGVyIGZyb20gXCIuL0ZpbHRlclwiO1xuaW1wb3J0IFNvcnQgZnJvbSBcIi4vU29ydFwiO1xuaW1wb3J0IFNlYXJjaCBmcm9tIFwiLi9TZWFyY2hcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcblxuZnVuY3Rpb24gRmlsdGVyU29ydFNlYXJjaCh7IG9uRmlsdGVyLCBvblNvcnQsIG9uU2VhcmNoLCBvblJlc2V0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8R3JpZCBjb250YWluZXIganVzdGlmeT1cImZsZXgtZW5kXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgPEdyaWRcbiAgICAgICAgaXRlbVxuICAgICAgICB4cz17Nn1cbiAgICAgICAgY29udGFpbmVyXG4gICAgICAgIHBhZGRpbmc9ezF9XG4gICAgICAgIGdhcD17Mn1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMuZmlsdGVyU29ydENvbnRhaW5lcn1cbiAgICAgICAgc3g9e3sgcHQ6IDIsIHBiOiAyIH19XG4gICAgICA+XG4gICAgICAgIDxHcmlkIGl0ZW0+XG4gICAgICAgICAgPEZpbHRlciBvbkZpbHRlcj17b25GaWx0ZXJ9IG9uUmVzZXQ9e29uUmVzZXR9IC8+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICAgPEdyaWQgaXRlbT5cbiAgICAgICAgICA8U29ydCBvblNvcnQ9e29uU29ydH0gLz5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgPC9HcmlkPlxuICAgICAgPEdyaWQgaXRlbSB4cz17Nn0gY29udGFpbmVyIGp1c3RpZnlDb250ZW50PVwiZmxleC1lbmRcIj5cbiAgICAgICAgPFNlYXJjaCBvblNlYXJjaD17b25TZWFyY2h9IG9uUmVzZXQ9e29uUmVzZXR9IC8+XG4gICAgICA8L0dyaWQ+XG4gICAgPC9HcmlkPlxuICApO1xufVxuXG5GaWx0ZXJTb3J0U2VhcmNoLnByb3BUeXBlcyA9IHtcbiAgb25GaWx0ZXI6IFByb3BUeXBlcy5mdW5jLFxuICBvblNvcnQ6IFByb3BUeXBlcy5mdW5jLFxuICBvblNlYXJjaDogUHJvcFR5cGVzLmZ1bmMsXG4gIG9uUmVzZXQ6IFByb3BUeXBlcy5mdW5jXG59O1xuXG5leHBvcnQgZGVmYXVsdCBGaWx0ZXJTb3J0U2VhcmNoO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3Rvciwgc2hhbGxvd0VxdWFsIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IEluZmluaXRlU2Nyb2xsIGZyb20gXCJyZWFjdC1pbmZpbml0ZS1zY3JvbGwtY29tcG9uZW50XCI7XG5pbXBvcnQgRmlsdGVyU29ydFNlYXJjaCBmcm9tIFwiLi9GaWx0ZXJTb3J0U2VhcmNoXCI7XG5pbXBvcnQgT3JkZXJzTGlzdCBmcm9tIFwiLi9PcmRlcnNMaXN0XCI7XG5pbXBvcnQgeyBnZXRTdW1taXRGb3JtYXR0ZWREYXRlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXRVc2VyT3JkZXJzLCByZXNldEZpbHRlciB9IGZyb20gXCIuLi9hY3Rpb25zXCI7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSBcIi4vc3R5bGVzLm1vZHVsZS5zY3NzXCI7XG5cbmZ1bmN0aW9uIE15T3JkZXJzVGlja2V0cygpIHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IHtcbiAgICBzdW1taXQsXG4gICAgbWVtYmVyT3JkZXJzLFxuICAgIG9yZGVyc19jdXJyZW50X3BhZ2UsXG4gICAgb3JkZXJzX3Blcl9wYWdlLFxuICAgIG9yZGVyc190b3RhbFxuICB9ID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZS53aWRnZXRTdGF0ZSB8fCB7fSwgc2hhbGxvd0VxdWFsKTtcbiAgY29uc3QgW2hhc01vcmUsIHNldEhhc01vcmVdID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtzZWFyY2hOZXh0LCBzZXRTZWFyY2hOZXh0XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgW3NvcnQsIHNldFNvcnRdID0gdXNlU3RhdGUoe30pO1xuXG4gIGNvbnN0IG9uUmVzZXQgPSAoKSA9PiB7XG4gICAgc2V0U29ydCh7fSk7XG4gICAgc2V0RmlsdGVyKHt9KTtcbiAgICBzZXRTZWFyY2hOZXh0KGZhbHNlKTtcbiAgICBkaXNwYXRjaChyZXNldEZpbHRlcigpKTtcbiAgfTtcblxuICBjb25zdCBmZXRjaERhdGEgPSBhc3luYyAoKSA9PiB7XG4gICAgZGlzcGF0Y2goXG4gICAgICBnZXRVc2VyT3JkZXJzKHtcbiAgICAgICAgcGFnZTogb3JkZXJzX2N1cnJlbnRfcGFnZSxcbiAgICAgICAgcGVyUGFnZTogb3JkZXJzX3Blcl9wYWdlLFxuICAgICAgICBuZXh0OiBzZWFyY2hOZXh0LFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIHNvcnRcbiAgICAgIH0pXG4gICAgKS50aGVuKChyZXMpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgcmVzLnJlc3BvbnNlPy5kYXRhPy5sZW5ndGggPiBvcmRlcnNfcGVyX3BhZ2UgJiZcbiAgICAgICAgbWVtYmVyT3JkZXJzLmxlbmd0aCA9PT0gb3JkZXJzX3RvdGFsXG4gICAgICApXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpO1xuICAgIH0pO1xuICB9O1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoRGF0YSgpO1xuICB9LCBbZmlsdGVyLCBzb3J0LCBzZWFyY2hOZXh0XSk7XG5cbiAgY29uc3Qgb25GaWx0ZXIgPSAoZmlsdGVyKSA9PiB7XG4gICAgc2V0U29ydCh7fSk7XG4gICAgc2V0RmlsdGVyKGZpbHRlcik7XG4gIH07XG4gIGNvbnN0IG9uU29ydCA9IChkaXJlY3Rpb24pID0+IHtcbiAgICBzZXRGaWx0ZXIoe30pO1xuICAgIHNldFNvcnQoeyBkaXJlY3Rpb24sIG5hbWU6IFwiY3JlYXRlZFwiIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxGaWx0ZXJTb3J0U2VhcmNoXG4gICAgICAgIG9uRmlsdGVyPXtvbkZpbHRlcn1cbiAgICAgICAgb25Tb3J0PXtvblNvcnR9XG4gICAgICAgIG9uU2VhcmNoPXtvbkZpbHRlcn1cbiAgICAgICAgb25SZXNldD17b25SZXNldH1cbiAgICAgIC8+XG4gICAgICA8Qm94XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLndpZGdldEhlYWRlcn1cbiAgICAgICAgc3g9e3sgcGFkZGluZzogeyB4czogMiwgbWQ6IDAsIGxnOiAwIH0gfX1cbiAgICAgID5cbiAgICAgICAgPGgyIGNsYXNzTmFtZT17c3R5bGVzLnN1bW1pdFRpdGxlRGF0ZX0+e3N1bW1pdD8ubmFtZX08L2gyPlxuICAgICAgICA8aDIgY2xhc3NOYW1lPXtzdHlsZXMuc3VtbWl0VGl0bGVEYXRlfT5cbiAgICAgICAgICB7Z2V0U3VtbWl0Rm9ybWF0dGVkRGF0ZShzdW1taXQpfVxuICAgICAgICA8L2gyPlxuICAgICAgPC9Cb3g+XG4gICAgICB7bWVtYmVyT3JkZXJzLmxlbmd0aCA/IChcbiAgICAgICAgPEluZmluaXRlU2Nyb2xsXG4gICAgICAgICAgZGF0YUxlbmd0aD17bWVtYmVyT3JkZXJzLmxlbmd0aH1cbiAgICAgICAgICBuZXh0PXsoKSA9PiBzZXRTZWFyY2hOZXh0KHRydWUpfVxuICAgICAgICAgIGhhc01vcmU9e2hhc01vcmV9XG4gICAgICAgICAgc2Nyb2xsVGhyZXNob2xkPXsxfVxuICAgICAgICA+XG4gICAgICAgICAge21lbWJlck9yZGVycz8ubWFwKChvcmRlcikgPT4gKFxuICAgICAgICAgICAgPE9yZGVyc0xpc3Qga2V5PXtvcmRlci5pZH0gb3JkZXI9e29yZGVyfSBzdW1taXQ9e3N1bW1pdH0gLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC9JbmZpbml0ZVNjcm9sbD5cbiAgICAgICkgOiAoXG4gICAgICAgIDxCb3ggY2xhc3NOYW1lPXtzdHlsZXMubm9PcmRlcnNGb3VuZH0+e3QoXCJvcmRlcnMubm9fb3JkZXJzXCIpfTwvQm94PlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKTtcbn1cbmV4cG9ydCBkZWZhdWx0IE15T3JkZXJzVGlja2V0cztcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IEdyaWQsIEJveCB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgRGl2aWRlciBmcm9tIFwiQG11aS9tYXRlcmlhbC9EaXZpZGVyXCI7XG5pbXBvcnQgeyBjYWxjdWxhdGVPcmRlclRvdGFscywgZm9ybWF0Q3VycmVuY3kgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcblxuZnVuY3Rpb24gT3JkZXJTdW1tYXJ5VGFibGUoeyBvcmRlciwgc3VtbWl0LCB0aWNrZXRzIH0pIHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IGRpc2NvdW50VG90YWwsIHJlZnVuZFRvdGFsLCB0YXhlc1RvdGFsLCBhbW91bnRUb3RhbCwgdGlja2V0U3VtbWFyeSB9ID1cbiAgICBjYWxjdWxhdGVPcmRlclRvdGFscyh7IG9yZGVyLCBzdW1taXQsIHRpY2tldHMgfSk7XG4gIGNvbnN0IGh1bmRyZWQgPSAxMDA7XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94IGNsYXNzTmFtZT17c3R5bGVzLm9yZGVyU3VtbWFyeVRhYmxlfT5cbiAgICAgIHt0aWNrZXRTdW1tYXJ5Py5sZW5ndGggPiAwICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7dGlja2V0U3VtbWFyeS5tYXAoKHRpY2tldCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGlja2V0VG90YWwgPVxuICAgICAgICAgICAgICAodGlja2V0LnF0eSAqICh0aWNrZXQudGlja2V0X3R5cGUuY29zdCAqIGh1bmRyZWQpKSAvIGh1bmRyZWQ7XG5cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICAgICAgY29udGFpbmVyXG4gICAgICAgICAgICAgICAga2V5PXtgdGl4b3JkZXJfJHt0aWNrZXQudGlja2V0X3R5cGUuY3JlYXRlZH1gfVxuICAgICAgICAgICAgICAgIHN4PXt7IHBiOiAxIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8R3JpZCB4cz17OH0gaXRlbT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICB4e3RpY2tldC5xdHl9IHt0aWNrZXQudGlja2V0X3R5cGUubmFtZX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgICAgPEdyaWQgeHM9ezR9IGl0ZW0gYWxpZ249XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAge2Zvcm1hdEN1cnJlbmN5KHRpY2tldFRvdGFsLCB7IGN1cnJlbmN5OiBvcmRlci5jdXJyZW5jeSB9KX1cbiAgICAgICAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICAgIHtvcmRlci5kaXNjb3VudF9hbW91bnQgPiAwICYmIChcbiAgICAgICAgPEdyaWQgY29udGFpbmVyIHN4PXt7IHBiOiAxIH19PlxuICAgICAgICAgIDxHcmlkIHhzPXs4fSBpdGVtPlxuICAgICAgICAgICAge3QoXCJvcmRlcl9zdW1tYXJ5LmRpc2NvdW50c1wiKX1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgPEdyaWQgeHM9ezR9IGl0ZW0gYWxpZ249XCJyaWdodFwiPlxuICAgICAgICAgICAgLXtkaXNjb3VudFRvdGFsfVxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgPC9HcmlkPlxuICAgICAgKX1cbiAgICAgIHtvcmRlci50YXhlc19hbW91bnQgPiAwICYmIChcbiAgICAgICAgPEdyaWQgY29udGFpbmVyIHN4PXt7IHBiOiAxIH19PlxuICAgICAgICAgIDxHcmlkIHhzPXs4fSBpdGVtPlxuICAgICAgICAgICAge3QoXCJvcmRlcl9zdW1tYXJ5LnRheGVzXCIpfVxuICAgICAgICAgIDwvR3JpZD5cbiAgICAgICAgICA8R3JpZCB4cz17NH0gaXRlbSBhbGlnbj1cInJpZ2h0XCI+XG4gICAgICAgICAgICB7dGF4ZXNUb3RhbH1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICl9XG4gICAgICB7b3JkZXIuc3RhdHVzID09PSBcIlBhaWRcIiAmJiAoXG4gICAgICAgIDxHcmlkIGNvbnRhaW5lciBzeD17eyBwYjogMSB9fT5cbiAgICAgICAgICA8R3JpZCB4cz17OH0gaXRlbT5cbiAgICAgICAgICAgIHt0KFwib3JkZXJfc3VtbWFyeS5hbW91bnRfcGFpZFwiKX1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgICAgPEdyaWQgeHM9ezR9IGl0ZW0gYWxpZ249XCJyaWdodFwiPlxuICAgICAgICAgICAgLXthbW91bnRUb3RhbH1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICl9XG4gICAgICB7cmVmdW5kVG90YWwgPiAwICYmIChcbiAgICAgICAgPEdyaWQgY29udGFpbmVyIHN4PXt7IHBiOiAxIH19PlxuICAgICAgICAgIDxHcmlkIHhzPXs4fSBpdGVtPlxuICAgICAgICAgICAge3QoXCJvcmRlcl9zdW1tYXJ5LnJlZnVuZHNcIil9XG4gICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgIDxHcmlkIHhzPXs0fSBpdGVtIGFsaWduPVwicmlnaHRcIj5cbiAgICAgICAgICAgIHtyZWZ1bmRUb3RhbH1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICl9XG4gICAgICA8RGl2aWRlciAvPlxuICAgICAgPEdyaWQgY29udGFpbmVyIHN4PXt7IHB0OiAxLCBwYjogMSB9fT5cbiAgICAgICAgPEdyaWQgeHM9ezh9IGl0ZW0+XG4gICAgICAgICAge3QoXCJvcmRlcl9zdW1tYXJ5LnRvdGFsXCIpfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDxHcmlkIHhzPXs0fSBpdGVtIGFsaWduPVwicmlnaHRcIj5cbiAgICAgICAgICB7b3JkZXIuc3RhdHVzID09PSBcIlBhaWRcIiA/IFwiJDAuMDBcIiA6IGFtb3VudFRvdGFsfVxuICAgICAgICA8L0dyaWQ+XG4gICAgICA8L0dyaWQ+XG4gICAgPC9Cb3g+XG4gICk7XG59XG5cbk9yZGVyU3VtbWFyeVRhYmxlLnByb3BUeXBlcyA9IHtcbiAgb3JkZXI6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgY3VycmVuY3k6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgZGlzY291bnRfYW1vdW50OiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHRheGVzX2Ftb3VudDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBzdGF0dXM6IFByb3BUeXBlcy5zdHJpbmdcbiAgfSksXG4gIHN1bW1pdDogUHJvcFR5cGVzLm9iamVjdCxcbiAgdGlja2V0czogUHJvcFR5cGVzLmFycmF5T2YoT2JqZWN0KVxufTtcblxuZXhwb3J0IGRlZmF1bHQgT3JkZXJTdW1tYXJ5VGFibGU7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0ICogYXMgc3R5bGVzIGZyb20gXCIuL3N0eWxlcy5tb2R1bGUuc2Nzc1wiO1xuXG5mdW5jdGlvbiBSZWZ1bmRFbWFpbFN1cHBvcnQoe1xuICBvblJlZnVuZENsaWNrLFxuICBvblJlZnVuZERldGFpbENsaWNrLFxuICBvbkVtYWlsU3VwcG9ydENsaWNrXG59KSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcmRlclN1bW1hcnlCdXR0b259XG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgIG9uQ2xpY2s9e29uUmVmdW5kQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIHt0KFwib3JkZXJfc3VtbWFyeS5yZXF1ZXN0X3JlZnVuZFwiKX1cbiAgICAgIDwvQnV0dG9uPlxuICAgICAgPEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcmRlclN1bW1hcnlCdXR0b259XG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgIG9uQ2xpY2s9e29uUmVmdW5kRGV0YWlsQ2xpY2t9XG4gICAgICA+XG4gICAgICAgIHt0KFwib3JkZXJfc3VtbWFyeS5yZWZ1bmRfZGV0YWlsc1wiKX1cbiAgICAgIDwvQnV0dG9uPlxuICAgICAgPEJ1dHRvblxuICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcmRlclN1bW1hcnlCdXR0b259XG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgIG9uQ2xpY2s9e29uRW1haWxTdXBwb3J0Q2xpY2t9XG4gICAgICA+XG4gICAgICAgIHt0KFwib3JkZXJfaW5mby5lbWFpbF9zdXBwb3J0XCIpfVxuICAgICAgPC9CdXR0b24+XG4gICAgPC8+XG4gICk7XG59XG5cblJlZnVuZEVtYWlsU3VwcG9ydC5wcm9wVHlwZXMgPSB7XG4gIG9uUmVmdW5kQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICBvblJlZnVuZERldGFpbENsaWNrOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25FbWFpbFN1cHBvcnRDbGljazogUHJvcFR5cGVzLmZ1bmNcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJlZnVuZEVtYWlsU3VwcG9ydDtcbiIsImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCB7IEdyaWQsIEJveCB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgT3JkZXJTdW1tYXJ5VGFibGUgZnJvbSBcIi4vT3JkZXJTdW1tYXJ5VGFibGVcIjtcbmltcG9ydCBSZWZ1bmRFbWFpbFN1cHBvcnQgZnJvbSBcIi4vUmVmdW5kRW1haWxTdXBwb3J0XCI7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSBcIi4vc3R5bGVzLm1vZHVsZS5zY3NzXCI7XG5cbmZ1bmN0aW9uIE9yZGVyU3VtbWFyeSh7IG9yZGVyLCBzdW1taXQsIHRpY2tldHMgfSkge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3ggY2xhc3NOYW1lPXtzdHlsZXMub3JkZXJTdW1tYXJ5V3JhcHBlcn0gc3g9e3sgcHQ6IDQsIHB4OiA0IH19PlxuICAgICAgICA8aDM+e3QoXCJvcmRlcl9zdW1tYXJ5Lm9yZGVyX3N1bW1hcnlcIil9PC9oMz5cbiAgICAgICAgPEdyaWQgY29udGFpbmVyPlxuICAgICAgICAgIDxHcmlkXG4gICAgICAgICAgICB4cz17MTJ9XG4gICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5vcmRlclN1bW1hcnlQdXJjaGFzZWRJbmZvfVxuICAgICAgICAgICAgc3g9e3sgcGI6IDMgfX1cbiAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8T3JkZXJTdW1tYXJ5VGFibGVcbiAgICAgICAgICAgICAgb3JkZXI9e29yZGVyfVxuICAgICAgICAgICAgICBzdW1taXQ9e3N1bW1pdH1cbiAgICAgICAgICAgICAgdGlja2V0cz17dGlja2V0c31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9HcmlkPlxuICAgICAgICA8L0dyaWQ+XG4gICAgICA8L0JveD5cbiAgICAgIDxCb3ggeHM9ezEyfSBzeD17eyBwYjogMyB9fT5cbiAgICAgICAgPFJlZnVuZEVtYWlsU3VwcG9ydFxuICAgICAgICAgIG9uUmVmdW5kQ2xpY2s9eygpID0+IHt9fVxuICAgICAgICAgIG9uUmVmdW5kRGV0YWlsQ2xpY2s9eygpID0+IHt9fVxuICAgICAgICAgIG9uRW1haWxTdXBwb3J0Q2xpY2s9eygpID0+IHt9fVxuICAgICAgICAvPlxuICAgICAgPC9Cb3g+XG4gICAgPC8+XG4gICk7XG59XG5cbk9yZGVyU3VtbWFyeS5wcm9wVHlwZXMgPSB7XG4gIG9yZGVyOiBQcm9wVHlwZXMub2JqZWN0LFxuICBzdW1taXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gIHRpY2tldHM6IFByb3BUeXBlcy5hcnJheU9mKE9iamVjdClcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyU3VtbWFyeTtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCBPcmRlckxpc3RUaWNrZXRzIGZyb20gXCIuL09yZGVyTGlzdFRpY2tldHNcIjtcbmltcG9ydCB7IFBBR0lOQVRJT05fRElTUExBWV9DT1VOVCB9IGZyb20gXCIuLi8uLi91dGlscy9jb25zdGFudHNcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcblxuZnVuY3Rpb24gT3JkZXJMaXN0SXRlbSh7IHRpY2tldHMsIHRvdGFsLCBvblBhZ2luYXRlQ2xpY2ssIHN1bW1pdCB9KSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgW2l0ZW1zVG9EaXNwbGF5LCBzZXRJdGVtc1RvRGlzcGxheV0gPSB1c2VTdGF0ZShcbiAgICBQQUdJTkFUSU9OX0RJU1BMQVlfQ09VTlRcbiAgKTtcbiAgY29uc3Qgc2xpY2VkVGlja2V0cyA9IHRpY2tldHM/LnNsaWNlKDAsIGl0ZW1zVG9EaXNwbGF5KTtcbiAgY29uc3Qgb25WaWV3TW9yZSA9ICgpID0+IHtcbiAgICBpZiAodG90YWwgPiB0aWNrZXRzLmxlbmd0aCkge1xuICAgICAgb25QYWdpbmF0ZUNsaWNrKCk7XG4gICAgfVxuICAgIHNldEl0ZW1zVG9EaXNwbGF5KGl0ZW1zVG9EaXNwbGF5ICsgUEFHSU5BVElPTl9ESVNQTEFZX0NPVU5UKTtcbiAgfTtcblxuICBjb25zdCBvblZpZXdMZXNzID0gKCkgPT4gc2V0SXRlbXNUb0Rpc3BsYXkoUEFHSU5BVElPTl9ESVNQTEFZX0NPVU5UKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7c2xpY2VkVGlja2V0cz8ubWFwKCh0aWNrZXQpID0+IChcbiAgICAgICAgPE9yZGVyTGlzdFRpY2tldHMga2V5PXt0aWNrZXQuaWR9IHRpY2tldD17dGlja2V0fSBzdW1taXQ9e3N1bW1pdH0gLz5cbiAgICAgICkpfVxuICAgICAge3RpY2tldHM/Lmxlbmd0aCA+IGl0ZW1zVG9EaXNwbGF5ID8gKFxuICAgICAgICA8QnV0dG9uIGNsYXNzTmFtZT17c3R5bGVzLnZpZXdNb3JlQnV0dG9ufSBvbkNsaWNrPXtvblZpZXdNb3JlfT5cbiAgICAgICAgICB7dChcIm9yZGVycy10aWNrZXRzLnZpZXdfbW9yZVwiKX1cbiAgICAgICAgPC9CdXR0b24+XG4gICAgICApIDogKFxuICAgICAgICBcIlwiXG4gICAgICApfVxuICAgICAge3NsaWNlZFRpY2tldHM/Lmxlbmd0aCA+IFBBR0lOQVRJT05fRElTUExBWV9DT1VOVCAmJlxuICAgICAgc2xpY2VkVGlja2V0cz8ubGVuZ3RoID09PSB0b3RhbCA/IChcbiAgICAgICAgPEJ1dHRvbiBjbGFzc05hbWU9e3N0eWxlcy52aWV3TW9yZUJ1dHRvbn0gb25DbGljaz17b25WaWV3TGVzc30+XG4gICAgICAgICAge3QoXCJvcmRlcnMtdGlja2V0cy52aWV3X2xlc3NcIil9XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgKSA6IChcbiAgICAgICAgXCJcIlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKTtcbn1cblxuT3JkZXJMaXN0SXRlbS5wcm9wVHlwZXMgPSB7XG4gIHRpY2tldHM6IFByb3BUeXBlcy5hcnJheU9mKE9iamVjdClcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyTGlzdEl0ZW07XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBCb3gsIEdyaWQsIEJ1dHRvbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgU3RhY2sgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvU3RhY2tcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCBUaWNrZXRTdGF0dXMgZnJvbSBcIi4uL1RpY2tldFN0YXR1c1wiO1xuaW1wb3J0IE9yZGVyTnVtYmVyIGZyb20gXCIuL09yZGVyTnVtYmVyXCI7XG5pbXBvcnQgeyBnZXRTdW1taXRSZWFzc2lnbkRhdGUsIHVzZU5vdyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuXG5mdW5jdGlvbiBPcmRlckxpc3RUaWNrZXRzKHsgdGlja2V0LCBzdW1taXQgfSkge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IG5vdyA9IHVzZU5vdygpO1xuICBjb25zdCBnZXRBY3RpdmVCdXR0b25BY3Rpb25zID0gKHRpY2tldCkgPT4ge1xuICAgIGlmICh0aWNrZXQub3duZXI/LnN0YXR1cyA9PT0gXCJJbmNvbXBsZXRlXCIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtzdHlsZXMudmlld0ZpbmlzaFRpY2tldEJ1dHRvbn0+XG4gICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLmZpbmlzaF90aWNrZXRcIil9XG4gICAgICAgIDwvQnV0dG9uPlxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRpY2tldC5vd25lcj8uc3RhdHVzID09PSBcIkNvbXBsZXRlXCIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtzdHlsZXMudmlld0ZpbmlzaFRpY2tldEJ1dHRvbn0+XG4gICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLnZpZXdfdGlja2V0XCIpfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuICBjb25zdCBzaG93UmVhc3NpZ25CdXR0b24gPSAoKSA9PiB7XG4gICAgY29uc3QgcmVhc3NpZ25EYXRlID0gZ2V0U3VtbWl0UmVhc3NpZ25EYXRlKHN1bW1pdCk7XG4gICAgY29uc3QgaXNSZWFzc2lnbmFibGUgPSByZWFzc2lnbkRhdGUgPiBub3c7XG4gICAgcmV0dXJuIGlzUmVhc3NpZ25hYmxlID8gKFxuICAgICAgPEJ1dHRvbiBjbGFzc05hbWU9e3N0eWxlcy5yZWFzc2lnbkJ1dHRvbn0+XG4gICAgICAgIHt0KFwidGlja2V0X3N0YXR1cy5yZWFzc2lnbl90aWNrZXRcIil9XG4gICAgICA8L0J1dHRvbj5cbiAgICApIDogKFxuICAgICAgXCJcIlxuICAgICk7XG4gIH07XG4gIHJldHVybiAoXG4gICAgPEdyaWQga2V5PXt0aWNrZXQuaWR9IGNsYXNzTmFtZT17c3R5bGVzLm9yZGVyV3JhcHBlcn0gY29udGFpbmVyPlxuICAgICAgPEdyaWQgeHM9ezd9IHBhZGRpbmc9ezJ9IGl0ZW0gY2xhc3NOYW1lPXtzdHlsZXMudGlja2V0VGlja2V0VHlwZX0+XG4gICAgICAgIDxoND57dGlja2V0LnRpY2tldF90eXBlPy5uYW1lfTwvaDQ+XG4gICAgICA8L0dyaWQ+XG4gICAgICA8R3JpZCB4cz17NX0gcGFkZGluZz17Mn0gaXRlbT5cbiAgICAgICAgey8qIFRvIGFkZCBiYWRnZSBmZWF0dXJlcyAqL31cbiAgICAgIDwvR3JpZD5cbiAgICAgIDxHcmlkIHhzPXsxMn0gc3g9e3sgcHg6IDIsIHBiOiAyIH19IGl0ZW0+XG4gICAgICAgIHt0aWNrZXQub3duZXI/LmVtYWlsID8gKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8Qm94IGNsYXNzTmFtZT17c3R5bGVzLmxhYmVsfT5cbiAgICAgICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLmFzc2lnbmVkX3RvXCIpfTpcbiAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPEJveCBjbGFzc05hbWU9e3N0eWxlcy50aWNrZXRPd25lckVtYWlsfT57dGlja2V0Lm93bmVyPy5lbWFpbH08L0JveD5cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICB0aWNrZXQuaXNfYWN0aXZlICYmIChcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnRpY2tldE93bmVyRW1haWx9PlxuICAgICAgICAgICAgICB7dChcInRpY2tldF9zdGF0dXMuYXR0ZW5kZWVfc3RhdHVzX3VuYXNzaWduZWRcIil9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgKVxuICAgICAgICApfVxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy50aWNrZXROb30+XG4gICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLnRpY2tldF9ub1wiKX06e1wiIFwifVxuICAgICAgICAgIDxPcmRlck51bWJlciBudW1iZXI9e3RpY2tldC5udW1iZXJ9IGNvcHkgdHJ1bmNhdGVkIC8+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvR3JpZD5cbiAgICAgIDxHcmlkIGNvbnRhaW5lcj5cbiAgICAgICAgPEdyaWQgY29udGFpbmVyIGRpcmVjdGlvbj1cInJvd1wiIHhzPXsxMn0gbGc9ezZ9IGFsaWduSXRlbXM9XCJjZW50ZXJcIiBpdGVtPlxuICAgICAgICAgIDxUaWNrZXRTdGF0dXMgdGlja2V0PXt0aWNrZXR9IC8+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgICAgPEdyaWQgcGFkZGluZz17Mn0geHM9ezEyfSBsZz17Nn0gY29udGFpbmVyIGl0ZW0+XG4gICAgICAgICAgPEdyaWRcbiAgICAgICAgICAgIGl0ZW1cbiAgICAgICAgICAgIGNvbnRhaW5lclxuICAgICAgICAgICAgYWxpZ249XCJjZW50ZXJcIlxuICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudGlja2V0QWN0aW9uQnV0dG9uc31cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dGlja2V0LmlzX2FjdGl2ZSAmJlxuICAgICAgICAgICAgICAodGlja2V0Lm93bmVyID8gKFxuICAgICAgICAgICAgICAgIDxTdGFja1xuICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6IFwic3BhY2UtYmV0d2VlblwiLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogXCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbj1cInJvd1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2dldEFjdGl2ZUJ1dHRvbkFjdGlvbnModGlja2V0KX1cbiAgICAgICAgICAgICAgICAgIHtzaG93UmVhc3NpZ25CdXR0b24oKX1cbiAgICAgICAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtzdHlsZXMuYXNzaWduVGlja2V0QnV0dG9ufT5cbiAgICAgICAgICAgICAgICAgIHt0KFwidGlja2V0X3N0YXR1cy5hc3NpZ25fdGlja2V0XCIpfVxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICA8L0dyaWQ+XG4gICAgICAgIDwvR3JpZD5cbiAgICAgIDwvR3JpZD5cbiAgICA8L0dyaWQ+XG4gICk7XG59XG5cbk9yZGVyTGlzdFRpY2tldHMucHJvcFR5cGVzID0ge1xuICB0aWNrZXQ6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgaWQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgb3duZXI6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBlbWFpbDogUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0pLFxuICAgIG51bWJlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB0b3RhbF9yZWZ1bmRlZF9hbW91bnQ6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgdGlja2V0X3R5cGU6IFByb3BUeXBlcy5zaGFwZSh7XG4gICAgICBuYW1lOiBQcm9wVHlwZXMuc3RyaW5nXG4gICAgfSlcbiAgfSlcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyTGlzdFRpY2tldHM7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgQ29udGVudENvcHlJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0NvbnRlbnRDb3B5XCI7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSBcIi4vc3R5bGVzLm1vZHVsZS5zY3NzXCI7XG5cbmZ1bmN0aW9uIE9yZGVyTnVtYmVyKHsgbnVtYmVyLCBjb3B5ID0gZmFsc2UsIHRydW5jYXRlZCA9IGZhbHNlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm9yZGVyVGlja2V0Tm9Db250YWluZXJ9PlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXt0cnVuY2F0ZWQgJiYgc3R5bGVzLm9yZGVyVGlja2V0TnVtYmVyVHJ1bmNhdGVkfT5cbiAgICAgICAge251bWJlcn1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIHtjb3B5ICYmIChcbiAgICAgICAgPENvbnRlbnRDb3B5SWNvblxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmNvcHlJY29ufVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KG51bWJlcil9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5PcmRlck51bWJlci5wcm9wVHlwZXMgPSB7XG4gIG51bWJlcjogUHJvcFR5cGVzLnN0cmluZyxcbiAgY29weTogUHJvcFR5cGVzLmJvb2xcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyTnVtYmVyO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBHcmlkLCBCb3ggfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IFRhYnMgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvVGFic1wiO1xuaW1wb3J0IFRhYiBmcm9tIFwiQG11aS9tYXRlcmlhbC9UYWJcIjtcbmltcG9ydCBFcnJvckljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvRXJyb3JcIjtcbmltcG9ydCBPcmRlckxpc3RJdGVtIGZyb20gXCIuL09yZGVyTGlzdEl0ZW1cIjtcbmltcG9ydCBPcmRlclN1bW1hcnkgZnJvbSBcIi4uL09yZGVyU3VtbWFyeVwiO1xuaW1wb3J0ICogYXMgc3R5bGVzIGZyb20gXCIuL3N0eWxlcy5tb2R1bGUuc2Nzc1wiO1xuXG5mdW5jdGlvbiBUYWJQYW5lbChwcm9wcykge1xuICBjb25zdCB7IGNoaWxkcmVuLCB2YWx1ZSwgaW5kZXggfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgICBoaWRkZW49e3ZhbHVlICE9PSBpbmRleH1cbiAgICAgIGlkPXtgdGFicGFuZWwtJHtpbmRleH1gfVxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PXtgdGFiLSR7aW5kZXh9YH1cbiAgICA+XG4gICAgICB7dmFsdWUgPT09IGluZGV4ICYmIGNoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5mdW5jdGlvbiBPcmRlcnNMaXN0RGVza3RvcE1vYmlsZSh7XG4gIGlzTW9iaWxlLFxuICBzdW1taXQsXG4gIHRpY2tldHMsXG4gIG9yZGVyLFxuICB0b3RhbCxcbiAgZGV0YWlsc1JlcXVpcmVkLFxuICBvblBhZ2luYXRlQ2xpY2tcbn0pIHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoXywgbmV3VmFsdWUpID0+IHtcbiAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XG4gIH07XG5cbiAgY29uc3QgbW9yZURldGFpbHMgPSAoKSA9PlxuICAgIGRldGFpbHNSZXF1aXJlZCAmJiAoXG4gICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5kZXRhaWxzUmVxdWlyZWRMYWJlbH0+XG4gICAgICAgIDxFcnJvckljb24gc3g9e3sgY29sb3I6IFwiI0ZGOTgwMFwiIH19IC8+XG4gICAgICAgIHt0KFwidGlja2V0X3N0YXR1cy5zdGF0dXNfZGV0YWlsc19yZXF1aXJlZFwiKX1cbiAgICAgIDwvc3Bhbj5cbiAgICApO1xuXG4gIHJldHVybiBpc01vYmlsZSA/IChcbiAgICA8Qm94IGNsYXNzTmFtZT17c3R5bGVzLnRpY2tldExpc3RDb250YWluZXJ9PlxuICAgICAgPEJveCBzeD17eyBib3JkZXJDb2xvcjogXCJkaXZpZGVyXCIsIHBiOiAyIH19PlxuICAgICAgICA8VGFic1xuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIHRleHRDb2xvcj1cIiMwMDBcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJUaWNrZXRzICYgU3VtbWFyeVwiXG4gICAgICAgICAgVGFiSW5kaWNhdG9yUHJvcHM9e3tcbiAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6IFwiIzAwMFwiXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxUYWIgbGFiZWw9e3QoXCJsYWJlbHMudGlja2V0c1wiKX0gY2xhc3NOYW1lPXtzdHlsZXMudGFiQnV0dG9uc30gLz5cbiAgICAgICAgICA8VGFiIGxhYmVsPXt0KFwibGFiZWxzLnN1bW1hcnlcIil9IGNsYXNzTmFtZT17c3R5bGVzLnRhYkJ1dHRvbnN9IC8+XG4gICAgICAgIDwvVGFicz5cbiAgICAgIDwvQm94PlxuICAgICAge21vcmVEZXRhaWxzKCl9XG4gICAgICA8VGFiUGFuZWwgdmFsdWU9e3ZhbHVlfSBpbmRleD17MH0+XG4gICAgICAgIDxPcmRlckxpc3RJdGVtXG4gICAgICAgICAgb3JkZXI9e29yZGVyfVxuICAgICAgICAgIHRpY2tldHM9e3RpY2tldHN9XG4gICAgICAgICAgdG90YWw9e3RvdGFsfVxuICAgICAgICAgIG9uUGFnaW5hdGVDbGljaz17b25QYWdpbmF0ZUNsaWNrfVxuICAgICAgICAgIHN1bW1pdD17c3VtbWl0fVxuICAgICAgICAvPlxuICAgICAgPC9UYWJQYW5lbD5cbiAgICAgIDxUYWJQYW5lbCB2YWx1ZT17dmFsdWV9IGluZGV4PXsxfT5cbiAgICAgICAgPE9yZGVyU3VtbWFyeSBvcmRlcj17b3JkZXJ9IHN1bW1pdD17c3VtbWl0fSB0aWNrZXRzPXt0aWNrZXRzfSAvPlxuICAgICAgPC9UYWJQYW5lbD5cbiAgICA8L0JveD5cbiAgKSA6IChcbiAgICA8PlxuICAgICAgPEdyaWQgaXRlbSBtZD17MTJ9PlxuICAgICAgICB7bW9yZURldGFpbHMoKX1cbiAgICAgIDwvR3JpZD5cbiAgICAgIDxHcmlkXG4gICAgICAgIHBhZGRpbmc9ezJ9XG4gICAgICAgIGl0ZW1cbiAgICAgICAgbWQ9ezd9XG4gICAgICAgIG9yZGVyPXt7IG1kOiAxIH19XG4gICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRpY2tldExpc3RDb250YWluZXJ9XG4gICAgICA+XG4gICAgICAgIDxPcmRlckxpc3RJdGVtXG4gICAgICAgICAgb3JkZXI9e29yZGVyfVxuICAgICAgICAgIHRpY2tldHM9e3RpY2tldHN9XG4gICAgICAgICAgdG90YWw9e3RvdGFsfVxuICAgICAgICAgIG9uUGFnaW5hdGVDbGljaz17b25QYWdpbmF0ZUNsaWNrfVxuICAgICAgICAgIHN1bW1pdD17c3VtbWl0fVxuICAgICAgICAvPlxuICAgICAgPC9HcmlkPlxuICAgICAgPEdyaWQgcGFkZGluZz17Mn0gaXRlbSBtZD17NX0gb3JkZXI9e3sgbWQ6IDEgfX0+XG4gICAgICAgIDxPcmRlclN1bW1hcnkgb3JkZXI9e29yZGVyfSBzdW1taXQ9e3N1bW1pdH0gdGlja2V0cz17dGlja2V0c30gLz5cbiAgICAgIDwvR3JpZD5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3JkZXJzTGlzdERlc2t0b3BNb2JpbGU7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yLCBzaGFsbG93RXF1YWwgfSBmcm9tIFwicmVhY3QtcmVkdXhcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IEdyaWQsIEJveCwgQnV0dG9uIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCB7IHVzZVRoZW1lIH0gZnJvbSBcIkBtdWkvbWF0ZXJpYWwvc3R5bGVzXCI7XG5pbXBvcnQgdXNlTWVkaWFRdWVyeSBmcm9tIFwiQG11aS9tYXRlcmlhbC91c2VNZWRpYVF1ZXJ5XCI7XG5pbXBvcnQgeyBnZXRUaWNrZXRzQnlPcmRlciB9IGZyb20gXCIuLi8uLi9hY3Rpb25zXCI7XG5pbXBvcnQgeyBnZXRPcmRlclRpY2tldHMsIGdldEZvcm1hdHRlZERhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IE9ORV9QQUdFX05FWFQgfSBmcm9tIFwiLi4vLi4vdXRpbHMvY29uc3RhbnRzXCI7XG5pbXBvcnQgT3JkZXJOdW1iZXIgZnJvbSBcIi4vT3JkZXJOdW1iZXJcIjtcbmltcG9ydCAqIGFzIHN0eWxlcyBmcm9tIFwiLi9zdHlsZXMubW9kdWxlLnNjc3NcIjtcbmltcG9ydCBPcmRlcnNMaXN0RGVza3RvcE1vYmlsZSBmcm9tIFwiLi9PcmRlcnNMaXN0RGVza3RvcE1vYmlsZVwiO1xuXG5mdW5jdGlvbiBPcmRlcnNMaXN0KHByb3BzKSB7XG4gIGNvbnN0IHsgc3VtbWl0LCBvcmRlciB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCB7IHBlcl9wYWdlLCBsYXN0X3BhZ2UsIG1lbWJlck9yZGVycyB9ID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS53aWRnZXRTdGF0ZSB8fCB7fSxcbiAgICBzaGFsbG93RXF1YWxcbiAgKTtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBpc01vYmlsZSA9IHVzZU1lZGlhUXVlcnkodGhlbWUuYnJlYWtwb2ludHMuZG93bihcImxnXCIpKTtcbiAgY29uc3QgW2lzTW9iaWxlVmlld2FibGUsIHNldE1vYmlsZVZpZXdhYmxlXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgZGV0YWlsc1JlcXVpcmVkID0gb3JkZXIubWVtYmVyVGlja2V0cz8uZmluZChcbiAgICAodGlja2V0KSA9PiB0aWNrZXQub3duZXI/LnN0YXR1cyA9PT0gXCJJbmNvbXBsZXRlXCJcbiAgKTtcbiAgY29uc3QgZmV0Y2hUaWNrZXRzQnlPcmRlciA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkaXNwYXRjaChcbiAgICAgIGdldFRpY2tldHNCeU9yZGVyKHtcbiAgICAgICAgb3JkZXJJZDogb3JkZXIuaWQsXG4gICAgICAgIGN1cnJlbnRfcGFnZTogbGFzdF9wYWdlLFxuICAgICAgICBwZXJQYWdlOiBwZXJfcGFnZVxuICAgICAgfSlcbiAgICApLmNhdGNoKChlKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICB9KTtcbiAgfTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZldGNoVGlja2V0c0J5T3JkZXIoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IG9uUGFnaW5hdGVDbGljayA9ICgpID0+XG4gICAgZGlzcGF0Y2goXG4gICAgICBnZXRUaWNrZXRzQnlPcmRlcih7XG4gICAgICAgIG9yZGVySWQ6IG9yZGVyLmlkLFxuICAgICAgICBwYWdlOiBvcmRlci50aWNrZXRzX3BhZ2VfY3VycmVudCArIE9ORV9QQUdFX05FWFQsXG4gICAgICAgIHBlclBhZ2U6IHBlcl9wYWdlLFxuICAgICAgICBuZXh0OiB0cnVlXG4gICAgICB9KVxuICAgICk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJveFxuICAgICAgICBzeD17e1xuICAgICAgICAgIHBhZGRpbmc6IHtcbiAgICAgICAgICAgIHhzOiAyLFxuICAgICAgICAgICAgbWQ6IDEsXG4gICAgICAgICAgICBsZzogMFxuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMub3JkZXJUaWNrZXRJbmZvQ29udGFpbmVyfVxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5vcmRlclRpY2tldEluZm99PlxuICAgICAgICAgIHt0KFwib3JkZXJzLnB1cmNoYXNlZFwiKX06IHtnZXRGb3JtYXR0ZWREYXRlKG9yZGVyLmNyZWF0ZWQpfSB8e1wiIFwifVxuICAgICAgICAgIHt0KFwib3JkZXJfc3VtbWFyeS5vcmRlcl9ub1wiKX06e1wiIFwifVxuICAgICAgICAgIDxPcmRlck51bWJlciBudW1iZXI9e29yZGVyLm51bWJlcn0gY29weSB0cnVuY2F0ZWQgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7aXNNb2JpbGUgJiYgKFxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIHN4PXt7IHBhZGRpbmc6IDAgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmJsYWNrQnV0dG9ufVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0TW9iaWxlVmlld2FibGUoIWlzTW9iaWxlVmlld2FibGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtpc01vYmlsZVZpZXdhYmxlXG4gICAgICAgICAgICAgID8gdChcInRpY2tldF9zdGF0dXMuaGlkZV90aWNrZXRzXCIpXG4gICAgICAgICAgICAgIDogdChcInRpY2tldF9zdGF0dXMudmlld190aWNrZXRzXCIpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPC9Cb3g+XG4gICAgICA8R3JpZFxuICAgICAgICBrZXk9e29yZGVyLmlkfVxuICAgICAgICBjb250YWluZXJcbiAgICAgICAgcm93U3BhY2luZz17MX1cbiAgICAgICAgY29sdW1uU3BhY2luZz17eyB4czogMSwgc206IDIsIG1kOiAzIH19XG4gICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzLm9yZGVyVGlja2V0Q29udGFpbmVyfSAke1xuICAgICAgICAgIGlzTW9iaWxlICYmICFpc01vYmlsZVZpZXdhYmxlID8gc3R5bGVzLmRpc3BsYXlfbm9uZSA6IFwiXCJcbiAgICAgICAgfWB9XG4gICAgICAgIHN4PXt7XG4gICAgICAgICAgZmxleERpcmVjdGlvbjoge1xuICAgICAgICAgICAgbWQ6IFwicm93XCIsXG4gICAgICAgICAgICBsZzogXCJyb3dcIlxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGFkZGluZzoge1xuICAgICAgICAgICAgeHM6IDIsXG4gICAgICAgICAgICBtZDogMCxcbiAgICAgICAgICAgIGxnOiAwXG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICA8T3JkZXJzTGlzdERlc2t0b3BNb2JpbGVcbiAgICAgICAgICBpc01vYmlsZT17aXNNb2JpbGV9XG4gICAgICAgICAgc3VtbWl0PXtzdW1taXR9XG4gICAgICAgICAgb3JkZXI9e29yZGVyfVxuICAgICAgICAgIHRpY2tldHM9e2dldE9yZGVyVGlja2V0cyhtZW1iZXJPcmRlcnMsIG9yZGVyLmlkKX1cbiAgICAgICAgICB0b3RhbD17b3JkZXIudGlja2V0c190b3RhbH1cbiAgICAgICAgICBkZXRhaWxzUmVxdWlyZWQ9e2RldGFpbHNSZXF1aXJlZH1cbiAgICAgICAgICBvblBhZ2luYXRlQ2xpY2s9e29uUGFnaW5hdGVDbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvR3JpZD5cbiAgICA8Lz5cbiAgKTtcbn1cblxuT3JkZXJzTGlzdC5wcm9wVHlwZXMgPSB7XG4gIHN1bW1pdDogUHJvcFR5cGVzLm9iamVjdCxcbiAgb3JkZXI6IFByb3BUeXBlcy5vYmplY3Rcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE9yZGVyc0xpc3Q7XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBDb250YWluZXIsIEJ1dHRvbiB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5pbXBvcnQgKiBhcyBzdHlsZXMgZnJvbSBcIi4vc3R5bGVzLm1vZHVsZS5zY3NzXCI7XG5cbmZ1bmN0aW9uIFRpY2tldFN0YXR1cyh7IHRpY2tldCB9KSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgaXNBY3RpdmUgPSB0aWNrZXQuaXNfYWN0aXZlO1xuICBjb25zdCByZWZ1bmRfcmVxdWVzdHMgPSB0aWNrZXQucmVmdW5kX3JlcXVlc3RzLmZpbmQoXG4gICAgKHIpID0+IHIuc3RhdHVzID09PSBcIlJlcXVlc3RlZFwiXG4gICk7XG4gIGNvbnN0IHRpY2tldF9zdGF0dXNfaW5jb21wbGV0ZSA9IHRpY2tldC5vd25lcj8uc3RhdHVzID09PSBcIkluY29tcGxldGVcIjtcbiAgY29uc3QgdGlja2V0X3VuYXNzaWduZWQgPSB0aWNrZXQub3duZXJfaWQgPT09IDA7XG4gIGNvbnN0IHRpY2tldF9jb21wbGV0ZSA9IHRpY2tldC5vd25lciAmJiB0aWNrZXQub3duZXI/LnN0YXR1cyA9PT0gXCJDb21wbGV0ZVwiO1xuXG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lciBjbGFzc05hbWU9e3N0eWxlcy50aWNrZXRTdGF0dXNDb250YWluZXJ9PlxuICAgICAge2lzQWN0aXZlID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIHtyZWZ1bmRfcmVxdWVzdHMgJiYgKFxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake3N0eWxlcy5idXR0b25QaWxsfSAke3N0eWxlcy5idXR0b25SZWZ1bmRSZXF1ZXN0ZWR9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLnN0YXR1c19yZWZ1bmRfcmVxdWVzdGVkXCIpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7dGlja2V0X3N0YXR1c19pbmNvbXBsZXRlICYmIChcbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtzdHlsZXMuYnV0dG9uUGlsbH0gJHtzdHlsZXMuYnV0dG9uSW5jb21wbGV0ZX1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dChcInRpY2tldF9zdGF0dXMuc3RhdHVzX2luY29tcGxldGVcIil9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIHt0aWNrZXRfdW5hc3NpZ25lZCAmJiAoXG4gICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7c3R5bGVzLmJ1dHRvblBpbGx9ICR7c3R5bGVzLmJ1dHRvblVuYXNzaWduZWR9YH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3QoXCJ0aWNrZXRfc3RhdHVzLnN0YXR1c191bmFzc2lnbmVkXCIpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7dGlja2V0X2NvbXBsZXRlICYmIChcbiAgICAgICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtgJHtzdHlsZXMuYnV0dG9uUGlsbH0gJHtzdHlsZXMuYnV0dG9uQ29tcGxldGV9YH0+XG4gICAgICAgICAgICAgIHt0KFwidGlja2V0X3N0YXR1cy5zdGF0dXNfY29tcGxldGVcIil9XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8Lz5cbiAgICAgICkgOiAoXG4gICAgICAgIDxCdXR0b24gY2xhc3NOYW1lPXtgJHtzdHlsZXMuYnV0dG9uUGlsbH0gJHtzdHlsZXMuYnV0dG9uQ2FuY2VsbGVkfWB9PlxuICAgICAgICAgIHt0KFwidGlja2V0X3N0YXR1cy5zdGF0dXNfY2FuY2VsbGVkXCIpfVxuICAgICAgICA8L0J1dHRvbj5cbiAgICAgICl9XG4gICAgPC9Db250YWluZXI+XG4gICk7XG59XG5cblRpY2tldFN0YXR1cy5wcm9wVHlwZXMgPSB7XG4gIHRpY2tldDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBvd25lcjogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICAgIHN0YXR1czogUHJvcFR5cGVzLnN0cmluZ1xuICAgIH0pLFxuICAgIHJlZnVuZF9yZXF1ZXN0czogUHJvcFR5cGVzLmFycmF5T2YoT2JqZWN0KVxuICB9KVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVGlja2V0U3RhdHVzO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAyNCBPcGVuU3RhY2sgRm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICogKi9cbmltcG9ydCB7IExPR09VVF9VU0VSIH0gZnJvbSBcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi9saWIvc2VjdXJpdHkvYWN0aW9uc1wiO1xuaW1wb3J0IHtcbiAgUkVTRVRfU1RBVEUsXG4gIFJFU0VUX0ZJTFRFUixcbiAgU0VUX1NVTU1JVCxcbiAgU0VUX1VTRVIsXG4gIEdFVF9VU0VSX09SREVSUyxcbiAgR0VUX1RJQ0tFVFNfQllfT1JERVJcbn0gZnJvbSBcIi4vYWN0aW9uc1wiO1xuaW1wb3J0IHsgRklSU1RfUEFHRSB9IGZyb20gXCIuL3V0aWxzL2NvbnN0YW50c1wiO1xuXG5jb25zdCBERUZBVUxUX1NUQVRFID0ge1xuICBzdW1taXQ6IG51bGwsXG4gIHVzZXI6IHt9LFxuICB3aWRnZXRMb2FkaW5nOiBmYWxzZSxcbiAgbWVtYmVyT3JkZXJzOiBbXSxcbiAgZXJyb3JzOiB7fSxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGlzT3JkZXJMb2FkaW5nOiBmYWxzZSxcbiAgb3JkZXJzX2N1cnJlbnRfcGFnZTogMSxcbiAgb3JkZXJzX2xhc3RfcGFnZTogMSxcbiAgb3JkZXJzX3Blcl9wYWdlOiA1LFxuICBvcmRlcnNfdG90YWw6IDAsXG4gIHRpY2tldF9jdXJyZW50X3BhZ2U6IDEsXG4gIHRpY2tldF9sYXN0X3BhZ2U6IDEsXG4gIHRpY2tldF9wZXJfcGFnZTogNSxcbiAgdGlja2V0X3RvdGFsOiAwXG59O1xuXG5jb25zdCBXaWRnZXRSZWR1Y2VyID0gKHN0YXRlID0gREVGQVVMVF9TVEFURSwgeyB0eXBlLCBwYXlsb2FkIH0gPSB7fSkgPT4ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIExPR09VVF9VU0VSOlxuICAgIGNhc2UgUkVTRVRfU1RBVEU6XG4gICAgICByZXR1cm4gREVGQVVMVF9TVEFURTtcbiAgICBjYXNlIFJFU0VUX0ZJTFRFUjpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBvcmRlcnNfY3VycmVudF9wYWdlOiAxLFxuICAgICAgICBvcmRlcnNfbGFzdF9wYWdlOiAxXG4gICAgICB9O1xuICAgIGNhc2UgU0VUX1NVTU1JVDpcbiAgICAgIHJldHVybiB7IC4uLnN0YXRlLCBzdW1taXQ6IHBheWxvYWQgfTtcbiAgICBjYXNlIFNFVF9VU0VSOlxuICAgICAgcmV0dXJuIHsgLi4uc3RhdGUsIHVzZXI6IHBheWxvYWQgfTtcbiAgICBjYXNlIEdFVF9VU0VSX09SREVSUzoge1xuICAgICAgY29uc3QgeyBtZW1iZXJPcmRlcnMgfSA9IHN0YXRlO1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgY3VycmVudF9wYWdlIH0gPSBwYXlsb2FkLnJlc3BvbnNlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1lbWJlck9yZGVyczpcbiAgICAgICAgICBjdXJyZW50X3BhZ2UgPT09IEZJUlNUX1BBR0UgPyBkYXRhIDogWy4uLm1lbWJlck9yZGVycywgLi4uZGF0YV0sXG4gICAgICAgIG9yZGVyc190b3RhbDogdG90YWwsXG4gICAgICAgIG9yZGVyc19jdXJyZW50X3BhZ2U6IGN1cnJlbnRfcGFnZVxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSBHRVRfVElDS0VUU19CWV9PUkRFUjoge1xuICAgICAgY29uc3QgeyBtZW1iZXJPcmRlcnMgfSA9IHN0YXRlO1xuICAgICAgY29uc3QgeyBkYXRhLCB0b3RhbCwgY3VycmVudF9wYWdlLCBsYXN0X3BhZ2UgfSA9IHBheWxvYWQucmVzcG9uc2U7XG4gICAgICBjb25zdCBmb3JtZXJPcmRlciA9IG1lbWJlck9yZGVycy5maW5kKChvKSA9PiBvLmlkID09PSBkYXRhWzBdPy5vcmRlcl9pZCk7XG4gICAgICBjb25zdCB1cGRhdGVkT3JkZXIgPSB7XG4gICAgICAgIC4uLmZvcm1lck9yZGVyLFxuICAgICAgICBtZW1iZXJUaWNrZXRzOlxuICAgICAgICAgIGN1cnJlbnRfcGFnZSA9PT0gRklSU1RfUEFHRVxuICAgICAgICAgICAgPyBkYXRhXG4gICAgICAgICAgICA6IFsuLi5mb3JtZXJPcmRlci5tZW1iZXJUaWNrZXRzLCAuLi5kYXRhXSxcbiAgICAgICAgdGlja2V0c19wYWdlX2N1cnJlbnQ6IGN1cnJlbnRfcGFnZSxcbiAgICAgICAgdGlja2V0c19wYWdlX2xhc3Q6IGxhc3RfcGFnZSxcbiAgICAgICAgdGlja2V0c190b3RhbDogdG90YWxcbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWVtYmVyT3JkZXJzOiBtZW1iZXJPcmRlcnMubWFwKChtbykgPT5cbiAgICAgICAgICBtby5pZCA9PT0gdXBkYXRlZE9yZGVyLmlkID8gdXBkYXRlZE9yZGVyIDogbW9cbiAgICAgICAgKVxuICAgICAgfTtcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgV2lkZ2V0UmVkdWNlcjtcbiIsImltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IGNvbmZpZ3VyZVN0b3JlIH0gZnJvbSBcIkByZWR1eGpzL3Rvb2xraXRcIjtcbmltcG9ydCB7XG4gIHBlcnNpc3RTdG9yZSxcbiAgcGVyc2lzdFJlZHVjZXIsXG4gIEZMVVNILFxuICBSRUhZRFJBVEUsXG4gIFBBVVNFLFxuICBQRVJTSVNULFxuICBQVVJHRSxcbiAgUkVHSVNURVJcbn0gZnJvbSBcInJlZHV4LXBlcnNpc3RcIjtcbmltcG9ydCBzdG9yYWdlIGZyb20gXCJyZWR1eC1wZXJzaXN0L2xpYi9zdG9yYWdlXCI7XG5pbXBvcnQgeyBjb21iaW5lUmVkdWNlcnMgfSBmcm9tIFwicmVkdXhcIjtcbmltcG9ydCBXaWRnZXRSZWR1Y2VyIGZyb20gXCIuL3JlZHVjZXJcIjtcblxuZXhwb3J0IGNvbnN0IGdldFN0b3JlID0gKHsgY2xpZW50SWQsIGxvZ2luVXJsLCBzdW1taXQsIGFwaUJhc2VVcmwgfSkgPT4ge1xuICAvLyB0byBhZGQgb3RoZXIgcmVkdWNlcnMgbGF0ZXJcbiAgY29uc3QgcmVkdWNlcnMgPSBjb21iaW5lUmVkdWNlcnMoe1xuICAgIHdpZGdldFN0YXRlOiBXaWRnZXRSZWR1Y2VyXG4gIH0pO1xuXG4gIGNvbnN0IHN0b3JlID0gY29uZmlndXJlU3RvcmUoe1xuICAgIHJlZHVjZXI6IHBlcnNpc3RSZWR1Y2VyKFxuICAgICAge1xuICAgICAgICBrZXk6IGByb290X215X29yZGVyc190aWNrZXRzXyR7Y2xpZW50SWR9YCxcbiAgICAgICAgc3RvcmFnZVxuICAgICAgfSxcbiAgICAgIHJlZHVjZXJzXG4gICAgKSxcbiAgICBtaWRkbGV3YXJlOiAoZ2V0RGVmYXVsdE1pZGRsZXdhcmUpID0+XG4gICAgICBnZXREZWZhdWx0TWlkZGxld2FyZSh7XG4gICAgICAgIHRodW5rOiB7XG4gICAgICAgICAgZXh0cmFBcmd1bWVudDoge1xuICAgICAgICAgICAgY2xpZW50SWQsXG4gICAgICAgICAgICBhcGlCYXNlVXJsLFxuICAgICAgICAgICAgc3VtbWl0LFxuICAgICAgICAgICAgbG9naW5VcmxcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGltbXV0YWJsZUNoZWNrOiBmYWxzZSxcbiAgICAgICAgc2VyaWFsaXphYmxlQ2hlY2s6IHtcbiAgICAgICAgICBpZ25vcmVkQWN0aW9uczogW0ZMVVNILCBSRUhZRFJBVEUsIFBBVVNFLCBQRVJTSVNULCBQVVJHRSwgUkVHSVNURVJdXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH0pO1xuXG4gIHJldHVybiBzdG9yZTtcbn07XG5cbmV4cG9ydCBjb25zdCB1c2VJbml0U3RvcmUgPSAoY29uZmlnKSA9PiB7XG4gIGNvbnN0IHN0b3JlID0gdXNlTWVtbygoKSA9PiBnZXRTdG9yZShjb25maWcpLCBbXSk7XG4gIGNvbnN0IHBlcnNpc3RvciA9IHVzZU1lbW8oKCkgPT4gcGVyc2lzdFN0b3JlKHN0b3JlKSwgW3N0b3JlXSk7XG5cbiAgcmV0dXJuIHtcbiAgICBzdG9yZSxcbiAgICBwZXJzaXN0b3JcbiAgfTtcbn07XG4iLCJpbXBvcnQgeyBpbml0TG9nT3V0LCBnZXRBY2Nlc3NUb2tlbiB9IGZyb20gXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vbGliL3NlY3VyaXR5L21ldGhvZHNcIjtcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tIFwiQHNlbnRyeS9yZWFjdFwiO1xuXG5leHBvcnQgY29uc3QgZ2V0QWNjZXNzVG9rZW5TYWZlbHkgPSBhc3luYyAoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IGdldEFjY2Vzc1Rva2VuKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmxvZyhcIm15LW9yZGVycy10aWNrZXRzLXdpZGdlOjogZ2V0QWNjZXNzVG9rZW5TYWZlbHkgZXJyb3I6IFwiLCBlKTtcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlKVxuICAgIGluaXRMb2dPdXQoKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcbiAgfVxufTtcbiIsImV4cG9ydCBjb25zdCBMQVNUX0hPVVJfT0ZfMjRfSE9VUiA9IDIzO1xuZXhwb3J0IGNvbnN0IExBU1RfTUlOVVRFX09GX0hPVVIgPSA1OTtcbmV4cG9ydCBjb25zdCBPTkVfUEFHRV9ORVhUID0gMTtcbmV4cG9ydCBjb25zdCBNSUxMSVNFQ19UT19TRUMgPSAxMDAwO1xuZXhwb3J0IGNvbnN0IE9ORV9EQVkgPSAxO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSVRFTVNfUEVSX1BBR0UgPSA1O1xuZXhwb3J0IGNvbnN0IEZJUlNUX1BBR0UgPSAxO1xuZXhwb3J0IGNvbnN0IFBBR0lOQVRJT05fRElTUExBWV9DT1VOVCA9IDM7XG4iLCJpbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnQtdGltZXpvbmVcIjtcbmltcG9ydCB7IHVzZURpc3BhdGNoIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQge1xuICBMQVNUX0hPVVJfT0ZfMjRfSE9VUixcbiAgTEFTVF9NSU5VVEVfT0ZfSE9VUixcbiAgTUlMTElTRUNfVE9fU0VDLFxuICBPTkVfREFZXG59IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0Q3VycmVuY3kgPSAodmFsdWUsIHsgbG9jYWxlID0gXCJlbi1VU1wiLCAuLi5vcHRpb25zIH0pID0+IHtcbiAgY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgY3VycmVuY3k6IFwiVVNEXCIsXG4gICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMlxuICB9O1xuXG4gIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChsb2NhbGUsIHtcbiAgICBzdHlsZTogXCJjdXJyZW5jeVwiLFxuICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgIC4uLm9wdGlvbnNcbiAgfSk7XG5cbiAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXQodmFsdWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZvcm1hdHRlZERhdGUgPSAoZGF0ZXRpbWUsIHRpbWVab25lKSA9PiB7XG4gIGlmICh0aW1lWm9uZSlcbiAgICByZXR1cm4gbW9tZW50XG4gICAgICAudHooZGF0ZXRpbWUgKiBNSUxMSVNFQ19UT19TRUMsIHRpbWVab25lKVxuICAgICAgLmZvcm1hdChcIk1NTU0gREQsIFlZWVlcIik7XG5cbiAgcmV0dXJuIG1vbWVudC51bml4KGRhdGV0aW1lKS5mb3JtYXQoXCJNTU1NIERELCBZWVlZXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN1bW1pdEZvcm1hdHRlZERhdGUgPSAoc3VtbWl0KSA9PiB7XG4gIGlmICghc3VtbWl0KSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBzdGFydERheSA9IG1vbWVudChzdW1taXQuc3RhcnRfZGF0ZSAqIE1JTExJU0VDX1RPX1NFQykudHooXG4gICAgc3VtbWl0LnRpbWVfem9uZV9pZFxuICApO1xuICBjb25zdCBlbmREYXkgPSBtb21lbnQoc3VtbWl0LmVuZF9kYXRlICogTUlMTElTRUNfVE9fU0VDKS50eihcbiAgICBzdW1taXQudGltZV96b25lX2lkXG4gICk7XG4gIGNvbnN0IGRheXMgPSBlbmREYXkuZGlmZihzdGFydERheSwgXCJkYXlzXCIpO1xuICBsZXQgZm9ybWF0U3RhcnREYXRlID0gXCJNTU1NIERELCBZWVlZXCI7XG4gIGxldCBmb3JtYXRFbmREYXRlID0gXCJNTU1NIERELCBZWVlZXCI7XG4gIGlmIChzdGFydERheS55ZWFyKCkgPT09IGVuZERheS55ZWFyKCkpIGZvcm1hdFN0YXJ0RGF0ZSA9IFwiTU1NTSBERFwiO1xuICBpZiAoc3RhcnREYXkubW9udGgoKSA9PT0gZW5kRGF5Lm1vbnRoKCkpIGZvcm1hdEVuZERhdGUgPSBcIkRELCBZWVlZXCI7XG5cbiAgY29uc3Qgc3RhcnREYXRlID0gc3RhcnREYXkuZm9ybWF0KGZvcm1hdFN0YXJ0RGF0ZSk7XG4gIGNvbnN0IGVuZERhdGUgPSBlbmREYXkuZm9ybWF0KGZvcm1hdEVuZERhdGUpO1xuXG4gIGlmIChkYXlzID4gT05FX0RBWSkgcmV0dXJuIGAke3N0YXJ0RGF0ZX0gLSAke2VuZERhdGV9YDtcblxuICByZXR1cm4gc3RhcnREYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZU9yZGVyVG90YWxzID0gKHsgb3JkZXIsIHN1bW1pdCwgdGlja2V0cyB9KSA9PiB7XG4gIGlmICghb3JkZXIgfHwgIXN1bW1pdCB8fCAhdGlja2V0cykgcmV0dXJuIHt9O1xuXG4gIGNvbnN0IHsgcmVmdW5kZWRfYW1vdW50LCBkaXNjb3VudF9hbW91bnQsIHRheGVzX2Ftb3VudCwgYW1vdW50IH0gPSBvcmRlcjtcbiAgY29uc3QgeyB0aWNrZXRfdHlwZXMgfSA9IHN1bW1pdDtcblxuICBjb25zdCB0aWNrZXRTdW1tYXJ5ID0gW107XG4gIGxldCBwdXJjaGFzZVRpY2tldFRvdGFsID0gMDtcblxuICBjb25zdCBjdXJyZW5jeU9iamVjdCA9IHsgY3VycmVuY3k6IG9yZGVyLmN1cnJlbmN5IH07XG5cbiAgT2JqZWN0LmtleXMob3JkZXIudGlja2V0c19leGNlcnB0X2J5X3RpY2tldF90eXBlKS5tYXAoKHRpY2tldCkgPT4ge1xuICAgIGNvbnN0IHRpY2tldFR5cGUgPSB0aWNrZXRfdHlwZXMuZmluZCgodHQpID0+IHR0Lm5hbWUgPT09IHRpY2tldCk7XG4gICAgdGlja2V0U3VtbWFyeS5wdXNoKHtcbiAgICAgIHRpY2tldF90eXBlX2lkOiB0aWNrZXRUeXBlLmlkLFxuICAgICAgdGlja2V0X3R5cGU6IHRpY2tldFR5cGUsXG4gICAgICBuYW1lOiB0aWNrZXQsXG4gICAgICBxdHk6IG9yZGVyLnRpY2tldHNfZXhjZXJwdF9ieV90aWNrZXRfdHlwZVt0aWNrZXRdXG4gICAgfSk7XG4gICAgcHVyY2hhc2VUaWNrZXRUb3RhbCArPVxuICAgICAgdGlja2V0VHlwZS5jb3N0ICogb3JkZXIudGlja2V0c19leGNlcnB0X2J5X3RpY2tldF90eXBlW3RpY2tldF07XG5cbiAgICByZXR1cm4gdGlja2V0U3VtbWFyeTtcbiAgfSk7XG5cbiAgY29uc3QgcHVyY2hhc2VUb3RhbCA9IGZvcm1hdEN1cnJlbmN5KHB1cmNoYXNlVGlja2V0VG90YWwsIGN1cnJlbmN5T2JqZWN0KTtcblxuICBjb25zdCBkaXNjb3VudFRvdGFsID0gZm9ybWF0Q3VycmVuY3koZGlzY291bnRfYW1vdW50LCBjdXJyZW5jeU9iamVjdCk7XG4gIGNvbnN0IHJlZnVuZFRvdGFsID0gZm9ybWF0Q3VycmVuY3kocmVmdW5kZWRfYW1vdW50LCBjdXJyZW5jeU9iamVjdCk7XG4gIGNvbnN0IHRheGVzVG90YWwgPSBmb3JtYXRDdXJyZW5jeSh0YXhlc19hbW91bnQsIGN1cnJlbmN5T2JqZWN0KTtcbiAgY29uc3QgYW1vdW50VG90YWwgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3JkZXIsIFwiYW1vdW50XCIpXG4gICAgPyBmb3JtYXRDdXJyZW5jeShhbW91bnQsIGN1cnJlbmN5T2JqZWN0KVxuICAgIDogZm9ybWF0Q3VycmVuY3kocHVyY2hhc2VUb3RhbCwgY3VycmVuY3lPYmplY3QpO1xuXG4gIHJldHVybiB7XG4gICAgZGlzY291bnRUb3RhbCxcbiAgICByZWZ1bmRUb3RhbCxcbiAgICB0YXhlc1RvdGFsLFxuICAgIGFtb3VudFRvdGFsLFxuICAgIHRpY2tldFN1bW1hcnlcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRPcmRlclRpY2tldHMgPSAobWVtYmVyT3JkZXJzLCBvcmRlcklkKSA9PiB7XG4gIGNvbnN0IG9yZGVycyA9IG1lbWJlck9yZGVycy5maWx0ZXIoKG8pID0+IG8uaWQgPT09IG9yZGVySWQpO1xuICByZXR1cm4gb3JkZXJzWzBdPy5tZW1iZXJUaWNrZXRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEVwb2NoTG93ZXJVcHBlckluU2Vjb25kcyA9ICh0cykgPT4ge1xuICBjb25zdCBsb3dlciA9IHRzLnNldEhvdXJzKDAsIDAsIDAsIDApIC8gTUlMTElTRUNfVE9fU0VDO1xuICBjb25zdCB1cHBlciA9XG4gICAgdHMuc2V0SG91cnMoTEFTVF9IT1VSX09GXzI0X0hPVVIsIExBU1RfTUlOVVRFX09GX0hPVVIsIDAsIDApIC9cbiAgICBNSUxMSVNFQ19UT19TRUM7XG4gIHJldHVybiB7XG4gICAgbG93ZXIsXG4gICAgdXBwZXJcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTdW1taXRSZWFzc2lnbkRhdGUgPSAoc3VtbWl0KSA9PiB7XG4gIGlmICghc3VtbWl0KSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHN1bW1pdC5yZWFzc2lnbl90aWNrZXRfdGlsbF9kYXRlICYmXG4gICAgc3VtbWl0LnJlYXNzaWduX3RpY2tldF90aWxsX2RhdGUgPCBzdW1taXQuZW5kX2RhdGVcbiAgICA/IHN1bW1pdC5yZWFzc2lnbl90aWNrZXRfdGlsbF9kYXRlXG4gICAgOiBzdW1taXQuZW5kX2RhdGU7XG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEN1cnJlbnRUaW1lID0gKCkgPT5cbiAgTWF0aC5yb3VuZCgrbmV3IERhdGUoKSAvIE1JTExJU0VDX1RPX1NFQyk7XG5cbmV4cG9ydCBjb25zdCBnZXROb3cgPSAoKSA9PiAoZGlzcGF0Y2gsIGdldFN0YXRlKSA9PiB7XG4gIGNvbnN0IHsgdGltZXJTdGF0ZSB9ID0gZ2V0U3RhdGUoKTtcbiAgcmV0dXJuIHRpbWVyU3RhdGU/Lm5vd1V0YyA9PSBudWxsID8gZGVmYXVsdEN1cnJlbnRUaW1lKCkgOiB0aW1lclN0YXRlPy5ub3dVdGM7XG59O1xuXG5leHBvcnQgY29uc3QgdXNlTm93ID0gKCkgPT4ge1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cbiAgcmV0dXJuIGRpc3BhdGNoKGdldE5vdygpKTtcbn07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbnZhciBfMSA9IFwiTXVpT3V0bGluZWRJbnB1dC1ub3RjaGVkT3V0bGluZV9fX1JvaW1SXCI7XG52YXIgXzIgPSBcIk11aVBpY2tlcnNDYWxlbmRhckhlYWRlci1sYWJlbENvbnRhaW5lcl9fX29vSTBWXCI7XG52YXIgXzMgPSBcImNhbGVuZGFyRGlzcGxheV9fX2ltX2poXCI7XG52YXIgXzQgPSBcImNvbnRhaW5lcl9fX04zWTRYXCI7XG52YXIgXzUgPSBcImRhdGVQaWNrZXJDb250YWluZXJfX19KVzJsT1wiO1xudmFyIF82ID0gXCJkYXRlcGlja2VyQ2xvc2VfX19WOWdIQ1wiO1xudmFyIF83ID0gXCJmaWx0ZXJDb250YWluZXJfX19yR3BZVlwiO1xudmFyIF84ID0gXCJmaWx0ZXJEYXRlTGFiZWxfX19pZkQ0cFwiO1xudmFyIF85ID0gXCJmaWx0ZXJJY29uX19fbDIxS0lcIjtcbnZhciBfYSA9IFwiZmlsdGVyTGFiZWxfX19fUDB3blwiO1xudmFyIF9iID0gXCJmaWx0ZXJMaXN0Q29udGFpbmVyX19fVm1kR3FcIjtcbnZhciBfYyA9IFwiZmlsdGVyTnVtQWN0aXZlX19fVnVIQ0pcIjtcbnZhciBfZCA9IFwiZmlsdGVyU29ydENvbnRhaW5lcl9fX2FyQnZRXCI7XG52YXIgX2UgPSBcImxhYmVsX19feU5GeWpcIjtcbnZhciBfZiA9IFwic2hvd0RhdGVQaWNrZXJfX19VcFFicFwiO1xudmFyIF8xMCA9IFwic29ydENvbnRhaW5lcl9fX2xSc2pVXCI7XG52YXIgXzExID0gXCJzb3J0SWNvbl9fX2ZWVjVLXCI7XG52YXIgXzEyID0gXCJzb3J0TGFiZWxfX19VcUxUQ1wiO1xudmFyIF8xMyA9IFwic29ydExpc3RDb250YWluZXJfX19jbW5CRFwiO1xuZXhwb3J0IHsgXzEgYXMgXCJNdWlPdXRsaW5lZElucHV0LW5vdGNoZWRPdXRsaW5lXCIsIF8yIGFzIFwiTXVpUGlja2Vyc0NhbGVuZGFySGVhZGVyLWxhYmVsQ29udGFpbmVyXCIsIF8zIGFzIFwiY2FsZW5kYXJEaXNwbGF5XCIsIF80IGFzIFwiY29udGFpbmVyXCIsIF81IGFzIFwiZGF0ZVBpY2tlckNvbnRhaW5lclwiLCBfNiBhcyBcImRhdGVwaWNrZXJDbG9zZVwiLCBfNyBhcyBcImZpbHRlckNvbnRhaW5lclwiLCBfOCBhcyBcImZpbHRlckRhdGVMYWJlbFwiLCBfOSBhcyBcImZpbHRlckljb25cIiwgX2EgYXMgXCJmaWx0ZXJMYWJlbFwiLCBfYiBhcyBcImZpbHRlckxpc3RDb250YWluZXJcIiwgX2MgYXMgXCJmaWx0ZXJOdW1BY3RpdmVcIiwgX2QgYXMgXCJmaWx0ZXJTb3J0Q29udGFpbmVyXCIsIF9lIGFzIFwibGFiZWxcIiwgX2YgYXMgXCJzaG93RGF0ZVBpY2tlclwiLCBfMTAgYXMgXCJzb3J0Q29udGFpbmVyXCIsIF8xMSBhcyBcInNvcnRJY29uXCIsIF8xMiBhcyBcInNvcnRMYWJlbFwiLCBfMTMgYXMgXCJzb3J0TGlzdENvbnRhaW5lclwiIH1cbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxudmFyIF8xID0gXCJvcmRlckRldGFpbHNNbW91bnRfX19yM2tSQVwiO1xudmFyIF8yID0gXCJvcmRlckRldGFpbHNUaWNrZXRzX19fbTRJaktcIjtcbnZhciBfMyA9IFwib3JkZXJPcmRlck51bWJlcl9fX1JxQ2JDXCI7XG52YXIgXzQgPSBcIm9yZGVyU3VtbWFyeUJ1dHRvbl9fX3V4amh0XCI7XG52YXIgXzUgPSBcIm9yZGVyU3VtbWFyeVB1cmNoYXNlZEluZm9fX19fUkJYRVwiO1xudmFyIF82ID0gXCJvcmRlclN1bW1hcnlQdXJjaGFzZWROdW1iZXJfX19wcXlfSVwiO1xudmFyIF83ID0gXCJvcmRlclN1bW1hcnlUYWJsZV9fX1lEbnhWXCI7XG52YXIgXzggPSBcIm9yZGVyU3VtbWFyeVdyYXBwZXJfX19Sd0lFUlwiO1xuZXhwb3J0IHsgXzEgYXMgXCJvcmRlckRldGFpbHNNbW91bnRcIiwgXzIgYXMgXCJvcmRlckRldGFpbHNUaWNrZXRzXCIsIF8zIGFzIFwib3JkZXJPcmRlck51bWJlclwiLCBfNCBhcyBcIm9yZGVyU3VtbWFyeUJ1dHRvblwiLCBfNSBhcyBcIm9yZGVyU3VtbWFyeVB1cmNoYXNlZEluZm9cIiwgXzYgYXMgXCJvcmRlclN1bW1hcnlQdXJjaGFzZWROdW1iZXJcIiwgXzcgYXMgXCJvcmRlclN1bW1hcnlUYWJsZVwiLCBfOCBhcyBcIm9yZGVyU3VtbWFyeVdyYXBwZXJcIiB9XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbnZhciBfMSA9IFwiYXNzaWduVGlja2V0QnV0dG9uX19fenpMc2NcIjtcbnZhciBfMiA9IFwiYmxhY2tCdXR0b25fX19sOWhqOVwiO1xudmFyIF8zID0gXCJjb3B5SWNvbl9fX05rSEdPXCI7XG52YXIgXzQgPSBcImRldGFpbHNSZXF1aXJlZExhYmVsX19fWTJrb3JcIjtcbnZhciBfNSA9IFwiZGlzcGxheV9ub25lX19fQ3FwTDNcIjtcbnZhciBfNiA9IFwibGFiZWxfX196WERXelwiO1xudmFyIF83ID0gXCJvcmRlclRpY2tldENvbnRhaW5lcl9fX1pKTHprXCI7XG52YXIgXzggPSBcIm9yZGVyVGlja2V0SW5mb19fX2dlbXFCXCI7XG52YXIgXzkgPSBcIm9yZGVyVGlja2V0SW5mb0NvbnRhaW5lcl9fX19wNjZWXCI7XG52YXIgX2EgPSBcIm9yZGVyVGlja2V0Tm9Db250YWluZXJfX192cW9oTlwiO1xudmFyIF9iID0gXCJvcmRlclRpY2tldE51bWJlclRydW5jYXRlZF9fX0hYbWR3XCI7XG52YXIgX2MgPSBcIm9yZGVyV3JhcHBlcl9fX3lEQkFvXCI7XG52YXIgX2QgPSBcInJlYXNzaWduQnV0dG9uX19fUm9qTTVcIjtcbnZhciBfZSA9IFwidGFiQnV0dG9uc19fX3hUeUpBXCI7XG52YXIgX2YgPSBcInRpY2tldEFjdGlvbkJ1dHRvbnNfX19ycFNNUVwiO1xudmFyIF8xMCA9IFwidGlja2V0TGlzdENvbnRhaW5lcl9fX2NmbXJyXCI7XG52YXIgXzExID0gXCJ0aWNrZXROb19fX2EyaU05XCI7XG52YXIgXzEyID0gXCJ0aWNrZXRPd25lckVtYWlsX19fWnQ0T0VcIjtcbnZhciBfMTMgPSBcInRpY2tldFRpY2tldFR5cGVfX19acV9mMFwiO1xudmFyIF8xNCA9IFwidmlld0ZpbmlzaFRpY2tldEJ1dHRvbl9fX0hGNkltXCI7XG52YXIgXzE1ID0gXCJ2aWV3TW9yZUJ1dHRvbl9fX0tfMXpUXCI7XG5leHBvcnQgeyBfMSBhcyBcImFzc2lnblRpY2tldEJ1dHRvblwiLCBfMiBhcyBcImJsYWNrQnV0dG9uXCIsIF8zIGFzIFwiY29weUljb25cIiwgXzQgYXMgXCJkZXRhaWxzUmVxdWlyZWRMYWJlbFwiLCBfNSBhcyBcImRpc3BsYXlfbm9uZVwiLCBfNiBhcyBcImxhYmVsXCIsIF83IGFzIFwib3JkZXJUaWNrZXRDb250YWluZXJcIiwgXzggYXMgXCJvcmRlclRpY2tldEluZm9cIiwgXzkgYXMgXCJvcmRlclRpY2tldEluZm9Db250YWluZXJcIiwgX2EgYXMgXCJvcmRlclRpY2tldE5vQ29udGFpbmVyXCIsIF9iIGFzIFwib3JkZXJUaWNrZXROdW1iZXJUcnVuY2F0ZWRcIiwgX2MgYXMgXCJvcmRlcldyYXBwZXJcIiwgX2QgYXMgXCJyZWFzc2lnbkJ1dHRvblwiLCBfZSBhcyBcInRhYkJ1dHRvbnNcIiwgX2YgYXMgXCJ0aWNrZXRBY3Rpb25CdXR0b25zXCIsIF8xMCBhcyBcInRpY2tldExpc3RDb250YWluZXJcIiwgXzExIGFzIFwidGlja2V0Tm9cIiwgXzEyIGFzIFwidGlja2V0T3duZXJFbWFpbFwiLCBfMTMgYXMgXCJ0aWNrZXRUaWNrZXRUeXBlXCIsIF8xNCBhcyBcInZpZXdGaW5pc2hUaWNrZXRCdXR0b25cIiwgXzE1IGFzIFwidmlld01vcmVCdXR0b25cIiB9XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbnZhciBfMSA9IFwiYnV0dG9uQ2FuY2VsbGVkX19fRXJsRFpcIjtcbnZhciBfMiA9IFwiYnV0dG9uQ29tcGxldGVfX19sbFdrWlwiO1xudmFyIF8zID0gXCJidXR0b25JbmNvbXBsZXRlX19fVG9sSGdcIjtcbnZhciBfNCA9IFwiYnV0dG9uUGlsbF9fX3pxMnRjXCI7XG52YXIgXzUgPSBcImJ1dHRvblJlZnVuZFJlcXVlc3RlZF9fX3BXdDMwXCI7XG52YXIgXzYgPSBcImJ1dHRvblVuYXNzaWduZWRfX19ZRGQ4WFwiO1xudmFyIF83ID0gXCJ0aWNrZXRTdGF0dXNDb250YWluZXJfX19xajZmYlwiO1xuZXhwb3J0IHsgXzEgYXMgXCJidXR0b25DYW5jZWxsZWRcIiwgXzIgYXMgXCJidXR0b25Db21wbGV0ZVwiLCBfMyBhcyBcImJ1dHRvbkluY29tcGxldGVcIiwgXzQgYXMgXCJidXR0b25QaWxsXCIsIF81IGFzIFwiYnV0dG9uUmVmdW5kUmVxdWVzdGVkXCIsIF82IGFzIFwiYnV0dG9uVW5hc3NpZ25lZFwiLCBfNyBhcyBcInRpY2tldFN0YXR1c0NvbnRhaW5lclwiIH1cbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxudmFyIF8xID0gXCJub09yZGVyc0ZvdW5kX19fQW9nMnBcIjtcbnZhciBfMiA9IFwic3VtbWl0VGl0bGVEYXRlX19fWjE5UG1cIjtcbnZhciBfMyA9IFwid2lkZ2V0SGVhZGVyX19feVk1Z2VcIjtcbmV4cG9ydCB7IF8xIGFzIFwibm9PcmRlcnNGb3VuZFwiLCBfMiBhcyBcInN1bW1pdFRpdGxlRGF0ZVwiLCBfMyBhcyBcIndpZGdldEhlYWRlclwiIH1cbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvQ2xvc2VcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQG11aS9pY29ucy1tYXRlcmlhbC9Db250ZW50Q29weVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvRmlsdGVyTGlzdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL2ljb25zLW1hdGVyaWFsL0ltcG9ydEV4cG9ydFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL2ljb25zLW1hdGVyaWFsL1NlYXJjaFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL21hdGVyaWFsXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkvbWF0ZXJpYWwvRGl2aWRlclwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL21hdGVyaWFsL0lucHV0QmFzZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL21hdGVyaWFsL1N0YWNrXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkvbWF0ZXJpYWwvVGFiXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkvbWF0ZXJpYWwvVGFic1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAbXVpL21hdGVyaWFsL3VzZU1lZGlhUXVlcnlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQG11aS94LWRhdGUtcGlja2Vycy9BZGFwdGVyRGF5anNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQG11aS94LWRhdGUtcGlja2Vycy9EYXRlUGlja2VyXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBtdWkveC1kYXRlLXBpY2tlcnMvTG9jYWxpemF0aW9uUHJvdmlkZXJcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQHJlZHV4anMvdG9vbGtpdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAc2VudHJ5L3JlYWN0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImRheWpzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1vbWVudC10aW1lem9uZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vbGliL3NlY3VyaXR5L2FjdGlvbnNcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwib3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL2xpYi9zZWN1cml0eS9tZXRob2RzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi9saWIvdXRpbHMvYWN0aW9uc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJwcm9wLXR5cGVzXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0LWkxOG5leHRcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtaW5maW5pdGUtc2Nyb2xsLWNvbXBvbmVudFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdC1yZWR1eFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWR1eFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWR1eC1wZXJzaXN0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlZHV4LXBlcnNpc3QvaW50ZWdyYXRpb24vcmVhY3RcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVkdXgtcGVyc2lzdC9saWIvc3RvcmFnZVwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAyNCBPcGVuU3RhY2sgRm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICogKi9cbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCB7IFByb3ZpZGVyIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7XG5pbXBvcnQgeyBQZXJzaXN0R2F0ZSB9IGZyb20gXCJyZWR1eC1wZXJzaXN0L2ludGVncmF0aW9uL3JlYWN0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBCb3ggfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IHsgdXNlSW5pdFN0b3JlIH0gZnJvbSBcIi4vc3RvcmVcIjtcbmltcG9ydCBNeU9yZGVyc1RpY2tldHMgZnJvbSBcIi4vY29tcG9uZW50cy9NeU9yZGVyc1RpY2tldHNcIjtcbmltcG9ydCB7IFJFU0VUX1NUQVRFLCBzZXRTdW1taXQsIHNldFVzZXIgfSBmcm9tIFwiLi9hY3Rpb25zXCI7XG5cbmZ1bmN0aW9uIE15T3JkZXJzTXlUaWNrZXRzV2lkZ2V0KHByb3BzKSB7XG4gIGNvbnN0IHsgbG9naW5VcmwsIHN1cHBvcnRFbWFpbCwgc3VtbWl0LCBhcGlCYXNlVXJsLCB1c2VyLCBjbGllbnRJZCB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcblxuICBjb25zdCB7IHN0b3JlLCBwZXJzaXN0b3IgfSA9IHVzZUluaXRTdG9yZSh7XG4gICAgbG9naW5VcmwsXG4gICAgc3VwcG9ydEVtYWlsLFxuICAgIHN1bW1pdCxcbiAgICB1c2VyLFxuICAgIGFwaUJhc2VVcmwsXG4gICAgY2xpZW50SWRcbiAgfSk7XG5cbiAgY29uc3QgaGFuZGxlQmVmb3JlTGlmdCA9ICgpID0+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IGZsdXNoID0gcGFyYW1zLmhhcyhcImZsdXNoU3RhdGVcIik7XG4gICAgaWYgKGZsdXNoKSBzdG9yZS5kaXNwYXRjaCh7IHR5cGU6IFJFU0VUX1NUQVRFLCBwYXlsb2FkOiBudWxsIH0pO1xuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc3RvcmUuZGlzcGF0Y2goc2V0U3VtbWl0KHN1bW1pdCkpO1xuICB9LCBbc3VtbWl0XSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzdG9yZS5kaXNwYXRjaChzZXRVc2VyKHVzZXIpKTtcbiAgfSwgW3VzZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxQcm92aWRlciBzdG9yZT17c3RvcmV9PlxuICAgICAgPFBlcnNpc3RHYXRlXG4gICAgICAgIG9uQmVmb3JlTGlmdD17aGFuZGxlQmVmb3JlTGlmdH1cbiAgICAgICAgbG9hZGluZz17bnVsbH1cbiAgICAgICAgcGVyc2lzdG9yPXtwZXJzaXN0b3J9XG4gICAgICA+XG4gICAgICAgIDxCb3ggc3g9e3sgcGFkZGluZzogeyB4czogMiwgbWQ6IDAsIGxnOiAwIH0gfX0+XG4gICAgICAgICAgPGgzPnt0KFwib3JkZXJzLnRpdGxlXCIpfTwvaDM+XG4gICAgICAgIDwvQm94PlxuICAgICAgICA8TXlPcmRlcnNUaWNrZXRzXG4gICAgICAgICAgbG9naW5Vcmw9e2xvZ2luVXJsfVxuICAgICAgICAgIHN1cHBvcnRFbWFpbD17c3VwcG9ydEVtYWlsfVxuICAgICAgICAgIHN1bW1pdD17c3VtbWl0fVxuICAgICAgICAgIGFwaUJhc2VVcmw9e2FwaUJhc2VVcmx9XG4gICAgICAgIC8+XG4gICAgICA8L1BlcnNpc3RHYXRlPlxuICAgIDwvUHJvdmlkZXI+XG4gICk7XG59XG5cbk15T3JkZXJzTXlUaWNrZXRzV2lkZ2V0LnByb3BUeXBlcyA9IHtcbiAgbG9naW5Vcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHN1cHBvcnRFbWFpbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgc3VtbWl0OiBQcm9wVHlwZXMub2JqZWN0LFxuICBhcGlCYXNlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB1c2VyOiBQcm9wVHlwZXMub2JqZWN0XG59O1xuXG5leHBvcnQgZGVmYXVsdCBNeU9yZGVyc015VGlja2V0c1dpZGdldDtcbiJdLCJuYW1lcyI6WyJnZXRBY2Nlc3NUb2tlblNhZmVseSIsImF1dGhFcnJvckhhbmRsZXIiLCJnZXRSZXF1ZXN0IiwiZGVsZXRlUmVxdWVzdCIsImNyZWF0ZUFjdGlvbiIsInN0b3BMb2FkaW5nIiwic3RhcnRMb2FkaW5nIiwicHV0UmVxdWVzdCIsIkZJUlNUX1BBR0UiLCJERUZBVUxUX0lURU1TX1BFUl9QQUdFIiwiT05FX1BBR0VfTkVYVCIsIlJFU0VUX1NUQVRFIiwiUkVTRVRfRklMVEVSIiwiR0VUX1VTRVJfT1JERVJTIiwiUkVGVU5EX09SREVSIiwiU0VUX0FDVElWRV9PUkRFUl9JRCIsIkZJTFRFUl9VU0VSX09SREVSUyIsIkdFVF9USUNLRVRTIiwiQVNTSUdOX1RJQ0tFVCIsIlJFTU9WRV9USUNLRVRfQVRURU5ERUUiLCJSRUZVTkRfVElDS0VUIiwiUkVTRU5EX05PVElGSUNBVElPTiIsIkdFVF9USUNLRVRTX0JZX09SREVSIiwiR0VUX1RJQ0tFVFNfQllfT1JERVJfRVJST1IiLCJHRVRfT1JERVJfVElDS0VUX0RFVEFJTFMiLCJHRVRfVElDS0VUX0RFVEFJTFMiLCJUSUNLRVRfQVRURU5ERUVfS0VZUyIsImVtYWlsIiwiZmlyc3ROYW1lIiwibGFzdE5hbWUiLCJjb21wYW55IiwiZGlzY2xhaW1lckFjY2VwdGVkIiwiZXh0cmFRdWVzdGlvbnMiLCJTVEFSVF9MT0FESU5HX0lEUF9QUk9GSUxFIiwiU1RPUF9MT0FESU5HX0lEUF9QUk9GSUxFIiwiVVBEQVRFX0lEUF9QUk9GSUxFIiwiU0VUX1VTRVIiLCJTRVRfU1VNTUlUIiwiR0VUX01BSU5fRVhUUkFfUVVFU1RJT05TIiwiUkVDRUlWRV9NQVJLRVRJTkdfU0VUVElOR1MiLCJDTEVBUl9NQVJLRVRJTkdfU0VUVElOR1MiLCJyZXNldFN0YXRlIiwiZGlzcGF0Y2giLCJyZXNldEZpbHRlciIsIkZJTFRFUl9WQVJfREFURSIsIkZJTFRFUl9WQVJfT1JERVJfTlVNQkVSIiwicGFyc2VGaWx0ZXIiLCJmaWx0ZXJPYmoiLCJmaWx0ZXIiLCJ0eXBlIiwicHVzaCIsIm5hbWUiLCJsb3dlciIsInVwcGVyIiwidmFsdWUiLCJnZXRTb3J0RGlyZWN0aW9uIiwiZGlyZWN0aW9uIiwiZ2V0VXNlck9yZGVycyIsIl9yZWYiLCJwYWdlIiwicGVyUGFnZSIsInNvcnQiLCJuZXh0IiwiZ2V0U3RhdGUiLCJfcmVmMiIsImFwaUJhc2VVcmwiLCJ3aWRnZXRTdGF0ZSIsInN1bW1pdCIsImFjY2Vzc1Rva2VuIiwiY2F0Y2giLCJQcm9taXNlIiwicmVqZWN0IiwicGFyYW1zIiwiYWNjZXNzX3Rva2VuIiwib3JkZXIiLCJyZWxhdGlvbnMiLCJwZXJfcGFnZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJmaWx0ZXJzIiwiaWQiLCJ0aGVuIiwicGF5bG9hZCIsImUiLCJzZXRBY3RpdmVPcmRlcklkIiwib3JkZXJJZCIsInNldFVzZXIiLCJ1c2VyIiwidXBkYXRlUHJvZmlsZSIsInByb2ZpbGUiLCJfcmVmMyIsImlkcEJhc2VVcmwiLCJnZXRVc2VyVGlja2V0cyIsIl9yZWY0IiwiX3JlZjUiLCJ1c2VyU3RhdGUiLCJ1c2VyUHJvZmlsZSIsImV4cGFuZCIsImZpZWxkcyIsImdldFRpY2tldHNCeU9yZGVyIiwiX3JlZjYiLCJfcmVmNyIsInJlc2VuZE5vdGlmaWNhdGlvbiIsInRpY2tldCIsIl9yZWY4IiwibWVzc2FnZSIsIm9yZGVyX2lkIiwicmVmdW5kVGlja2V0IiwiX3JlZjkiLCJfcmVmMTAiLCJvcmRlclN0YXRlIiwiY3VycmVudF9wYWdlIiwib3JkZXJQYWdlIiwidGlja2V0U3RhdGUiLCJ0aWNrZXRQYWdlIiwic2V0U3VtbWl0IiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIlByb3BUeXBlcyIsIlN0YWNrIiwidXNlVHJhbnNsYXRpb24iLCJkYXlqcyIsIkFkYXB0ZXJEYXlqcyIsIkxvY2FsaXphdGlvblByb3ZpZGVyIiwiRGF0ZVBpY2tlciIsIkNsb3NlSWNvbiIsImdldEVwb2NoTG93ZXJVcHBlckluU2Vjb25kcyIsInN0eWxlcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkJhc2ljRGF0ZVBpY2tlciIsIm9uRmlsdGVyIiwib25SZXNldCIsInQiLCJub3ciLCJkYXRlVmFsdWUiLCJzZXREYXRlVmFsdWUiLCJvbkRhdGVDaGFuZ2UiLCJ2YWwiLCJkYXRlIiwiRGF0ZSIsIiRkIiwib25SZXNldEFjdGlvbiIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZmlsdGVyRGF0ZUxhYmVsIiwiYWxpZ25JdGVtcyIsInN4IiwicHQiLCJwYiIsImRhdGVQaWNrZXJDb250YWluZXIiLCJmb250U2l6ZSIsImRhdGVwaWNrZXJDbG9zZSIsIm9uQ2xpY2siLCJkYXRlQWRhcHRlciIsImNhbGVuZGFyRGlzcGxheSIsIm9uQ2hhbmdlIiwicHJvcFR5cGVzIiwiZnVuYyIsInVzZVJlZiIsInVzZUVmZmVjdCIsIkZpbHRlckxpc3RJY29uIiwiQm94IiwiRmlsdGVyIiwic2hvd0ZpbHRlckxpc3QiLCJzZXRTaG93RmlsdGVyTGlzdCIsInNob3dEYXRlcGlja2VyIiwic2V0U2hvd0RhdGVwaWNrZXIiLCJmaWx0ZXJOdW1BY3RpdmUiLCJzZXRGaWx0ZXJOdW1BY3RpdmUiLCJmaWx0ZXJSZWYiLCJoYW5kbGVGaWx0ZXJDbGlja091dHNpZGUiLCJldmVudCIsImN1cnJlbnQiLCJjb250YWlucyIsInRhcmdldCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ0b2dnbGUiLCJmaWx0ZXJDb250YWluZXIiLCJyZWYiLCJmaWx0ZXJJY29uIiwiZmlsdGVyTGFiZWwiLCJmaWx0ZXJMaXN0Q29udGFpbmVyIiwiY29udGFpbmVyIiwic2hvd0RhdGVQaWNrZXIiLCJzdHlsZWQiLCJTZWFyY2hJY29uIiwiSW5wdXRCYXNlIiwiU2VhcmNoQ29udGFpbmVyIiwicG9zaXRpb24iLCJtYXJnaW5SaWdodCIsIm1hcmdpbkxlZnQiLCJ3aWR0aCIsImRpc3BsYXkiLCJTZWFyY2hJY29uV3JhcHBlciIsImhlaWdodCIsImp1c3RpZnlDb250ZW50IiwiU3R5bGVkSW5wdXRCYXNlIiwiY29sb3IiLCJib3JkZXJCb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsIkNsb3NlSWNvbldyYXBwZXIiLCJwYWRkaW5nIiwidG9wIiwicmlnaHQiLCJjdXJzb3IiLCJ6SW5kZXgiLCJTZWFyY2giLCJvblNlYXJjaCIsInNob3dDbG9zZSIsInNldFNob3dDbG9zZSIsInNlYXJjaFZhbHVlIiwic2V0U2VhcmNoVmFsdWUiLCJvbktleURvd24iLCJrZXkiLCJuYXRpdmVFdmVudCIsInJlc2V0U2VhcmNoIiwicGxhY2Vob2xkZXIiLCJpbnB1dFByb3BzIiwiQnV0dG9uIiwiSW1wb3J0RXhwb3J0SWNvbiIsIlNvcnQiLCJvblNvcnQiLCJzaG93U29ydCIsInNldFNob3dTb3J0Iiwic29ydFJlZiIsImhhbmRsZVNvcnRDbGlja091dHNpZGUiLCJzb3J0Q29udGFpbmVyIiwic29ydEljb24iLCJzb3J0TGFiZWwiLCJzb3J0TGlzdENvbnRhaW5lciIsImxhYmVsIiwiR3JpZCIsIkZpbHRlclNvcnRTZWFyY2giLCJqdXN0aWZ5IiwiaXRlbSIsInhzIiwiZ2FwIiwiZmlsdGVyU29ydENvbnRhaW5lciIsInVzZURpc3BhdGNoIiwidXNlU2VsZWN0b3IiLCJzaGFsbG93RXF1YWwiLCJJbmZpbml0ZVNjcm9sbCIsIk9yZGVyc0xpc3QiLCJnZXRTdW1taXRGb3JtYXR0ZWREYXRlIiwiTXlPcmRlcnNUaWNrZXRzIiwibWVtYmVyT3JkZXJzIiwib3JkZXJzX2N1cnJlbnRfcGFnZSIsIm9yZGVyc19wZXJfcGFnZSIsIm9yZGVyc190b3RhbCIsInN0YXRlIiwiaGFzTW9yZSIsInNldEhhc01vcmUiLCJzZWFyY2hOZXh0Iiwic2V0U2VhcmNoTmV4dCIsInNldEZpbHRlciIsInNldFNvcnQiLCJmZXRjaERhdGEiLCJyZXMiLCJyZXNwb25zZSIsImRhdGEiLCJ3aWRnZXRIZWFkZXIiLCJtZCIsImxnIiwic3VtbWl0VGl0bGVEYXRlIiwiZGF0YUxlbmd0aCIsInNjcm9sbFRocmVzaG9sZCIsIm1hcCIsIm5vT3JkZXJzRm91bmQiLCJEaXZpZGVyIiwiY2FsY3VsYXRlT3JkZXJUb3RhbHMiLCJmb3JtYXRDdXJyZW5jeSIsIk9yZGVyU3VtbWFyeVRhYmxlIiwidGlja2V0cyIsImRpc2NvdW50VG90YWwiLCJyZWZ1bmRUb3RhbCIsInRheGVzVG90YWwiLCJhbW91bnRUb3RhbCIsInRpY2tldFN1bW1hcnkiLCJodW5kcmVkIiwib3JkZXJTdW1tYXJ5VGFibGUiLCJ0aWNrZXRUb3RhbCIsInF0eSIsInRpY2tldF90eXBlIiwiY29zdCIsImFsaWduIiwiY3VycmVuY3kiLCJjcmVhdGVkIiwiZGlzY291bnRfYW1vdW50IiwidGF4ZXNfYW1vdW50Iiwic3RhdHVzIiwic2hhcGUiLCJzdHJpbmciLCJudW1iZXIiLCJvYmplY3QiLCJhcnJheU9mIiwiUmVmdW5kRW1haWxTdXBwb3J0Iiwib25SZWZ1bmRDbGljayIsIm9uUmVmdW5kRGV0YWlsQ2xpY2siLCJvbkVtYWlsU3VwcG9ydENsaWNrIiwib3JkZXJTdW1tYXJ5QnV0dG9uIiwidmFyaWFudCIsInNpemUiLCJPcmRlclN1bW1hcnkiLCJvcmRlclN1bW1hcnlXcmFwcGVyIiwicHgiLCJvcmRlclN1bW1hcnlQdXJjaGFzZWRJbmZvIiwiT3JkZXJMaXN0VGlja2V0cyIsIlBBR0lOQVRJT05fRElTUExBWV9DT1VOVCIsIk9yZGVyTGlzdEl0ZW0iLCJ0b3RhbCIsIm9uUGFnaW5hdGVDbGljayIsIml0ZW1zVG9EaXNwbGF5Iiwic2V0SXRlbXNUb0Rpc3BsYXkiLCJzbGljZWRUaWNrZXRzIiwic2xpY2UiLCJvblZpZXdNb3JlIiwib25WaWV3TGVzcyIsInZpZXdNb3JlQnV0dG9uIiwiVGlja2V0U3RhdHVzIiwiT3JkZXJOdW1iZXIiLCJnZXRTdW1taXRSZWFzc2lnbkRhdGUiLCJ1c2VOb3ciLCJnZXRBY3RpdmVCdXR0b25BY3Rpb25zIiwib3duZXIiLCJ2aWV3RmluaXNoVGlja2V0QnV0dG9uIiwic2hvd1JlYXNzaWduQnV0dG9uIiwicmVhc3NpZ25EYXRlIiwiaXNSZWFzc2lnbmFibGUiLCJyZWFzc2lnbkJ1dHRvbiIsIm9yZGVyV3JhcHBlciIsInRpY2tldFRpY2tldFR5cGUiLCJ0aWNrZXRPd25lckVtYWlsIiwiaXNfYWN0aXZlIiwidGlja2V0Tm8iLCJjb3B5IiwidHJ1bmNhdGVkIiwidGlja2V0QWN0aW9uQnV0dG9ucyIsImFzc2lnblRpY2tldEJ1dHRvbiIsInRvdGFsX3JlZnVuZGVkX2Ftb3VudCIsIkNvbnRlbnRDb3B5SWNvbiIsIm9yZGVyVGlja2V0Tm9Db250YWluZXIiLCJvcmRlclRpY2tldE51bWJlclRydW5jYXRlZCIsImNvcHlJY29uIiwibmF2aWdhdG9yIiwiY2xpcGJvYXJkIiwid3JpdGVUZXh0IiwiYm9vbCIsIlRhYnMiLCJUYWIiLCJFcnJvckljb24iLCJUYWJQYW5lbCIsInByb3BzIiwiaW5kZXgiLCJyb2xlIiwiaGlkZGVuIiwiT3JkZXJzTGlzdERlc2t0b3BNb2JpbGUiLCJpc01vYmlsZSIsImRldGFpbHNSZXF1aXJlZCIsInNldFZhbHVlIiwiaGFuZGxlQ2hhbmdlIiwiXyIsIm5ld1ZhbHVlIiwibW9yZURldGFpbHMiLCJkZXRhaWxzUmVxdWlyZWRMYWJlbCIsInRpY2tldExpc3RDb250YWluZXIiLCJib3JkZXJDb2xvciIsInRleHRDb2xvciIsIlRhYkluZGljYXRvclByb3BzIiwic3R5bGUiLCJiYWNrZ3JvdW5kIiwidGFiQnV0dG9ucyIsInVzZVRoZW1lIiwidXNlTWVkaWFRdWVyeSIsImdldE9yZGVyVGlja2V0cyIsImdldEZvcm1hdHRlZERhdGUiLCJsYXN0X3BhZ2UiLCJ0aGVtZSIsImJyZWFrcG9pbnRzIiwiZG93biIsImlzTW9iaWxlVmlld2FibGUiLCJzZXRNb2JpbGVWaWV3YWJsZSIsIm1lbWJlclRpY2tldHMiLCJmaW5kIiwiZmV0Y2hUaWNrZXRzQnlPcmRlciIsImNvbnNvbGUiLCJsb2ciLCJ0aWNrZXRzX3BhZ2VfY3VycmVudCIsIm9yZGVyVGlja2V0SW5mb0NvbnRhaW5lciIsIm9yZGVyVGlja2V0SW5mbyIsImJsYWNrQnV0dG9uIiwicm93U3BhY2luZyIsImNvbHVtblNwYWNpbmciLCJzbSIsIm9yZGVyVGlja2V0Q29udGFpbmVyIiwiZGlzcGxheV9ub25lIiwiZmxleERpcmVjdGlvbiIsInRpY2tldHNfdG90YWwiLCJDb250YWluZXIiLCJpc0FjdGl2ZSIsInJlZnVuZF9yZXF1ZXN0cyIsInIiLCJ0aWNrZXRfc3RhdHVzX2luY29tcGxldGUiLCJ0aWNrZXRfdW5hc3NpZ25lZCIsIm93bmVyX2lkIiwidGlja2V0X2NvbXBsZXRlIiwidGlja2V0U3RhdHVzQ29udGFpbmVyIiwiYnV0dG9uUGlsbCIsImJ1dHRvblJlZnVuZFJlcXVlc3RlZCIsImJ1dHRvbkluY29tcGxldGUiLCJidXR0b25VbmFzc2lnbmVkIiwiYnV0dG9uQ29tcGxldGUiLCJidXR0b25DYW5jZWxsZWQiLCJMT0dPVVRfVVNFUiIsIkRFRkFVTFRfU1RBVEUiLCJ3aWRnZXRMb2FkaW5nIiwiZXJyb3JzIiwibG9hZGluZyIsImlzT3JkZXJMb2FkaW5nIiwib3JkZXJzX2xhc3RfcGFnZSIsInRpY2tldF9jdXJyZW50X3BhZ2UiLCJ0aWNrZXRfbGFzdF9wYWdlIiwidGlja2V0X3Blcl9wYWdlIiwidGlja2V0X3RvdGFsIiwiV2lkZ2V0UmVkdWNlciIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsImZvcm1lck9yZGVyIiwibyIsInVwZGF0ZWRPcmRlciIsInRpY2tldHNfcGFnZV9sYXN0IiwibW8iLCJ1c2VNZW1vIiwiY29uZmlndXJlU3RvcmUiLCJwZXJzaXN0U3RvcmUiLCJwZXJzaXN0UmVkdWNlciIsIkZMVVNIIiwiUkVIWURSQVRFIiwiUEFVU0UiLCJQRVJTSVNUIiwiUFVSR0UiLCJSRUdJU1RFUiIsInN0b3JhZ2UiLCJjb21iaW5lUmVkdWNlcnMiLCJnZXRTdG9yZSIsImNsaWVudElkIiwibG9naW5VcmwiLCJyZWR1Y2VycyIsInN0b3JlIiwicmVkdWNlciIsIm1pZGRsZXdhcmUiLCJnZXREZWZhdWx0TWlkZGxld2FyZSIsInRodW5rIiwiZXh0cmFBcmd1bWVudCIsImltbXV0YWJsZUNoZWNrIiwic2VyaWFsaXphYmxlQ2hlY2siLCJpZ25vcmVkQWN0aW9ucyIsInVzZUluaXRTdG9yZSIsImNvbmZpZyIsInBlcnNpc3RvciIsImluaXRMb2dPdXQiLCJnZXRBY2Nlc3NUb2tlbiIsIlNlbnRyeSIsImNhcHR1cmVFeGNlcHRpb24iLCJMQVNUX0hPVVJfT0ZfMjRfSE9VUiIsIkxBU1RfTUlOVVRFX09GX0hPVVIiLCJNSUxMSVNFQ19UT19TRUMiLCJPTkVfREFZIiwibW9tZW50IiwibG9jYWxlIiwib3B0aW9ucyIsImRlZmF1bHRPcHRpb25zIiwibWluaW11bUZyYWN0aW9uRGlnaXRzIiwibWF4aW11bUZyYWN0aW9uRGlnaXRzIiwiZm9ybWF0dGVyIiwiSW50bCIsIk51bWJlckZvcm1hdCIsImZvcm1hdCIsImRhdGV0aW1lIiwidGltZVpvbmUiLCJ0eiIsInVuaXgiLCJzdGFydERheSIsInN0YXJ0X2RhdGUiLCJ0aW1lX3pvbmVfaWQiLCJlbmREYXkiLCJlbmRfZGF0ZSIsImRheXMiLCJkaWZmIiwiZm9ybWF0U3RhcnREYXRlIiwiZm9ybWF0RW5kRGF0ZSIsInllYXIiLCJtb250aCIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJyZWZ1bmRlZF9hbW91bnQiLCJhbW91bnQiLCJ0aWNrZXRfdHlwZXMiLCJwdXJjaGFzZVRpY2tldFRvdGFsIiwiY3VycmVuY3lPYmplY3QiLCJ0aWNrZXRzX2V4Y2VycHRfYnlfdGlja2V0X3R5cGUiLCJ0aWNrZXRUeXBlIiwidHQiLCJ0aWNrZXRfdHlwZV9pZCIsInB1cmNoYXNlVG90YWwiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJvcmRlcnMiLCJ0cyIsInNldEhvdXJzIiwicmVhc3NpZ25fdGlja2V0X3RpbGxfZGF0ZSIsImRlZmF1bHRDdXJyZW50VGltZSIsIk1hdGgiLCJyb3VuZCIsImdldE5vdyIsInRpbWVyU3RhdGUiLCJub3dVdGMiLCJQcm92aWRlciIsIlBlcnNpc3RHYXRlIiwiTXlPcmRlcnNNeVRpY2tldHNXaWRnZXQiLCJzdXBwb3J0RW1haWwiLCJoYW5kbGVCZWZvcmVMaWZ0IiwiVVJMU2VhcmNoUGFyYW1zIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJmbHVzaCIsImhhcyIsIm9uQmVmb3JlTGlmdCJdLCJzb3VyY2VSb290IjoiIn0=
|