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