{"version":3,"sources":["components/common/head.tsx","components/common/main-banner.tsx","components/common/forms/dataentry.tsx","components/common/forms/forms.ts","components/common/forms/radios.tsx","components/common/forms/validation.ts","components/common/alert.tsx","components/common/forms/error-summary.tsx","components/survey/optional-extra-info-page.tsx","components/common/forms/select-named.tsx","components/common/forms/date-select.tsx","components/common/forms/field.tsx","service/domain/accomodations.ts","components/common/loader.tsx","components/survey/child-info-page.tsx","components/survey/health-info-page.tsx","components/survey/dictionaries.ts","components/survey/address.tsx","components/survey/parents-info-page.tsx","service/domain/conditions.ts","components/survey/consent-page.tsx","components/survey/accomodation-terms.tsx","components/survey/accomodation-page.tsx","common/errors.ts","components/common/errors-repr.ts","components/common/error.tsx","service/settings.ts","service/monitoring.ts","components/survey/survey.tsx","service/api/index.ts","common/fetch.ts","service/api/accomodations.ts","service/api/applications.ts","service/api/persons.ts","service/api/vouchers.ts","service/services.ts","components/home.tsx","components/common/wizard/wizard.tsx","components/common/wizard/page.tsx","components/test.tsx","components/layout.tsx","components/routes.tsx","app.tsx","components/theme.tsx","reportWebVitals.ts","index.tsx"],"names":["Head","document","title","this","props","Fragment","Component","MainBanner","id","children","DataEntry","event","onChange","target","targetKey","getAttribute","errors","errorsClone","onUpdate","className","bind","changeHandler","targetValue","name","HTMLElement","Error","update","value","self","fieldName","replace","fieldNameError","fieldNameHelperText","state","hasOwnProperty","setState","removeError","context","field","Radios","item","items","find","onSelect","row","RadioGroup","aria-label","map","FormControlLabel","control","Radio","label","ValidationRule","fn","AlertSeverity","ValidationSchema","rules","onValidation","rule","reduce","promise","func","then","result","Array","prototype","concat","Promise","resolve","silent","reject","promises","key","push","validateField","firstFailed","undefined","error","all","hasErrors","Object","keys","length","Required","options","condition","errorMessage","Pattern","pattern","match","PhoneNumber","EmailAddress","ConfirmEmailValidationRule","emailFieldName","firstEmailValue","ErrorSummary","KnownOptions","OptionalInfoPage","schema","values","friends","siblings","sourceInfo","onGoBack","validate","pageValidation","success","onGoNext","getValues","htmlFor","TextField","required","helperText","multiline","rows","onSourceInfoChange","Button","onClick","prev","next","NamedSelect","selectedItemId","obj","call","setTimeout","getSelectedItem","disabled","disallowEmpty","placeholder","singleItem","Select","native","hidden","DateSelect","day","getDate","year","getFullYear","month","getMonth","days","getDatesArray","months","getMonthsArray","years","getYearsArray","minYear","maxYear","a","i","toString","max","from","to","currentYear","Date","onDateSelect","parseInt","checkDateSelected","checkDays","ensureDate","daysInMonth","onDaySelect","onMonthSelect","onYearSelect","Field","iconBySeverity","severity","warning","info","AccomodationType","AlertPanel","dismiss","message","Loader","Genders","ChildInfoPage","loading","childFirstName","childLastName","childPesel","childClass","childBirthDate","childGender","noConflict","validateNotAlreadyRegistered","problem","services","persons","getChild","onGenderSelect","onBirthDateSelected","MandatoryInfoPage","healthIssues","developmentDisorders","diet","PolandId","countryOptions","communityOptions","voivodeshipsOptions","Address","country","city","zipCode","street","voivodeship","showVoivodeships","community","showCommunity","test","results","onAddresComplete","onCountrySelect","onVoivodshipSelect","onCityChange","onCommunitySelect","ParentsInfoPage","addressControl","React","createRef","parentOneFirstName","parentOneLastName","parentOnePhoneNumber","parentOneEmailAddress","parentOneEmailAddress2","parentTwoFirstName","parentTwoLastName","parentTwoPhoneNumber","parentTwoEmailAddress","parentTwoEmailAddress2","address","current","addressValidation","ref","Conditions","text","mandatory","ConsentPage","checked","filter","forEach","index","Checkbox","handleChange","polishNames","home","swedishCottage","teepee","twoweekteepee","getAccomodationTypesOptionsByBirthYear","birthYear","getAccomodationTypesByBirthYear","type","AccomodationTermSelect","terms","accomodationTerm","load","childBirthYear","accomodations","getAvailableTerms","sort","b","freeSpotsMale","freeSpotsFemale","freeSpots","getAvailablePlacesForGender","VoucherValidator","api","onVoucherFetched","getVoucherByCode","voucher","isUsed","AccomodationInfoPage","loadingTerms","voucherItem","accomodationType","alternativeTerms","status","vouchers","price","Math","round","toFixed","accomodationTypes","canSubmit","onAccomodationTypeSelect","onAccomodationTermSelect","href","rel","getStatusOptions","priceLabel","variant","color","ApplicationError","statusCode","data","retry","NotFoundError","TechnicalError","ErrorPanel","details","reprError","JSON","stringify","readFromMetadataElement","settingId","element","getElementById","_apiURL","_monitoringKey","apiURL","appInsights","ApplicationInsights","config","instrumentationKey","ServiceSettings","monitoringKey","enableAutoRouteTracking","tryTrackEvent","trackEvent","console","loadAppInsights","trackPageView","pages","1","2","3","4","5","6","Survey","page","submitting","confirmationTitle","confirmationMessage","window","scrollTo","top","behavior","goTo","scrollToTop","childInfo","parentsInfo","healthInfo","optionalInfo","accomodationInfo","consentInfo","birthDate","applications","submit","child","firstName","lastName","documentId","class","gender","parents","warsawDistrict","health","diseases","dietInfo","additionalInfo","knownThanksTo","accomodation","termId","recurringParticipant","consent","optionalConsent1","optionalConsent2","goNext","goBack","complete","BaseURL","JSON_ContentType","CustomHeaders","tryParseBodyAsJSON","response","contentType","headers","get","indexOf","json","appFetch","input","init","assign","fetch","notFoundIsFine","url","method","getOptional","post","body","ids","CDSAccomodationsApi","CDSApplicationsApi","applicationData","log","CDSPersonsApi","documentNumber","query","CDSVouchersApi","code","Services","Home","Wizard","pageNumber","back","WizardPage","Test","Layout","routes","path","exact","main","route","App","ThemeProvider","theme","createMuiTheme","palette","primary","secondary","red","A400","background","default","MuiButton","MuiTextField","MuiCheckbox","MuiRadio","CssBaseline","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render"],"mappings":"yRAMqBA,E,kLAEjBC,SAASC,MAAQC,KAAKC,MAAMF,Q,+BAI5B,OAAO,cAAC,IAAMG,SAAP,Q,GANuBC,aCAbC,E,uKAEjB,OAAO,qBAAKC,GAAG,cAAR,SAAuBL,KAAKC,MAAMK,e,GAFLH,a,2DCKnBI,E,uKACVC,GACHR,KAAKC,MAAMQ,UACbT,KAAKC,MAAMQ,SAASD,GAGtB,IAAME,EAASF,EAAME,OACfC,EAAYD,EAAOE,aAAa,OAASF,EAAOE,aAAa,QAE5DC,EAAUb,KAAKC,MAAfY,OACDC,EAAW,eAAOD,GACpBF,GAAaA,KAAaE,WACrBC,EAAYH,GACnBX,KAAKC,MAAMc,SAASD,M,+BAKtB,OACE,qBACET,GAAIL,KAAKC,MAAMI,GACfW,UAAWhB,KAAKC,MAAMe,UACtBP,SAAUT,KAAKS,SAASQ,KAAKjB,MAH/B,SAKGA,KAAKC,MAAMK,e,GAxBmBH,aCHhC,SAASe,EACdV,GAQO,IADPW,EACM,uDADiB,KAEjBT,EAASF,EAAME,OACjBU,EAAOV,EAAOU,KAClB,IAAKA,EAAM,CACT,GAAIV,aAAkBW,YAAa,CACjC,IAAMhB,EAAKK,EAAOE,aAAa,MAEpB,OAAPP,IACFe,EAAOf,GAIX,IAAKe,EACH,MAAM,IAAIE,MACR,wGAKN,IAAMC,EAAoD,GAC1DA,EAAOH,GAAP,OAAeD,QAAf,IAAeA,IAAgBT,EAAOc,MAItC,IAAMC,EAAOzB,KAIP0B,EAAYN,EAAKO,QAAQ,QAAS,IAClCC,EAAc,UAAMF,EAAN,SACdG,EAAmB,UAAMH,EAAN,cAErBD,EAAKK,MAAMC,eAAeH,KAC5BL,EAAOK,IAAkB,GAGvBH,EAAKK,MAAMC,eAAeF,KAC5BN,EAAOM,GAAuB,IAGhCJ,EAAKO,SAAST,GAWT,SAASU,EAAYC,EAAcC,GAAsB,IACvDtB,EAAUqB,EAAQJ,MAAlBjB,cACAA,EAAOsB,GACdD,EAAQF,SAAS,CAACnB,OAAO,eAAKA,K,+BCvDXuB,E,kDAInB,WAAYnC,GAAwB,IAAD,8BACjC,cAAMA,IAED6B,MAAQ,CACXN,MAAOvB,EAAMuB,OAAS,IAJS,E,qDAQ1BhB,GACPR,KAAKgC,SAAS,CACZR,MAAOhB,EAAME,OAAOc,QAGtB,IAAMa,EAAOrC,KAAKC,MAAMqC,MAAMC,MAC5B,SAACF,GAAD,OAAUA,EAAKhC,KAAOG,EAAME,OAAOc,SAEjCa,GAAMrC,KAAKC,MAAMuC,SAASH,K,+BAGR,IAAD,EACMrC,KAAKC,MAAzBmB,EADc,EACdA,KAAMkB,EADQ,EACRA,MAAOG,EADC,EACDA,IACbjB,EAASxB,KAAK8B,MAAdN,MACP,OACE,cAACkB,EAAA,EAAD,CACED,IAAKA,EACLE,aAAYvB,EACZA,KAAMA,EACNI,MAAOA,EACPf,SAAUT,KAAKS,SAASQ,KAAKjB,MAL/B,SAOGsC,EAAMM,KAAI,SAACP,GACV,OACE,cAACQ,EAAA,EAAD,CAEErB,MAAOa,EAAKhC,GACZyC,QAAS,cAACC,EAAA,EAAD,IACTC,MAAOX,EAAKjB,MAHPiB,EAAKhC,a,GArCiCF,aCZ5C8C,EAIX,WACE7B,EACA8B,GACC,yBANH9B,UAME,OALF8B,QAKE,EACAlD,KAAKoB,KAAOA,EACZpB,KAAKkD,GAAKA,GAyBP,IC9BKC,ED8BCC,EAAb,WAIE,WACEC,EACAC,GACC,yBANHD,WAME,OALFC,kBAKE,EACAtD,KAAKqD,MAAQA,EACbrD,KAAKsD,aAAeA,EATxB,0DAYgBpB,EAAYR,GACxB,IAAM2B,EAAQrD,KAAKqD,MAAM3B,GAEzB,OACE2B,EAAMT,KAAI,SAACW,GACT,OAAO,WACL,OAAOA,EAAKL,GAAGhB,EAASA,EAAQR,QA3B3B8B,QACX,SAACC,EAASC,GAAV,OACED,EAAQE,MAAK,SAACC,GAAD,OACXF,IAAOC,KAAKE,MAAMC,UAAUC,OAAO9C,KAAK2C,SAE5CI,QAAQC,QAAa,OAIzB,+BAwBW/B,EAAYgC,GAAuD,IAAD,OACzE,OAAO,IAAIF,SAAQ,SAACC,EAASE,GAC3B,IAAMC,EAA0C,GAC1CvD,EAAoC,GAFJ,WAI3BwD,GACTD,EAASE,KACP,IAAIN,SAAQ,SAACC,EAASE,GACpB,EAAKI,cAAcrC,EAASmC,GAAKV,MAC/B,SAACC,GACC,GAAIA,EAAQ,CACV,IAAMY,EAAcZ,EAAOrB,MACzB,SAACF,GAAD,YAAmBoC,IAATpC,KAAwBA,EAAKqC,SAErCF,IACF3D,EAAOwD,GAAOG,EAAYE,OAG9BT,OAEF,WACEpD,EAAOwD,GAAO,oBACdF,YAjBV,IAAK,IAAME,KAAO,EAAKhB,MAAQ,EAApBgB,GAwBXL,QAAQW,IAAIP,GAAUT,MACpB,WACE,IAAMC,EAAS,CAAC/C,SAAQ+D,YAAaC,OAAOC,KAAKjE,GAAQkE,SAE1C,IAAXb,GAAiB,EAAKZ,aAAaM,GACvCK,EAAQL,MAEV,WACE,IAAMA,EAAS,CAAC/C,SAAQ+D,YAAaC,OAAOC,KAAKjE,GAAQkE,SAC1C,IAAXb,GAAiB,EAAKZ,aAAaM,GACvCO,EAAOP,aA/DjB,KAqFaoB,EAAb,kDAIE,WAAYC,GAA4B,IAAD,8BACrC,cAAM,YAAY,SAAC/C,EAAcV,GAC/B,OAAO,IAAIwC,SAAQ,SAACC,EAASE,GACvB,EAAKe,YAAkC,IAArB,EAAKA,mBAKfT,IAAVjD,GACU,OAAVA,GACkB,kBAAVA,GAAmD,KAA7BA,EAAMG,QAAQ,MAAO,MAEnDsC,EAAQ,CACNS,MAAO,EAAKS,eATdlB,WAPRkB,kBAGuC,IAFvCD,eAEuC,EAqBrC,EAAKC,cAAsB,OAAPF,QAAO,IAAPA,OAAA,EAAAA,EAASE,eAAgB,oCAC7C,EAAKD,UAAL,OAAiBD,QAAjB,IAAiBA,OAAjB,EAAiBA,EAASC,UAtBW,EAJzC,UAAkCjC,GA8BrBmC,EAAb,kDAIE,WAAYC,EAAiBF,GAAwB,IAAD,8BAClD,cACE,WACA,SAACjD,EAAcV,GACb,OAAO,IAAIwC,SAAQ,SAACC,EAASE,GACtB3C,GAIAA,EAAM8D,MAAM,EAAKD,UACpBpB,EAAQ,CACNS,MAAO,EAAKS,eAGhBlB,KAREA,WATVkB,kBAGoD,IAFpDE,aAEoD,EAkBlD,EAAKA,QAAUA,EACf,EAAKF,aAAeA,GAAgB,uCAnBc,EAJtD,UAA6BlC,GA2BhBsC,EAAb,kDACE,aAAe,uCACP,oBAFV,UAAiCH,GAMpBI,EAAb,kDACE,aAAe,uCACP,oEAFV,UAAkCJ,GAOrBK,EAAb,kDAIE,WAAYC,GAAoB,uCAE5B,gBACA,SAACxD,EAAYV,GACX,OAAO,IAAIwC,SAAQ,SAACC,EAASE,GAC3B,IAAMwB,EAAkBzD,EAAQwD,GAQ9BzB,EAPGzC,GAAUmE,EAMVnE,IAAkBmE,EACb,GAEA,CAACjB,MAAO,uCARR,UAXpB,UAGUzB,GElMW2C,E,uKAEjB,OACE,qBAAK5E,UAAU,wBAAf,mD,GAHoCb,aCmBpC0F,EAA4B,CAChC,CACExF,GAAI,oBACJe,KAAM,gCAER,CACEf,GAAI,WACJe,KAAM,gBAER,CACEf,GAAI,kBACJe,KAAM,6BAER,CACEf,GAAI,WACJe,KAAM,eAER,CACEf,GAAI,gBACJe,KAAM,gBAER,CACEf,GAAI,iBACJe,KAAM,wCAER,CACEf,GAAI,eACJe,KAAM,qBAMW0E,E,kDAMnB,WAAY7F,GAA+B,IAAD,uBACxC,cAAMA,IAHR8F,YAE0C,MAEjCC,EAAU/F,EAAV+F,OAFiC,OAIxC,EAAKlE,MAAL,aACEjB,OAAQ,GACRoF,QAAS,GACTC,SAAU,GACVC,WAAY,IACTH,GAGL,EAAKD,OAAS,IAAI3C,EAChB,CACE6C,QAAS,GACTC,SAAU,GACVC,WAAY,KAEd,SAACvC,GACC,EAAK5B,SAAS,CAACnB,OAAQ+C,EAAO/C,YAnBM,E,mDAyBxCb,KAAKC,MAAMmG,SAASpG,KAAK8B,S,iKAII9B,KAAK+F,OAAOM,SAASrG,KAAK8B,O,cAAjDwE,E,0BACEA,EAAe1B,W,wIAIvB,OAAO5E,KAAK8B,Q,6BAGA,IAAD,OACX9B,KAAKqG,WAAW1C,MAAK,SAAC4C,GAChBA,GACF,EAAKtG,MAAMuG,SAAS,EAAKC,kB,+BAKtB5F,GACPb,KAAKgC,SAAS,CAACnB,a,yCAGEW,GACjBxB,KAAKgC,SAAS,CACZmE,WAAY3E,EAAMnB,O,+BAIE,IAAD,SAC2BL,KAAK8B,MAA9CjB,EADc,EACdA,OAAQqF,EADM,EACNA,SAAUD,EADJ,EACIA,QAASE,EADb,EACaA,WAClC,OACE,eAAC,EAAD,CAAWtF,OAAQA,EAAQE,SAAUf,KAAKe,SAASE,KAAKjB,MAAxD,UACE,gCACE,sDACA,+BACE,6BACE,uBAAO0G,QAAQ,WAAf,qKAKF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,WACHqE,QAAS7D,EAAOqF,SAChBW,WAAYhG,EAAOqF,SACnBzF,SAAUS,EAAcD,KAAKjB,MAC7B8G,WAAS,EACTC,KAAM,EACNvF,MAAO0E,MAGX,6BACE,uBAAOQ,QAAQ,UAAf,8MAMF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,UACHqE,QAAS7D,EAAOoF,QAChBY,WAAYhG,EAAOoF,QACnBxF,SAAUS,EAAcD,KAAKjB,MAC7B8G,WAAS,EACTC,KAAM,EACNvF,MAAOyE,SAIb,0EACA,cAAC,EAAD,CACE3D,MAAOuD,EACPzE,KAAK,aACLoB,SAAUxC,KAAKgH,mBAAmB/F,KAAKjB,MACvCwB,MAAO2E,OAGVtB,OAAOC,KAAKjE,GAAQkE,OAAS,GAAK,cAAC,EAAD,IACnC,sBAAK/D,UAAU,6BAAf,UACE,cAACiG,EAAA,EAAD,CAAQC,QAAS,kBAAM,EAAKC,QAA5B,oBACA,cAACF,EAAA,EAAD,CAAQC,QAAS,kBAAM,EAAKE,QAA5B,6B,GArHoCjH,a,SC5BzBkH,E,kDAInB,WAAYpH,GAAwB,IAAD,8BACjC,cAAMA,IAED6B,MAAQ,CACXwF,eAAgBrH,EAAMuB,OAAS,IAJA,E,8DAQN,IAAD,OACpBa,EAAOrC,KAAKC,MAAMqC,MAAMC,MAC5B,SAACgF,GAAD,OAASA,EAAIlH,KAAO,EAAKyB,MAAMwF,kBAGjC,OAAKjF,GAEI,O,yCAMQpC,GACbA,EAAMuB,QAAUxB,KAAKC,MAAMuB,OAC7BxB,KAAKgC,SAAS,CAACsF,eAAgBtH,KAAKC,MAAMuB,U,+BAK5ChB,GAGO,IAAD,OAENU,EAAcsG,KAAKxH,KAAMQ,GAEzBiH,YAAW,WACT,EAAKxH,MAAMuC,SAAS,EAAKkF,qBACxB,K,+BAGmB,IAAD,EACiC1H,KAAKC,MAApD0H,EADc,EACdA,SAAUrF,EADI,EACJA,MAAOsF,EADH,EACGA,cAAeC,EADlB,EACkBA,YAChCP,EAAkBtH,KAAK8B,MAAvBwF,eAEP,GAAqB,IAAjBhF,EAAMyC,OACR,OAAO,oCAIT,GAAqB,IAAjBzC,EAAMyC,OAAc,CACtB,IAAM+C,EAAaxF,EAAM,GACzB,OAAO,4BAAIwF,EAAW1G,OAGxB,OACE,eAAC2G,EAAA,EAAD,CACEC,QAAM,EACNxG,MAAO8F,EACPlG,KAAK,iBACLX,SAAUT,KAAKS,SAASQ,KAAKjB,MAC7B2H,SAAUA,EALZ,eAOmBlD,IAAhBoD,GACC,wBAAQrG,MAAM,GAAGmG,UAAQ,EAACM,QAAM,EAAhC,SACGJ,KAGHD,GAAiB,wBAAepG,MAAM,IAAT,IAC9Bc,EAAMM,KAAI,SAACP,GAAD,OACT,wBAAsBb,MAAOa,EAAKhC,GAAlC,SACGgC,EAAKjB,MADKiB,EAAKhC,c,GAzEkCF,aCNzC+H,E,kDAInB,WAAYjI,GAAyB,IAAD,sBAClC,cAAMA,GAD4B,IAE3BuB,EAASvB,EAATuB,MAF2B,OAIlC,EAAKM,MAAQ,CACXqG,IAAG,OAAE3G,QAAF,IAAEA,OAAF,EAAEA,EAAO4G,UACZC,KAAI,OAAE7G,QAAF,IAAEA,OAAF,EAAEA,EAAO8G,cACbC,WAAiB9D,IAAVjD,EAAsBA,EAAMgH,WAAa,OAAI/D,EACpDgE,KAAM,EAAKC,gBACXC,OAAQ,EAAKC,iBACbC,MAAO,EAAKC,cAAc7I,EAAM8I,QAAS9I,EAAM+I,UAVf,E,6DAoBlC,IAHA,IAEMC,EAAI,GACDC,EAHI,EAGMA,GAFZ,GAEqBA,IAC1BD,EAAE3E,KAAK,CACLjE,GAAI6I,EAAEC,WACN/H,KAAM8H,EAAEC,aAGZ,OAAOF,I,sCAOP,IAJ4C,IAAhCG,EAA+B,uDAAjB,GACpBC,EAAO,EACXC,EAAKF,EACDH,EAAI,GACDC,EAAIG,EAAMH,GAAKI,EAAIJ,IAC1BD,EAAE3E,KAAK,CACLjE,GAAI6I,EAAEC,WACN/H,KAAM8H,EAAEC,aAGZ,OAAOF,I,oCAGKF,EAAkBC,GAC9B,IACMO,GADM,IAAIC,MACQlB,mBAER7D,IAAZsE,IACFA,EAAUQ,EAAc,UAEV9E,IAAZuE,IACFA,EAAUO,EAAc,IAI1B,IADA,IAAMN,EAAI,GACDC,EAAIF,EAASE,GAAKH,EAASG,IAClCD,EAAE3E,KAAK,CACLjE,GAAI6I,EAAEC,WACN/H,KAAM8H,EAAEC,aAGZ,OAAOF,I,0CAGkB,IAAD,OACxBxB,YAAW,WAAO,IAAD,EACY,EAAK3F,MAAzBqG,EADQ,EACRA,IAAKI,EADG,EACHA,MAAOF,EADJ,EACIA,UAEP5D,IAAR0D,QAA+B1D,IAAV8D,QAA+B9D,GAAR4D,GAI5C,EAAKpI,MAAMwJ,cAAc,EAAKxJ,MAAMwJ,aAAatB,EAAKI,EAAOF,KAChE,K,kCAGO7G,GACVxB,KAAKgC,SAAS,CAACmG,IAAe,OAAV3G,OAAiBiD,EAAYiF,SAASlI,EAAMnB,MAChEL,KAAK2J,sB,oCAGOnI,GACZxB,KAAKgC,SAAS,CAACuG,MAAiB,OAAV/G,OAAiBiD,EAAYiF,SAASlI,EAAMnB,MAClEL,KAAK4J,c,mCAGMpI,GACXxB,KAAKgC,SAAS,CAACqG,KAAgB,OAAV7G,OAAiBiD,EAAYiF,SAASlI,EAAMnB,MACjEL,KAAK4J,c,kCAGY,IAAD,OAEhBnC,YAAW,WACT,EAAKoC,aACL,EAAKF,sBACJ,K,kCAGOtB,EAAcE,GACxB,OAAO,IAAIiB,KAAKnB,EAAME,EAAO,GAAGH,Y,mCAGd,IAAD,EACUpI,KAAK8B,MAAzBqG,EADU,EACVA,IAAKI,EADK,EACLA,MAAOF,EADF,EACEA,KACnB,QAAc5D,IAAV8D,EAAJ,CAIA,IAAMuB,EAAc9J,KAAK8J,YACvBzB,IAAQ,IAAImB,MAAOlB,cACnBC,QAGU9D,IAAR0D,GAAqBA,EAAM2B,EAC7B9J,KAAKgC,SAAS,CACZmG,IAAK2B,EACLrB,KAAMzI,KAAK0I,cAAcoB,KAG3B9J,KAAKgC,SAAS,CACZyG,KAAMzI,KAAK0I,cAAcoB,Q,+BAKP,IAAD,EAC2B9J,KAAK8B,MAA9CqG,EADc,EACdA,IAAKI,EADS,EACTA,MAAOF,EADE,EACFA,KAAMI,EADJ,EACIA,KAAME,EADV,EACUA,OAAQE,EADlB,EACkBA,MACvC,OACE,sBAAK7H,UAAU,cAAf,UACE,cAAC,EAAD,CACE6G,YAAY,KACZvF,MAAOmG,EACPjH,MAAO2G,EAAMA,EAAIgB,gBAAa1E,EAC9BjC,SAAUxC,KAAK+J,YAAY9I,KAAKjB,MAChC4H,eAAa,IAEf,cAAC,EAAD,CACEC,YAAY,KACZvF,MAAOqG,EACPnG,SAAUxC,KAAKgK,cAAc/I,KAAKjB,MAClC4H,eAAa,EACbpG,MAAO+G,EAAQA,EAAMY,gBAAa1E,IAEpC,cAAC,EAAD,CACEoD,YAAY,OACZvF,MAAOuG,EACPrG,SAAUxC,KAAKiK,aAAahJ,KAAKjB,MACjC4H,eAAa,EACbpG,MAAO6G,EAAOA,EAAKc,gBAAa1E,W,GAxJFtE,aCbnB+J,E,uKACK,IAAD,EACKlK,KAAKC,MAAxByE,EADc,EACdA,MAAOpE,EADO,EACPA,SACd,OACE,sBAAKU,UAAW0D,EAAQ,iCAAmC,GAA3D,UACGpE,EACAoE,GAAS,mBAAG1D,UAAU,gBAAb,SAA8B0D,W,GANbvE,a,2FLgB5B,SAASgK,GAAeC,GAC7B,OAAQA,GACN,KAAKjH,EAAcuB,MACjB,OAAO,cAAC,IAAD,IAET,KAAKvB,EAAckH,QACjB,OAAO,cAAC,KAAD,IAET,KAAKlH,EAAcmH,KACjB,OAAO,cAAC,KAAD,IAET,KAAKnH,EAAcoD,QACjB,OAAO,cAAC,IAAD,M,SA3BDpD,K,cAAAA,E,kBAAAA,E,YAAAA,E,mBAAAA,M,SMHAoH,GNkCSC,G,wKAEbxK,KAAKC,MAAMwK,SACbzK,KAAKC,MAAMwK,Y,+BAIS,IAAD,SACuBzK,KAAKC,MAA1CF,EADc,EACdA,MAAO2K,EADO,EACPA,QAASN,EADF,EACEA,SAAUK,EADZ,EACYA,QAEjC,OACE,qBAAKzJ,UAAWoJ,EAAhB,SACE,sBAAKpJ,UAAW,eAAiBoJ,EAAjC,UACE,qBAAKpJ,UAAU,eAAf,SAA+BmJ,GAAeC,KAC9C,6BAAKrK,SACQ0E,IAAZgG,GACC,cAACxD,EAAA,EAAD,CACElH,MAAM,UACNmH,QAAS,kBAAM,EAAKuD,WACpBzJ,UAAU,cAHZ,SAKE,cAAC,IAAD,MAGH0J,GAAW,4BAAIA,a,GAxBcvK,aOhCnBwK,G,uKAEjB,IAAM1K,EAAQD,KAAKC,MACbe,EAAYf,EAAMe,UACxB,OACE,qBACEX,GAAIJ,EAAMI,GACVW,UAAW,kBAAoBA,EAAY,IAAMA,EAAY,IAF/D,SAIE,qBAAKA,UAAU,yB,GATab,aCgC9ByK,GAAoB,CACxB,CACEvK,GAAI,IACJe,KAAM,iBAER,CACEf,GAAI,IACJe,KAAM,gBAIWyJ,G,kDAMnB,WAAY5K,GAA4B,IAAD,8BACrC,cAAMA,IAHR8F,YAEuC,EAGrC,EAAKjE,MAAL,aACEjB,OAAQ,GACRiK,SAAS,EACTC,eAAgB,GAChBC,cAAe,GACfC,WAAY,GACZC,WAAY,GACZC,eAAgB,KAChBC,YAAa,IACVnL,EAAM+F,QAGX,EAAKD,OAAS,IAAI3C,EAChB,CACE2H,eAAgB,CAAC,IAAI/F,GACrBgG,cAAe,CAAC,IAAIhG,GACpBoG,YAAa,CAAC,IAAIpG,GAClBiG,WAAY,CAAC,IAAIjG,GACjBkG,WAAY,CAAC,IAAIlG,EAAY,IAAII,EAAQ,UACzC+F,eAAgB,CACd,IAAInG,EAAS,CAACG,aAAc,mCAGhC,SAACvB,GACC,EAAK5B,SAAS,CAACnB,OAAQ+C,EAAO/C,YA3BG,E,gEAgCnBsH,EAAaI,EAAeF,GAC9CrI,KAAKgC,SAAS,CACZmJ,eAAgB,IAAI3B,KAAKnB,EAAME,EAAQ,EAAGJ,KAE5ClG,EAAYjC,KAAM,oB,qCAGLoL,GACbpL,KAAKgC,SAAS,CACZoJ,YAAaA,EAAY/K,O,iKAKEL,KAAK+F,OAAOM,SAASrG,KAAK8B,O,kBAEpC8C,U,0CACV,G,cAGT5E,KAAKgC,SAAS,CACZ8I,SAAS,IAGPO,GAAsB,E,mBAGLrL,KAAKsL,+B,QAAxBD,E,gEAEArL,KAAKgC,SAAS,CACZ8I,SAAS,EACTS,QAAS,CACPxL,MAAO,4BACP2K,QAAQ,sKAERN,SAAUjH,EAAcuB,S,mBAIrB,G,WAGJ2G,E,wBAEHrL,KAAKgC,SAAS,CACZ8I,SAAS,EACTS,QAAS,CACPxL,MAAO,0DACP2K,QAAQ,kKAERN,SAAUjH,EAAckH,W,mBAGrB,G,QAEPrK,KAAKgC,SAAS,CACZ8I,SAAS,EACTS,aAAS9G,I,kCAIN,G,kSAIA+G,EAAYxL,KAAKC,MAAjBuL,S,EAC6CxL,KAAK8B,MAAlDiJ,E,EAAAA,eAAgBC,E,EAAAA,cAAeC,E,EAAAA,WAC/BQ,EAAWD,EAAXC,aAGUhH,IAAfwG,QACmBxG,IAAnBsG,QACkBtG,IAAlBuG,E,sBAEM,IAAI1J,MAAM,mB,uBAGEmK,EAAQC,SAC1BT,EACAF,EACAC,G,UAGY,O,kDACL,G,kCAGF,G,yIAIP,OAAOhL,KAAK8B,Q,6BAGA,IAAD,OACX9B,KAAKqG,WAAW1C,MAAK,SAAC4C,GAChBA,GACF,EAAKtG,MAAMuG,SAAS,EAAKC,kB,+BAKtB5F,GACPb,KAAKgC,SAAS,CAACnB,a,+BAGO,IAAD,SAWjBb,KAAK8B,MATPjB,EAFmB,EAEnBA,OACAuK,EAHmB,EAGnBA,YACAL,EAJmB,EAInBA,eACAC,EALmB,EAKnBA,cACAC,EANmB,EAMnBA,WACAE,EAPmB,EAOnBA,eACAD,EARmB,EAQnBA,WACAK,EATmB,EASnBA,QACAT,EAVmB,EAUnBA,QAEF,OACE,eAAC,EAAD,CAAWjK,OAAQA,EAAQE,SAAUf,KAAKe,SAASE,KAAKjB,MAAxD,UACE,8CACA,+BACE,oBAAIgB,UAAU,cAAd,4BACA,6BACE,cAAC,EAAD,CAAO0D,MAAO7D,EAAOuK,YAArB,SACE,cAAC,EAAD,CACE3I,KAAG,EACHH,MAAOsI,GACPxJ,KAAK,cACLoB,SAAUxC,KAAK2L,eAAe1K,KAAKjB,MACnCwB,MAAO4J,QAIb,oBAAIpK,UAAU,cAAd,SACE,uBAAO0F,QAAQ,iBAAf,yBAEF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRlC,QAAS7D,EAAOkK,eAChBlE,WAAYhG,EAAOkK,eACnB1K,GAAG,iBACHmB,MAAOuJ,EACPtK,SAAUS,EAAcD,KAAKjB,UAGjC,oBAAIgB,UAAU,cAAd,SACE,uBAAO0F,QAAQ,gBAAf,wBAEF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,gBACHqE,QAAS7D,EAAOmK,cAChBnE,WAAYhG,EAAOmK,cACnBvK,SAAUS,EAAcD,KAAKjB,MAC7BwB,MAAOwJ,MAGX,oBAAIhK,UAAU,cAAd,SACE,uBAAO0F,QAAQ,iBAAf,8BAEF,6BACE,cAAC,EAAD,CAAOhC,MAAO7D,EAAOsK,eAArB,SACE,cAAC,EAAD,CACE3J,MAAO2J,QAAkB1G,EACzBsE,QAAS,KACTC,QAAS,KACTS,aAAczJ,KAAK4L,oBAAoB3K,KAAKjB,YAIlD,oBAAIgB,UAAU,cAAd,SACE,uBAAO0F,QAAQ,aAAf,qBAEF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,aACHqE,QAAS7D,EAAOoK,WAChBpE,WAAYhG,EAAOoK,WACnBxK,SAAUS,EAAcD,KAAKjB,MAC7BwB,MAAOyJ,MAGX,oBAAIjK,UAAU,cAAd,SACE,uBAAO0F,QAAQ,aAAf,qBAEF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,aACHqE,QAAS7D,EAAOqK,WAChBrE,WAAYhG,EAAOqK,WACnBzK,SAAUS,EAAcD,KAAKjB,MAC7BwB,MAAO0J,SAIZJ,GAAW,cAAC,GAAD,CAAQ9J,UAAU,YAC7BuK,GAAW,cAAC,GAAD,eAAWA,IACtB1G,OAAOC,KAAKjE,GAAQkE,OAAS,GAAK,cAAC,EAAD,IACnC,qBAAK/D,UAAU,qBAAf,SACE,cAACiG,EAAA,EAAD,CAAQC,QAAS,kBAAM,EAAKE,QAA5B,4B,GAlPiCjH,aCzBtB0L,G,kDAMnB,WAAY5L,GAA6B,IAAD,8BACtC,cAAMA,IAHR8F,YAEwC,EAGtC,EAAKjE,MAAL,aAAcjB,OAAQ,IAAOZ,EAAM+F,QAEnC,EAAKD,OAAS,IAAI3C,EAChB,CACE0I,aAAc,CAAC,IAAI9G,GACnB+G,qBAAsB,CAAC,IAAI/G,KAE7B,SAACpB,GACC,EAAK5B,SAAS,CAACnB,OAAQ+C,EAAO/C,YAXI,E,mDAiBtCb,KAAKC,MAAMmG,SAASpG,KAAK8B,S,iKAII9B,KAAK+F,OAAOM,SAASrG,KAAK8B,O,cAAjDwE,E,0BACEA,EAAe1B,W,wIAIvB,OAAO5E,KAAK8B,Q,6BAGA,IAAD,OACX9B,KAAKqG,WAAW1C,MAAK,SAAC4C,GAChBA,GACF,EAAKtG,MAAMuG,SAAS,EAAKC,kB,+BAKtB5F,GACPb,KAAKgC,SAAS,CAACnB,a,+BAGO,IAAD,SACsCb,KAAK8B,MAAzDgK,EADc,EACdA,aAAoBC,GADN,EACAC,KADA,EACMD,sBAAsBlL,EAD5B,EAC4BA,OACjD,OACE,eAAC,EAAD,CAAWA,OAAQA,EAAQE,SAAUf,KAAKe,SAASE,KAAKjB,MAAxD,UACE,gCACE,sDACA,+BACE,oBAAIgB,UAAU,cAAd,SACE,uBAAO0F,QAAQ,eAAf,mMAMF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,eACHqE,QAAS7D,EAAOiL,aAChBjF,WAAYhG,EAAOiL,aACnBrL,SAAUS,EAAcD,KAAKjB,MAC7B8G,WAAS,EACTC,KAAM,EACNvF,MAAOsK,MAGX,oBAAI9K,UAAU,cAAd,SACE,uBAAO0F,QAAQ,uBAAf,0LAMF,6BACE,cAACC,EAAA,EAAD,CACEC,UAAQ,EACRvG,GAAG,uBACHqE,QAAS7D,EAAOkL,qBAChBlF,WAAYhG,EAAOkL,qBACnBtL,SAAUS,EAAcD,KAAKjB,MAC7B8G,WAAS,EACTC,KAAM,EACNvF,MAAOuK,YAKdlH,OAAOC,KAAKjE,GAAQkE,OAAS,GAAK,cAAC,EAAD,IACnC,sBAAK/D,UAAU,6BAAf,UACE,cAACiG,EAAA,EAAD,CAAQC,QAAS,kBAAM,EAAKC,QAA5B,oBACA,cAACF,EAAA,EAAD,CAAQC,QAAS,kBAAM,EAAKE,QAA5B,6B,GAjGqCjH,a,SC+lClC8L,GAAmB,uCCllC1BC,GDnCgC,CACpC,CACE7L,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,qBAER,CACEf,GAAI,uCACJe,KAAM,oBAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,oBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,sBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,kCAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,6BAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,8BAER,CACEf,GAAI,uCACJe,KAAM,4CAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,kDAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,iCAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,uDAER,CACEf,GAAI,uCACJe,KAAM,sDAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,oBAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,uBAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,yBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,0BAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,4BAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,kBAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,qBAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,uBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,0CAER,CACEf,GAAI,uCACJe,KAAM,qCAER,CACEf,GAAI,uCACJe,KAAM,sCAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,oBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,eAER,CACEf,GAAI,uCACJe,KAAM,uBAER,CACEf,GAAI,uCACJe,KAAM,uBAER,CACEf,GAAI,uCACJe,KAAM,6BAER,CACEf,GAAI,uCACJe,KAAM,2BAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,2BAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,qBAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,yBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,wBAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,oBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,kBAER,CACEf,GAAI,uCACJe,KAAM,YAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,QAER,CACEf,GAAI,uCACJe,KAAM,qBAER,CACEf,GAAI,uCACJe,KAAM,SAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,gBAER,CACEf,GAAI,uCACJe,KAAM,kBAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,mBAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,cAER,CACEf,GAAI,uCACJe,KAAM,mBAER,CACEf,GAAI,uCACJe,KAAM,WAER,CACEf,GAAI,uCACJe,KAAM,eAER,CACEf,GAAI,uCACJe,KAAM,2CAER,CACEf,GAAI,uCACJe,KAAM,gCAER,CACEf,GAAI,uCACJe,KAAM,iBAER,CACEf,GAAI,uCACJe,KAAM,kFAER,CACEf,GAAI,uCACJe,KAAM,aAER,CACEf,GAAI,uCACJe,KAAM,eAER,CACEf,GAAI,uCACJe,KAAM,mBAER,CACEf,GAAI,uCACJe,KAAM,2BAER,CACEf,GAAI,uCACJe,KAAM,2CAER,CACEf,GAAI,uCACJe,KAAM,mBAER,CACEf,GAAI,uCACJe,KAAM,kBAER,CACEf,GAAI,uCACJe,KAAM,kBAER,CACEf,GAAI,uCACJe,KAAM,eAER,CACEf,GAAI,uCACJe,KAAM,UAER,CACEf,GAAI,uCACJe,KAAM,8DAER,CACEf,GAAI,uCACJe,KAAM,gCAER,CACEf,GAAI,uCACJe,KAAM,aC97BJ+K,GDqgCsC,CAC1C,CACE9L,GAAI,YACJe,KAAM,UAER,CACEf,GAAI,YACJe,KAAM,4BAER,CACEf,GAAI,YACJe,KAAM,WAER,CACEf,GAAI,YACJe,KAAM,WAER,CACEf,GAAI,YACJe,KAAM,cAER,CACEf,GAAI,YACJe,KAAM,UAER,CACEf,GAAI,YACJe,KAAM,uBAER,CACEf,GAAI,YACJe,KAAM,wBAER,CACEf,GAAI,YACJe,KAAM,gBAER,CACEf,GAAI,YACJe,KAAM,4BAER,CACEf,GAAI,YACJe,KAAM,eAER,CACEf,GAAI,YACJe,KAAM,SAER,CACEf,GAAI,YACJe,KAAM,cAER,CACEf,GAAI,YACJe,KAAM,SAER,CACEf,GAAI,YACJe,KAAM,cAER,CACEf,GAAI,YACJe,KAAM,eAER,CACEf,GAAI,YACJe,KAAM,QAER,CACEf,GAAI,YACJe,KAAM,kBC1kCJgL,GDg8BkC,CACtC,CACE/L,GAAI,uCACJe,K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","file":"static/js/main.c59c7d24.chunk.js","sourcesContent":["import React, {Component, ReactElement} from \"react\";\n\nexport interface HeadProps {\n title: string;\n}\n\nexport default class Head extends Component {\n componentDidMount(): void {\n document.title = this.props.title;\n }\n\n render(): ReactElement {\n return ;\n }\n}\n","import React, {Component, ReactElement} from \"react\";\n\ninterface BannerProps {\n children?: React.ReactNode;\n}\n\nexport default class MainBanner extends Component {\n render(): ReactElement {\n return
{this.props.children}
;\n }\n}\n","import React, {Component, ReactElement} from \"react\";\n\nexport interface DataEntryProps {\n id?: string;\n className?: string;\n children: React.ReactNode;\n errors: {[key: string]: string | undefined};\n onUpdate: (errors: {[key: string]: string | undefined}) => void;\n onChange?: (event: React.FormEvent) => void;\n}\n\nexport default class DataEntry extends Component {\n onChange(event: React.FormEvent): void {\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n\n const target = event.target as HTMLElement;\n const targetKey = target.getAttribute(\"id\") || target.getAttribute(\"name\");\n\n const {errors} = this.props;\n const errorsClone = {...errors};\n if (targetKey && targetKey in errors) {\n delete errorsClone[targetKey];\n this.props.onUpdate(errorsClone);\n }\n }\n\n render(): ReactElement {\n return (\n \n {this.props.children}\n \n );\n }\n}\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-prototype-builtins */\nimport {ChangeEvent} from \"react\";\n\n/**\n * Generic input field change handler, that updates a value in the state\n * by input field name attribute.\n */\nexport function changeHandler(\n event:\n | ChangeEvent<\n | HTMLInputElement\n | HTMLTextAreaElement\n | {name?: string; value: unknown}\n >\n | {target: {name?: string; value: unknown}},\n targetValue: unknown = null\n): void {\n const target = event.target;\n let name = target.name;\n if (!name) {\n if (target instanceof HTMLElement) {\n const id = target.getAttribute(\"id\");\n\n if (id !== null) {\n name = id;\n }\n }\n\n if (!name) {\n throw new Error(\n \"Missing name attribute in target input field. \" +\n \"Add a name attribute matching a property in the state.\"\n );\n }\n }\n const update: {[key: string]: string | false | unknown} = {};\n update[name] = targetValue ?? (target.value as string);\n\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this;\n\n // if the state contains properties like \"Error\",\n // update automatically to remove error while the user is typing\n const fieldName = name.replace(/^mod_/, \"\");\n const fieldNameError = `${fieldName}Error`;\n const fieldNameHelperText = `${fieldName}HelperText`;\n\n if (self.state.hasOwnProperty(fieldNameError)) {\n update[fieldNameError] = false;\n }\n\n if (self.state.hasOwnProperty(fieldNameHelperText)) {\n update[fieldNameHelperText] = \"\";\n }\n\n self.setState(update);\n}\n\nexport interface FieldValidation {\n error?: string;\n}\n\nexport function getValidationClassName(valid: boolean): string {\n return valid ? \"ui-valid\" : \"ui-invalid\";\n}\n\nexport function removeError(context: any, field: string): void {\n const {errors} = context.state;\n delete errors[field];\n context.setState({errors: {...errors}});\n}\n","import {FormControlLabel, Radio, RadioGroup} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport {NamedItem} from \"./abc\";\n\nexport interface RadiosProps {\n name: string;\n items: T[];\n onSelect: (item: T) => void;\n row?: boolean;\n value?: string;\n}\n\nexport interface RadiosState {\n value: string;\n}\n\nexport default class Radios extends Component<\n RadiosProps,\n RadiosState\n> {\n constructor(props: RadiosProps) {\n super(props);\n\n this.state = {\n value: props.value || \"\",\n };\n }\n\n onChange(event: React.ChangeEvent): void {\n this.setState({\n value: event.target.value,\n });\n\n const item = this.props.items.find(\n (item) => item.id === event.target.value\n );\n if (item) this.props.onSelect(item);\n }\n\n render(): ReactElement {\n const {name, items, row} = this.props;\n const {value} = this.state;\n return (\n \n {items.map((item) => {\n return (\n }\n label={item.name}\n />\n );\n })}\n \n );\n }\n}\n","export interface ValidationResult {\n error?: string;\n}\n\nexport class ValidationRule {\n name: string;\n fn: (context: T, value: VT) => Promise;\n\n constructor(\n name: string,\n fn: (context: T, value: VT) => Promise\n ) {\n this.name = name;\n this.fn = fn;\n }\n}\n\nexport interface ValidationContext {\n errors: {[key: string]: string | undefined};\n}\n\nexport interface SchemaValidationResult {\n errors: {[K in keyof T]?: string};\n\n hasErrors: boolean;\n}\n\n// Executes a series of promises sequentially, stopping at the first that fails\nfunction serialPromise(funcs: Array<() => Promise>): Promise {\n return funcs.reduce(\n (promise, func) =>\n promise.then((result) =>\n func().then(Array.prototype.concat.bind(result))\n ),\n Promise.resolve([])\n );\n}\n\nexport class ValidationSchema {\n rules: {[K in keyof T]: ValidationRule[]};\n onValidation: (result: SchemaValidationResult) => void;\n\n constructor(\n rules: {[K in keyof T]: ValidationRule[]},\n onValidation: (result: SchemaValidationResult) => void\n ) {\n this.rules = rules;\n this.onValidation = onValidation;\n }\n\n validateField(context: T, fieldName: keyof T): Promise {\n const rules = this.rules[fieldName];\n\n return serialPromise(\n rules.map((rule) => {\n return () => {\n return rule.fn(context, context[fieldName]);\n };\n })\n );\n }\n\n validate(context: T, silent?: boolean): Promise> {\n return new Promise((resolve, reject) => {\n const promises: Promise[] = [];\n const errors: {[K in keyof T]?: string} = {};\n\n for (const key in this.rules) {\n promises.push(\n new Promise((resolve, reject) => {\n this.validateField(context, key).then(\n (result?: ValidationResult[]) => {\n if (result) {\n const firstFailed = result.find(\n (item) => item !== undefined && !!item.error\n );\n if (firstFailed) {\n errors[key] = firstFailed.error;\n }\n }\n resolve();\n },\n () => {\n errors[key] = \"Validation failed\";\n reject();\n }\n );\n })\n );\n }\n\n Promise.all(promises).then(\n () => {\n const result = {errors, hasErrors: !!Object.keys(errors).length};\n\n if (silent !== true) this.onValidation(result);\n resolve(result);\n },\n () => {\n const result = {errors, hasErrors: !!Object.keys(errors).length};\n if (silent !== true) this.onValidation(result);\n reject(result);\n }\n );\n });\n }\n}\n\ninterface RequiredOptions {\n errorMessage?: string;\n condition?: () => boolean;\n}\n\nexport class NoValidation extends ValidationRule {\n constructor() {\n super(\"none\", (context: any, value: any): Promise => {\n return new Promise((resolve, reject) => {\n resolve();\n });\n });\n }\n}\n\nexport class Required extends ValidationRule {\n errorMessage: string;\n condition?: () => boolean;\n\n constructor(options?: RequiredOptions) {\n super(\"required\", (context: any, value: VT): Promise => {\n return new Promise((resolve, reject) => {\n if (this.condition && this.condition() === false) {\n resolve();\n return;\n }\n if (\n value === undefined ||\n value === null ||\n (typeof value === \"string\" && value.replace(/\\s/g, \"\") === \"\")\n ) {\n resolve({\n error: this.errorMessage,\n });\n }\n\n resolve();\n });\n });\n // TODO: support localization\n this.errorMessage = options?.errorMessage || \"Pole nie może być puste\";\n this.condition = options?.condition;\n }\n}\n\nexport class Pattern extends ValidationRule {\n errorMessage: string;\n pattern: RegExp;\n\n constructor(pattern: RegExp, errorMessage?: string) {\n super(\n \"pattern\",\n (context: any, value: string): Promise => {\n return new Promise((resolve, reject) => {\n if (!value) {\n resolve();\n return;\n }\n if (!value.match(this.pattern)) {\n resolve({\n error: this.errorMessage,\n });\n }\n resolve();\n });\n }\n );\n this.pattern = pattern;\n this.errorMessage = errorMessage || \"Nieprawidłowa wartość\";\n }\n}\n\nexport class PhoneNumber extends Pattern {\n constructor() {\n super(/^\\+?[0-9\\s]{3,}$/);\n }\n}\n\nexport class EmailAddress extends Pattern {\n constructor() {\n super(/^([a-zA-Z0-9_\\-.+]+)@([a-zA-Z0-9_\\-.+]+)\\.([a-zA-Z]{2,5}){1,25}$/);\n }\n}\n\n// To validate that two email fields are the same\nexport class ConfirmEmailValidationRule<\n T,\n K extends keyof T\n> extends ValidationRule {\n constructor(emailFieldName: K) {\n super(\n \"confirmEmail\",\n (context: T, value: string): Promise => {\n return new Promise((resolve, reject) => {\n const firstEmailValue = context[emailFieldName];\n if (!value && !firstEmailValue) {\n resolve({});\n return;\n }\n // 'as any' is used here because TypeScript doesn't understand that\n // the code is valid and working as expected\n if ((value as any) === firstEmailValue) {\n resolve({});\n } else {\n resolve({error: \"Adresy email nie są takie same\"});\n }\n });\n }\n );\n }\n}\n","import CheckCircleOutlineOutlinedIcon from \"@material-ui/icons/CheckCircleOutlineOutlined\";\nimport ErrorOutline from \"@material-ui/icons/ErrorOutline\";\nimport HighlightOff from \"@material-ui/icons/HighlightOff\";\nimport InfoOutlinedIcon from \"@material-ui/icons/InfoOutlined\";\nimport React, {Component, ReactElement} from \"react\";\nimport ReportProblemOutlinedIcon from \"@material-ui/icons/ReportProblemOutlined\";\nimport {Button} from \"@material-ui/core\";\n\nexport enum AlertSeverity {\n error = \"error\",\n warning = \"warning\",\n info = \"info\",\n success = \"success\",\n}\n\nexport interface AlertProps {\n title: string;\n message: string;\n severity: AlertSeverity;\n retry?: () => void;\n dismiss?: () => void;\n}\n\nexport function iconBySeverity(severity: AlertSeverity): ReactElement {\n switch (severity) {\n case AlertSeverity.error:\n return ;\n\n case AlertSeverity.warning:\n return ;\n\n case AlertSeverity.info:\n return ;\n\n case AlertSeverity.success:\n return ;\n }\n}\n\nexport default class AlertPanel extends Component {\n dismiss(): void {\n if (this.props.dismiss) {\n this.props.dismiss();\n }\n }\n\n render(): ReactElement {\n const {title, message, severity, dismiss} = this.props;\n\n return (\n
\n
\n
{iconBySeverity(severity)}
\n

{title}

\n {dismiss !== undefined && (\n this.dismiss()}\n className=\"dismiss-btn\"\n >\n \n \n )}\n {message &&

{message}

}\n
\n
\n );\n }\n}\n","import React, {Component, ReactElement} from \"react\";\n\nexport default class ErrorSummary extends Component {\n render(): ReactElement {\n return (\n
Formularz zawiera błędy
\n );\n }\n}\n","import {Button, TextField} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport {changeHandler} from \"../common/forms/forms\";\nimport Radios from \"../common/forms/radios\";\nimport {NamedItem} from \"../common/forms/select-named\";\nimport {ValidationContext, ValidationSchema} from \"../common/forms/validation\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface OptionalInfo {\n siblings: string;\n friends: string;\n sourceInfo: string;\n}\n\nexport interface OptionalInfoPageProps {\n values?: OptionalInfo;\n onGoBack(values: OptionalInfo): void;\n onGoNext(values: OptionalInfo): void;\n}\n\nconst KnownOptions: NamedItem[] = [\n {\n id: \"website-bullerbyn\",\n name: \"ze strony Fundacji Bullerbyn\",\n },\n {\n id: \"facebook\",\n name: \"z Facebook'a\",\n },\n {\n id: \"miastodzieci.pl\",\n name: \"z portalu miastodzieci.pl\",\n },\n {\n id: \"internet\",\n name: \"z internetu\",\n },\n {\n id: \"acquaintances\",\n name: \"od znajomych\",\n },\n {\n id: \"already-before\",\n name: \"już byliśmy wcześniej\",\n },\n {\n id: \"in-other-way\",\n name: \"w inny sposób\",\n },\n];\n\ninterface OptionalInfoPageState extends OptionalInfo, ValidationContext {}\n\nexport default class OptionalInfoPage extends Component<\n OptionalInfoPageProps,\n OptionalInfoPageState\n> {\n schema: ValidationSchema;\n\n constructor(props: OptionalInfoPageProps) {\n super(props);\n const {values} = props;\n\n this.state = {\n errors: {},\n friends: \"\",\n siblings: \"\",\n sourceInfo: \"\",\n ...values,\n };\n\n this.schema = new ValidationSchema(\n {\n friends: [],\n siblings: [],\n sourceInfo: [],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n prev(): void {\n this.props.onGoBack(this.state);\n }\n\n async validate(): Promise {\n const pageValidation = await this.schema.validate(this.state);\n return !pageValidation.hasErrors;\n }\n\n getValues(): OptionalInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n onSourceInfoChange(value: NamedItem) {\n this.setState({\n sourceInfo: value.id,\n });\n }\n\n render(): ReactElement {\n const {errors, siblings, friends, sourceInfo} = this.state;\n return (\n \n
\n

Informacje dodatkowe

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n

O projekcie dowiedzieliśmy się

\n \n
\n {Object.keys(errors).length > 0 && }\n
\n \n \n
\n
\n );\n }\n}\n","import React, {Component, ReactElement, ChangeEvent} from \"react\";\nimport Select from \"@material-ui/core/Select\";\nimport {changeHandler} from \"./forms\";\n\nexport interface NamedItem {\n id: string;\n name: string;\n}\n\nexport interface SelectProps {\n items: T[];\n onSelect: (item: T | null) => void;\n disallowEmpty?: true;\n value?: string;\n disabled?: boolean;\n placeholder?: string;\n}\n\ninterface SelectState {\n selectedItemId: string | undefined;\n}\n\n/**\n * Generic component to select a single item in an HTML select.\n * Items are given as props.\n */\nexport default class NamedSelect extends Component<\n SelectProps,\n SelectState\n> {\n constructor(props: SelectProps) {\n super(props);\n\n this.state = {\n selectedItemId: props.value || \"\",\n };\n }\n\n getSelectedItem(): T | null {\n const item = this.props.items.find(\n (obj) => obj.id === this.state.selectedItemId\n );\n\n if (!item) {\n // the user selected the empty option\n return null;\n }\n\n return item;\n }\n\n componentDidUpdate(props: SelectProps) {\n if (props.value !== this.props.value) {\n this.setState({selectedItemId: this.props.value});\n }\n }\n\n onChange(\n event: ChangeEvent<\n HTMLInputElement | HTMLTextAreaElement | {name?: string; value: unknown}\n >\n ): void {\n // user's interaction\n changeHandler.call(this, event);\n\n setTimeout(() => {\n this.props.onSelect(this.getSelectedItem());\n }, 0);\n }\n\n render(): ReactElement {\n const {disabled, items, disallowEmpty, placeholder} = this.props;\n const {selectedItemId} = this.state;\n\n if (items.length === 0) {\n return ...;\n }\n\n // Note: if items contain a single element, then select it automatically\n if (items.length === 1) {\n const singleItem = items[0];\n return {singleItem.name};\n }\n\n return (\n \n {placeholder !== undefined && (\n \n )}\n {!disallowEmpty && }\n {items.map((item) => (\n \n ))}\n \n );\n }\n}\n","import React, {Component, ReactElement} from \"react\";\nimport NamedSelect, {NamedItem} from \"./select-named\";\n\nexport interface DateSelectProps {\n value?: Date;\n minYear?: number;\n maxYear?: number;\n onDateSelect?: (day: number, month: number, year: number) => void;\n}\n\nexport interface DateSelectState {\n year?: number;\n month?: number;\n day?: number;\n\n days: NamedItem[];\n months: NamedItem[];\n years: NamedItem[];\n}\n\nexport default class DateSelect extends Component<\n DateSelectProps,\n DateSelectState\n> {\n constructor(props: DateSelectProps) {\n super(props);\n const {value} = props;\n\n this.state = {\n day: value?.getDate(),\n year: value?.getFullYear(),\n month: value !== undefined ? value.getMonth() + 1 : undefined,\n days: this.getDatesArray(),\n months: this.getMonthsArray(),\n years: this.getYearsArray(props.minYear, props.maxYear),\n };\n }\n\n // TODO: handle props updates\n\n getMonthsArray(): NamedItem[] {\n const from = 1,\n to = 12;\n const a = [];\n for (let i = from; i <= to; i++) {\n a.push({\n id: i.toString(),\n name: i.toString(), // TODO: names I.t(\"month.\" + i),\n });\n }\n return a;\n }\n\n getDatesArray(max: number = 31): NamedItem[] {\n const from = 1,\n to = max;\n const a = [];\n for (let i = from; i <= to; i++) {\n a.push({\n id: i.toString(),\n name: i.toString(),\n });\n }\n return a;\n }\n\n getYearsArray(minYear?: number, maxYear?: number): NamedItem[] {\n const now = new Date();\n const currentYear = now.getFullYear();\n\n if (minYear === undefined) {\n minYear = currentYear - 100;\n }\n if (maxYear === undefined) {\n maxYear = currentYear - 14;\n }\n\n const a = [];\n for (let i = maxYear; i >= minYear; i--) {\n a.push({\n id: i.toString(),\n name: i.toString(),\n });\n }\n return a;\n }\n\n checkDateSelected(): void {\n setTimeout(() => {\n const {day, month, year} = this.state;\n\n if (day === undefined || month === undefined || year == undefined) {\n return;\n }\n\n if (this.props.onDateSelect) this.props.onDateSelect(day, month, year);\n }, 0);\n }\n\n onDaySelect(value: NamedItem | null): void {\n this.setState({day: value === null ? undefined : parseInt(value.id)});\n this.checkDateSelected();\n }\n\n onMonthSelect(value: NamedItem | null): void {\n this.setState({month: value === null ? undefined : parseInt(value.id)});\n this.checkDays();\n }\n\n onYearSelect(value: NamedItem | null): void {\n this.setState({year: value === null ? undefined : parseInt(value.id)});\n this.checkDays();\n }\n\n checkDays(): void {\n // on month or year select, check the number of days in the month\n setTimeout(() => {\n this.ensureDate();\n this.checkDateSelected();\n }, 0);\n }\n\n daysInMonth(year: number, month: number): number {\n return new Date(year, month, 0).getDate();\n }\n\n ensureDate(): void {\n const {day, month, year} = this.state;\n if (month === undefined) {\n return;\n }\n\n const daysInMonth = this.daysInMonth(\n year || new Date().getFullYear(),\n month\n );\n\n if (day !== undefined && day > daysInMonth) {\n this.setState({\n day: daysInMonth,\n days: this.getDatesArray(daysInMonth),\n });\n } else {\n this.setState({\n days: this.getDatesArray(daysInMonth),\n });\n }\n }\n\n render(): ReactElement {\n const {day, month, year, days, months, years} = this.state;\n return (\n
\n \n \n \n
\n );\n }\n}\n","import React, {Component, ReactElement} from \"react\";\n\nexport interface FieldProps {\n error?: string;\n children?: React.ReactNode;\n}\n\nexport default class Field extends Component {\n render(): ReactElement {\n const {error, children} = this.props;\n return (\n
\n {children}\n {error &&

{error}

}\n
\n );\n }\n}\n","export interface Term {\n id: string;\n name: string;\n}\n\nexport enum AccomodationType {\n home = \"home\",\n swedishCottage = \"swedishCottage\",\n teepee = \"teepee\",\n twoweekteepee = \"twoweekteepee\",\n}\n\nexport interface AccomodationTypeOption {\n id: string;\n name: string;\n}\n\n// TODO: handle localization somewhere else\nconst polishNames: {[key in AccomodationType]: string} = {\n home: \"dom główny \",\n swedishCottage: \"domek szwedzki\",\n teepee: \"tipi\",\n twoweekteepee: \"tipi dwutygodniowe\",\n};\n\nexport function getAccomodationTypesByBirthYear(\n birthYear: number\n): AccomodationType[] {\n switch (birthYear) {\n case 2017:\n return [\n AccomodationType.home,\n AccomodationType.teepee,\n AccomodationType.swedishCottage,\n ];\n case 2016:\n return [\n AccomodationType.home,\n AccomodationType.teepee,\n AccomodationType.swedishCottage,\n ];\n case 2015:\n return [\n AccomodationType.swedishCottage,\n AccomodationType.teepee,\n AccomodationType.twoweekteepee,\n ];\n case 2014:\n return [AccomodationType.teepee, AccomodationType.twoweekteepee];\n case 2013:\n return [AccomodationType.teepee, AccomodationType.twoweekteepee];\n\n default:\n return [AccomodationType.teepee];\n }\n}\n\nexport function getAccomodationTypesOptionsByBirthYear(\n birthYear: number\n): AccomodationTypeOption[] {\n return getAccomodationTypesByBirthYear(birthYear).map(\n (type: AccomodationType) => {\n return {\n id: type,\n name: polishNames[type],\n };\n }\n );\n}\n\nexport interface AccomodationTerm {\n id: string;\n name: string;\n price: number;\n freeSpotsMale: number;\n freeSpotsFemale: number;\n}\n\nexport interface AccomodationsApi {\n getAvailableTerms(accomodationType: string): Promise;\n}\n","import React, {Component, ReactElement} from \"react\";\n\nexport interface LoaderProps {\n id?: string;\n className?: string;\n}\n\nexport default class Loader extends Component {\n render(): ReactElement {\n const props = this.props;\n const className = props.className;\n return (\n \n
\n \n );\n }\n}\n","import DateSelect from \"../common/forms/date-select\";\nimport Radios from \"../common/forms/radios\";\nimport React, {Component, ReactElement} from \"react\";\nimport {Gender} from \"../../service/domain/persons\";\nimport {Button, TextField} from \"@material-ui/core\";\nimport {changeHandler, removeError} from \"../common/forms/forms\";\nimport {\n Pattern,\n Required,\n ValidationContext,\n ValidationSchema,\n} from \"../common/forms/validation\";\nimport Field from \"../common/forms/field\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport {IServices} from \"../../service/services\";\nimport Alert, {AlertProps, AlertSeverity} from \"../common/alert\";\nimport Loader from \"../common/loader\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface ChildInfo {\n childFirstName: string;\n childLastName: string;\n childPesel: string;\n childClass: string;\n childBirthDate: Date | null;\n childGender: string;\n}\n\ninterface ChildInfoPageProps {\n values?: ChildInfo;\n onGoNext(values: ChildInfo): void;\n services: IServices;\n}\n\ninterface ChildInfoPageState extends ChildInfo, ValidationContext {\n loading: boolean;\n problem?: AlertProps;\n}\n\nconst Genders: Gender[] = [\n {\n id: \"M\",\n name: \"Chłopiec\",\n },\n {\n id: \"F\",\n name: \"Dziewczynka\",\n },\n];\n\nexport default class ChildInfoPage extends Component<\n ChildInfoPageProps,\n ChildInfoPageState\n> {\n schema: ValidationSchema;\n\n constructor(props: ChildInfoPageProps) {\n super(props);\n\n this.state = {\n errors: {},\n loading: false,\n childFirstName: \"\",\n childLastName: \"\",\n childPesel: \"\",\n childClass: \"\",\n childBirthDate: null,\n childGender: \"\",\n ...props.values,\n };\n\n this.schema = new ValidationSchema(\n {\n childFirstName: [new Required()],\n childLastName: [new Required()],\n childGender: [new Required()],\n childPesel: [new Required()],\n childClass: [new Required(), new Pattern(/^\\d+$/)],\n childBirthDate: [\n new Required({errorMessage: \"Wybierz datę urodzenia\"}),\n ],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n onBirthDateSelected(day: number, month: number, year: number): void {\n this.setState({\n childBirthDate: new Date(year, month - 1, day),\n });\n removeError(this, \"childBirthDate\");\n }\n\n onGenderSelect(childGender: Gender): void {\n this.setState({\n childGender: childGender.id,\n });\n }\n\n async validate(): Promise {\n const pageValidation = await this.schema.validate(this.state);\n\n if (pageValidation.hasErrors) {\n return false;\n }\n\n this.setState({\n loading: true,\n });\n\n let noConflict: boolean = false;\n try {\n // validate pesel\n noConflict = await this.validateNotAlreadyRegistered();\n } catch (error) {\n this.setState({\n loading: false,\n problem: {\n title: \"Błąd techniczny\",\n message: `Wystąpił nieoczekiwany błąd. Skontaktuj się z\n administratorami serwisu, jeśli problem będzie się powtarzał.`,\n severity: AlertSeverity.error,\n },\n });\n\n return false;\n }\n\n if (!noConflict) {\n // child with given input is already registered\n this.setState({\n loading: false,\n problem: {\n title: \"Dziecko z podanymi danymi jest już zarejestrowane.\",\n message: `Zrealizujemy każdą prośbę, rejestracja dziecka więcej niż\n raz nie zwiększa możliwości bycia wybranym!`,\n severity: AlertSeverity.warning,\n },\n });\n return false;\n } else {\n this.setState({\n loading: false,\n problem: undefined,\n });\n }\n\n return true;\n }\n\n async validateNotAlreadyRegistered(): Promise {\n const {services} = this.props;\n const {childFirstName, childLastName, childPesel} = this.state;\n const {persons} = services;\n\n if (\n childPesel === undefined ||\n childFirstName === undefined ||\n childLastName === undefined\n )\n throw new Error(\"Missing context\");\n\n // is there already a child with the same input?\n const child = await persons.getChild(\n childPesel,\n childFirstName,\n childLastName\n );\n\n if (child === null) {\n return true;\n }\n\n return false;\n }\n\n getValues(): ChildInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n render(): ReactElement {\n const {\n errors,\n childGender,\n childFirstName,\n childLastName,\n childPesel,\n childBirthDate,\n childClass,\n problem,\n loading,\n } = this.state;\n return (\n \n

Dane dziecka

\n
\n
Płeć
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n {loading && }\n {problem && }\n {Object.keys(errors).length > 0 && }\n
\n \n
\n
\n );\n }\n}\n","import {Button, TextField} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport {changeHandler} from \"../common/forms/forms\";\nimport {\n Required,\n ValidationContext,\n ValidationSchema,\n} from \"../common/forms/validation\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface HealthInfo {\n healthIssues?: string;\n diet?: string;\n developmentDisorders?: string;\n}\n\nexport interface HealthInfoPageProps {\n values?: HealthInfo;\n onGoBack(values: HealthInfo): void;\n onGoNext(values: HealthInfo): void;\n}\n\ninterface HealthInfoPageState extends HealthInfo, ValidationContext {}\n\nexport default class MandatoryInfoPage extends Component<\n HealthInfoPageProps,\n HealthInfoPageState\n> {\n schema: ValidationSchema;\n\n constructor(props: HealthInfoPageProps) {\n super(props);\n\n this.state = {errors: {}, ...props.values};\n\n this.schema = new ValidationSchema(\n {\n healthIssues: [new Required()],\n developmentDisorders: [new Required()],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n prev(): void {\n this.props.onGoBack(this.state);\n }\n\n async validate(): Promise {\n const pageValidation = await this.schema.validate(this.state);\n return !pageValidation.hasErrors;\n }\n\n getValues(): HealthInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n render(): ReactElement {\n const {healthIssues, diet, developmentDisorders, errors} = this.state;\n return (\n \n
\n

Informacje o dziecku

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {Object.keys(errors).length > 0 && }\n
\n \n \n
\n
\n );\n }\n}\n","import {NamedItem} from \"../common/forms/select-named\";\n\n// TODO: this should be a localized dictionary\nexport const Countries: NamedItem[] = [\n {\n id: \"b2e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Afganistan\",\n },\n {\n id: \"b3e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Albania\",\n },\n {\n id: \"b4e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Algieria\",\n },\n {\n id: \"b5e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Andora\",\n },\n {\n id: \"b7e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Anguilla\",\n },\n {\n id: \"b8e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Angola\",\n },\n {\n id: \"b9e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Antarktyka\",\n },\n {\n id: \"bae1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Antigua i Barbuda\",\n },\n {\n id: \"bbe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Arabia Saudyjska\",\n },\n {\n id: \"bce1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Argentyna\",\n },\n {\n id: \"bde1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Armenia\",\n },\n {\n id: \"bee1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Aruba\",\n },\n {\n id: \"bfe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Australia\",\n },\n {\n id: \"c1e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Austria\",\n },\n {\n id: \"c2e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Azerbejdżan\",\n },\n {\n id: \"c3e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bahamy\",\n },\n {\n id: \"c4e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bahrajn\",\n },\n {\n id: \"c5e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bangladesz\",\n },\n {\n id: \"c6e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Barbados\",\n },\n {\n id: \"c7e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Belgia\",\n },\n {\n id: \"c8e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Belize\",\n },\n {\n id: \"c9e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Benin\",\n },\n {\n id: \"cae1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bermudy\",\n },\n {\n id: \"cbe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bhutan\",\n },\n {\n id: \"cce1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Białoruś\",\n },\n {\n id: \"cde1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Boliwia\",\n },\n {\n id: \"cee1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bonaire, Sint Eustatius i Saba\",\n },\n {\n id: \"cfe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Botswana\",\n },\n {\n id: \"d0e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bośnia i Hercegowina\",\n },\n {\n id: \"d1e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Brunei\",\n },\n {\n id: \"d2e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Brazylia\",\n },\n {\n id: \"d3e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Brytyjskie Wyspy Dziewicze\",\n },\n {\n id: \"d4e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Brytyjskie Terytorium Oceanu Indyjskiego\",\n },\n {\n id: \"d5e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Burkina Faso\",\n },\n {\n id: \"d6e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Bułgaria\",\n },\n {\n id: \"d7e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Chile\",\n },\n {\n id: \"d8e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Burundi\",\n },\n {\n id: \"d9e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Chorwacja\",\n },\n {\n id: \"dae1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Chiny\",\n },\n {\n id: \"dbe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Cypr\",\n },\n {\n id: \"dce1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Curaçao\",\n },\n {\n id: \"dde1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Czarnogóra\",\n },\n {\n id: \"dee1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Czad\",\n },\n {\n id: \"dfe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Dalekie Wyspy Mniejsze Stanów Zjednoczonych\",\n },\n {\n id: \"e0e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Czechy\",\n },\n {\n id: \"e1e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Demokratyczna Republika Konga\",\n },\n {\n id: \"e2e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Dania\",\n },\n {\n id: \"e3e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Dominikana\",\n },\n {\n id: \"e4e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Dominika\",\n },\n {\n id: \"e5e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Egipt\",\n },\n {\n id: \"e6e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Dżibuti\",\n },\n {\n id: \"e7e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Erytrea\",\n },\n {\n id: \"e8e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Etiopia\",\n },\n {\n id: \"e9e1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Ekwador\",\n },\n {\n id: \"eae1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Falklandy\",\n },\n {\n id: \"ebe1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Estonia\",\n },\n {\n id: \"ece1cc76-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Filipiny\",\n },\n {\n id: \"2ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Fidżi\",\n },\n {\n id: \"2fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Francja\",\n },\n {\n id: \"30bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Finlandia\",\n },\n {\n id: \"31bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gabon\",\n },\n {\n id: \"32bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Francuskie Terytoria Południowe i Antarktyczne\",\n },\n {\n id: \"34bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Georgia Południowa i Sandwich Południowy\",\n },\n {\n id: \"35bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gambia\",\n },\n {\n id: \"36bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gibraltar\",\n },\n {\n id: \"37bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Ghana\",\n },\n {\n id: \"38bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Grenada\",\n },\n {\n id: \"39bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Grecja\",\n },\n {\n id: \"3abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gruzja\",\n },\n {\n id: \"3bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Grenlandia\",\n },\n {\n id: \"3cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Guernsey\",\n },\n {\n id: \"3dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Guam\",\n },\n {\n id: \"3ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gujana\",\n },\n {\n id: \"3fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gujana Francuska\",\n },\n {\n id: \"40bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gwatemala\",\n },\n {\n id: \"41bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gwadelupa\",\n },\n {\n id: \"42bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gwinea Równikowa\",\n },\n {\n id: \"43bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gwinea Bissau\",\n },\n {\n id: \"44bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Haiti\",\n },\n {\n id: \"45bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Gwinea\",\n },\n {\n id: \"46bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Hiszpania\",\n },\n {\n id: \"47bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Honduras\",\n },\n {\n id: \"48bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Holandia\",\n },\n {\n id: \"49bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Indie\",\n },\n {\n id: \"4abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Irak\",\n },\n {\n id: \"4bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Irlandia\",\n },\n {\n id: \"4cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Izrael\",\n },\n {\n id: \"4dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Japonia\",\n },\n {\n id: \"4ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Jersey\",\n },\n {\n id: \"4fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kajmany\",\n },\n {\n id: \"50bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Hongkong\",\n },\n {\n id: \"51bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Indonezja\",\n },\n {\n id: \"52bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Iran\",\n },\n {\n id: \"53bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Islandia\",\n },\n {\n id: \"54bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kamerun\",\n },\n {\n id: \"55bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Jamajka\",\n },\n {\n id: \"56bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Katar\",\n },\n {\n id: \"57bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kenia\",\n },\n {\n id: \"58bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Jemen\",\n },\n {\n id: \"59bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kiribati\",\n },\n {\n id: \"5abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Jordania\",\n },\n {\n id: \"5bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Komory\",\n },\n {\n id: \"5cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kambodża\",\n },\n {\n id: \"5dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Korea Południowa\",\n },\n {\n id: \"5ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kanada\",\n },\n {\n id: \"5fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kostaryka\",\n },\n {\n id: \"60bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kazachstan\",\n },\n {\n id: \"61bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kuba\",\n },\n {\n id: \"62bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kirgistan\",\n },\n {\n id: \"63bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kuwejt\",\n },\n {\n id: \"64bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kolumbia\",\n },\n {\n id: \"65bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Laos\",\n },\n {\n id: \"66bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Kongo\",\n },\n {\n id: \"67bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Lesotho\",\n },\n {\n id: \"68bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Korea Północna\",\n },\n {\n id: \"69bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Liechtenstein\",\n },\n {\n id: \"6abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Liban\",\n },\n {\n id: \"6bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Litwa\",\n },\n {\n id: \"6cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Liberia\",\n },\n {\n id: \"6dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Libia\",\n },\n {\n id: \"6ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Luksemburg\",\n },\n {\n id: \"6fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Łotwa\",\n },\n {\n id: \"70bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Macedonia\",\n },\n {\n id: \"71bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Majotta\",\n },\n {\n id: \"72bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Madagaskar\",\n },\n {\n id: \"73bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Makau\",\n },\n {\n id: \"74bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Malawi\",\n },\n {\n id: \"75bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Malediwy\",\n },\n {\n id: \"76bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Malezja\",\n },\n {\n id: \"77bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Malta\",\n },\n {\n id: \"78bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mali\",\n },\n {\n id: \"79bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Martynika\",\n },\n {\n id: \"7abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mariany Północne\",\n },\n {\n id: \"7bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mauretania\",\n },\n {\n id: \"7cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Maroko\",\n },\n {\n id: \"7dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Meksyk\",\n },\n {\n id: \"7ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mauritius\",\n },\n {\n id: \"7fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mikronezja\",\n },\n {\n id: \"80bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mjanma\",\n },\n {\n id: \"81bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mołdawia\",\n },\n {\n id: \"82bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Monako\",\n },\n {\n id: \"83bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mongolia\",\n },\n {\n id: \"84bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Montserrat\",\n },\n {\n id: \"85bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Mozambik\",\n },\n {\n id: \"86bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Namibia\",\n },\n {\n id: \"87bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nepal\",\n },\n {\n id: \"88bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nauru\",\n },\n {\n id: \"89bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Niger\",\n },\n {\n id: \"8abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Niemcy\",\n },\n {\n id: \"8bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nikaragua\",\n },\n {\n id: \"8cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nigeria\",\n },\n {\n id: \"8dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Niue\",\n },\n {\n id: \"8ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Norfolk\",\n },\n {\n id: \"8fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nowa Kaledonia\",\n },\n {\n id: \"90bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Norwegia\",\n },\n {\n id: \"91bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Oman\",\n },\n {\n id: \"92bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Nowa Zelandia\",\n },\n {\n id: \"93bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Pakistan\",\n },\n {\n id: \"94bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Palau\",\n },\n {\n id: \"95bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Panama\",\n },\n {\n id: \"96bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Palestyna\",\n },\n {\n id: \"97bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Papua-Nowa Gwinea\",\n },\n {\n id: \"98bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Paragwaj\",\n },\n {\n id: \"99bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Peru\",\n },\n {\n id: \"9abcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Pitcairn\",\n },\n {\n id: \"9bbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Polinezja Francuska\",\n },\n {\n id: \"9cbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Polska\",\n },\n {\n id: \"9dbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Portugalia\",\n },\n {\n id: \"9ebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Portoryko\",\n },\n {\n id: \"9fbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Republika Środkowoafrykańska\",\n },\n {\n id: \"a0bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Republika Południowej Afryki\",\n },\n {\n id: \"a1bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Republika Zielonego Przylądka\",\n },\n {\n id: \"a2bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Reunion\",\n },\n {\n id: \"a3bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Rumunia\",\n },\n {\n id: \"a4bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Rosja\",\n },\n {\n id: \"a5bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sahara Zachodnia\",\n },\n {\n id: \"a6bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Rwanda\",\n },\n {\n id: \"a7bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint Lucia\",\n },\n {\n id: \"a8bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint Kitts i Nevis\",\n },\n {\n id: \"a9bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint-Barthélemy\",\n },\n {\n id: \"aabcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint Vincent i Grenadyny\",\n },\n {\n id: \"abbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint-Pierre i Miquelon\",\n },\n {\n id: \"acbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Saint-Martin\",\n },\n {\n id: \"adbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Samoa Amerykańskie\",\n },\n {\n id: \"aebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Salwador\",\n },\n {\n id: \"afbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"San Marino\",\n },\n {\n id: \"b0bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Samoa\",\n },\n {\n id: \"b1bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Senegal\",\n },\n {\n id: \"b2bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Serbia\",\n },\n {\n id: \"b3bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Seszele\",\n },\n {\n id: \"b4bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sierra Leone\",\n },\n {\n id: \"b5bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sint Maarten\",\n },\n {\n id: \"b6bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Singapur\",\n },\n {\n id: \"b7bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Słowacja\",\n },\n {\n id: \"b8bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Słowenia\",\n },\n {\n id: \"b9bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Somalia\",\n },\n {\n id: \"babcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sri Lanka\",\n },\n {\n id: \"bbbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Suazi\",\n },\n {\n id: \"bcbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Stany Zjednoczone\",\n },\n {\n id: \"bdbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sudan\",\n },\n {\n id: \"bebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Sudan Południowy\",\n },\n {\n id: \"bfbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Surinam\",\n },\n {\n id: \"c0bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Svalbard i Jan Mayen\",\n },\n {\n id: \"c1bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Szwajcaria\",\n },\n {\n id: \"c2bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Syria\",\n },\n {\n id: \"c3bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tadżykistan\",\n },\n {\n id: \"c4bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Szwecja\",\n },\n {\n id: \"c5bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tajwan\",\n },\n {\n id: \"c6bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tajlandia\",\n },\n {\n id: \"c7bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Timor Wschodni\",\n },\n {\n id: \"c8bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tanzania\",\n },\n {\n id: \"c9bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tokelau\",\n },\n {\n id: \"cabcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Togo\",\n },\n {\n id: \"cbbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Trynidad i Tobago\",\n },\n {\n id: \"ccbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tonga\",\n },\n {\n id: \"cdbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Turcja\",\n },\n {\n id: \"cebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tunezja\",\n },\n {\n id: \"cfbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Turkmenistan\",\n },\n {\n id: \"d0bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Turks i Caicos\",\n },\n {\n id: \"d1bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Uganda\",\n },\n {\n id: \"d2bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Tuvalu\",\n },\n {\n id: \"d3bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Urugwaj\",\n },\n {\n id: \"d4bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Ukraina\",\n },\n {\n id: \"d5bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Uzbekistan\",\n },\n {\n id: \"d6bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Vanuatu\",\n },\n {\n id: \"d7bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Watykan\",\n },\n {\n id: \"d8bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wallis i Futuna\",\n },\n {\n id: \"d9bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wenezuela\",\n },\n {\n id: \"dabcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Węgry\",\n },\n {\n id: \"dbbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wielka Brytania\",\n },\n {\n id: \"dcbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wietnam\",\n },\n {\n id: \"ddbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Włochy\",\n },\n {\n id: \"debcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wybrzeże Kości Słoniowej\",\n },\n {\n id: \"dfbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspa Bożego Narodzenia\",\n },\n {\n id: \"e0bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspa Bouveta\",\n },\n {\n id: \"e1bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspa Świętej Heleny, Wyspa Wniebowstąpienia i Tristan da Cunha\",\n },\n {\n id: \"e2bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspa Man\",\n },\n {\n id: \"e3bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Cooka\",\n },\n {\n id: \"e4bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Alandzkie\",\n },\n {\n id: \"e5bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Heard i McDonalda\",\n },\n {\n id: \"e6bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Dziewicze Stanów Zjednoczonych\",\n },\n {\n id: \"e7bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Marshalla\",\n },\n {\n id: \"e8bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Kokosowe\",\n },\n {\n id: \"e9bcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Salomona\",\n },\n {\n id: \"eabcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Owcze\",\n },\n {\n id: \"ebbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Zambia\",\n },\n {\n id: \"ecbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Wyspy Świętego Tomasza i Książęca\",\n },\n {\n id: \"edbcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Zjednoczone Emiraty Arabskie\",\n },\n {\n id: \"eebcc77c-cb1d-eb11-a813-000d3a45bf29\",\n name: \"Zimbabwe\",\n },\n];\n\nexport const Voivodships: NamedItem[] = [\n {\n id: \"a1dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"zachodniopomorskie\",\n },\n {\n id: \"a2dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"wielkopolskie\",\n },\n {\n id: \"a3dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"warmińsko-mazurskie\",\n },\n {\n id: \"a6dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"świętokrzyskie\",\n },\n {\n id: \"a7dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"śląskie\",\n },\n {\n id: \"a8dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"pomorskie\",\n },\n {\n id: \"abdc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"podlaskie\",\n },\n {\n id: \"acdc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"podkarpackie\",\n },\n {\n id: \"addc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"opolskie\",\n },\n {\n id: \"aedc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"mazowieckie\",\n },\n {\n id: \"afdc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"małopolskie\",\n },\n {\n id: \"b0dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"łódzkie\",\n },\n {\n id: \"b1dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"lubuskie\",\n },\n {\n id: \"b2dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"lubelskie\",\n },\n {\n id: \"b3dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"kujawsko-pomorskie\",\n },\n {\n id: \"b4dc2fc5-cc1d-eb11-a813-000d3a45bf29\",\n name: \"dolnośląskie\",\n },\n];\n\nexport const WarsawDistricts: NamedItem[] = [\n {\n id: \"704590000\",\n name: \"Bemowo\",\n },\n {\n id: \"704590001\",\n name: \"Białołęka\",\n },\n {\n id: \"704590002\",\n name: \"Bielany\",\n },\n {\n id: \"704590003\",\n name: \"Centrum\",\n },\n {\n id: \"704590004\",\n name: \"Mokotów\",\n },\n {\n id: \"704590005\",\n name: \"Ochota\",\n },\n {\n id: \"704590006\",\n name: \"Praga-Południe\",\n },\n {\n id: \"704590007\",\n name: \"Praga-Północ\",\n },\n {\n id: \"704590008\",\n name: \"Rembertów\",\n },\n {\n id: \"704590009\",\n name: \"Śródmieście\",\n },\n {\n id: \"704590010\",\n name: \"Targówek\",\n },\n {\n id: \"704590011\",\n name: \"Ursus\",\n },\n {\n id: \"704590012\",\n name: \"Ursynów\",\n },\n {\n id: \"704590013\",\n name: \"Wawer\",\n },\n {\n id: \"704590014\",\n name: \"Wilanów\",\n },\n {\n id: \"704590015\",\n name: \"Włochy\",\n },\n {\n id: \"704590016\",\n name: \"Wola\",\n },\n {\n id: \"704590017\",\n name: \"Żoliborz\",\n },\n];\n\nexport const PolandId: string = \"9cbcc77c-cb1d-eb11-a813-000d3a45bf29\";\n","import {TextField} from \"@material-ui/core\";\nimport React, {ChangeEvent, Component, ReactElement} from \"react\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport Field from \"../common/forms/field\";\nimport {changeHandler, removeError} from \"../common/forms/forms\";\nimport NamedSelect, {NamedItem} from \"../common/forms/select-named\";\nimport {\n Required,\n SchemaValidationResult,\n ValidationContext,\n ValidationSchema,\n} from \"../common/forms/validation\";\nimport {\n Countries,\n PolandId,\n Voivodships,\n WarsawDistricts,\n} from \"./dictionaries\";\n\nexport interface AddressData {\n country: string;\n city: string;\n zipCode: string;\n street: string;\n voivodeship: string;\n community: string;\n}\n\nexport interface AddressProps {\n value?: AddressData;\n onAddresComplete: (address: AddressData) => void;\n}\n\nexport interface AddressState extends AddressData, ValidationContext {\n showCommunity: boolean;\n showVoivodeships: boolean;\n}\n\nconst countryOptions = Countries;\n\nconst communityOptions = WarsawDistricts;\n\nconst voivodeshipsOptions = Voivodships;\n\n// Specific control for the survey, not reusable in other applications\n\nexport default class Address extends Component {\n schema: ValidationSchema;\n\n constructor(props: AddressProps) {\n super(props);\n\n const {value} = props;\n this.state = {\n country: value?.country || PolandId,\n city: value?.city || \"\",\n zipCode: value?.zipCode || \"\",\n street: value?.street || \"\",\n\n // only for Poland:\n voivodeship: value?.voivodeship || \"\",\n showVoivodeships: true,\n\n // only for Warsaw:\n community: value?.community || \"\",\n showCommunity: false,\n errors: {},\n };\n\n this.schema = new ValidationSchema(\n {\n country: [new Required()],\n city: [new Required()],\n zipCode: [new Required()],\n street: [new Required()],\n voivodeship: [\n new Required({\n condition: () => {\n return this.state.country === PolandId;\n },\n }),\n ],\n community: [\n new Required({\n condition: () => {\n return /warszawa/i.test(this.state.city);\n },\n }),\n ],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n validate(): Promise> {\n return this.schema.validate(this.state);\n }\n\n onCountrySelect(item: NamedItem | null): void {\n this.setState({\n country: item ? item.id : \"\",\n });\n if (!item) return;\n\n if (item.id === PolandId) {\n this.setState({\n showVoivodeships: true,\n });\n } else {\n this.setState({\n voivodeship: \"\",\n showVoivodeships: false,\n });\n }\n }\n\n onCommunitySelect(item: NamedItem | null): void {\n this.setState({\n community: item ? item.id : \"\",\n });\n removeError(this, \"community\");\n }\n\n onVoivodshipSelect(item: NamedItem | null): void {\n this.setState({\n voivodeship: item ? item.id : \"\",\n });\n removeError(this, \"voivodeship\");\n }\n\n onCityChange(\n event: ChangeEvent<\n HTMLInputElement | HTMLTextAreaElement | {name?: string; value: unknown}\n >\n ) {\n changeHandler.call(this, event);\n\n const value = event.target.value as string;\n if (/warszawa/i.test(value)) {\n this.setState({\n showCommunity: true,\n });\n } else {\n this.setState({\n community: \"\",\n showCommunity: false,\n });\n }\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n onChange(): void {\n setTimeout(() => {\n this.schema.validate(this.state, true).then((results) => {\n if (!results.hasErrors) {\n const {\n country,\n city,\n zipCode,\n street,\n voivodeship,\n community,\n } = this.state;\n this.props.onAddresComplete({\n country,\n city,\n zipCode,\n street,\n voivodeship,\n community,\n });\n }\n });\n });\n }\n\n render(): ReactElement {\n const {\n errors,\n showCommunity,\n showVoivodeships,\n country,\n city,\n street,\n voivodeship,\n community,\n zipCode,\n } = this.state;\n\n return (\n \n
\n
Kraj
\n
\n \n \n \n
\n {showVoivodeships && (\n \n
Województwo
\n
\n \n \n \n
\n
\n )}\n
Miejscowość
\n
\n \n
\n {showCommunity && (\n \n
Gmina
\n
\n \n \n \n
\n
\n )}\n
Kod pocztowy
\n
\n \n
\n
Ulica i numer domu/mieszkania
\n
\n \n
\n
\n \n );\n }\n}\n","import {Button, TextField} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport {changeHandler, removeError} from \"../common/forms/forms\";\nimport {\n ConfirmEmailValidationRule,\n EmailAddress,\n PhoneNumber,\n Required,\n ValidationContext,\n ValidationSchema,\n} from \"../common/forms/validation\";\nimport Address, {AddressData} from \"./address\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface ParentsInfo {\n parentOneFirstName: string;\n parentOneLastName: string;\n parentOnePhoneNumber: string;\n parentOneEmailAddress: string;\n parentOneEmailAddress2: string; // for confirmation\n\n parentTwoFirstName: string;\n parentTwoLastName: string;\n parentTwoPhoneNumber: string;\n parentTwoEmailAddress: string;\n parentTwoEmailAddress2: string; // for confirmation\n\n address: AddressData | null;\n}\n\nexport interface ParentsInfoPageProps {\n values?: ParentsInfo;\n onGoBack(values: ParentsInfo): void;\n onGoNext(values: ParentsInfo): void;\n}\n\ninterface ParentsInfoPageState extends ParentsInfo, ValidationContext {}\n\nexport default class ParentsInfoPage extends Component<\n ParentsInfoPageProps,\n ParentsInfoPageState\n> {\n schema: ValidationSchema;\n private addressControl: React.RefObject
;\n\n constructor(props: ParentsInfoPageProps) {\n super(props);\n this.addressControl = React.createRef();\n\n this.state = {\n errors: {},\n parentOneFirstName: \"\",\n parentOneLastName: \"\",\n parentOnePhoneNumber: \"\",\n parentOneEmailAddress: \"\",\n parentOneEmailAddress2: \"\",\n parentTwoFirstName: \"\",\n parentTwoLastName: \"\",\n parentTwoPhoneNumber: \"\",\n parentTwoEmailAddress: \"\",\n parentTwoEmailAddress2: \"\",\n address: null,\n ...props.values,\n };\n\n this.schema = new ValidationSchema(\n {\n parentOneFirstName: [new Required()],\n parentOneLastName: [new Required()],\n parentOneEmailAddress: [new Required(), new EmailAddress()],\n parentOneEmailAddress2: [\n new Required(),\n new EmailAddress(),\n new ConfirmEmailValidationRule(\"parentOneEmailAddress\"),\n ],\n parentOnePhoneNumber: [new Required(), new PhoneNumber()],\n\n parentTwoFirstName: [],\n parentTwoLastName: [],\n parentTwoPhoneNumber: [new PhoneNumber()],\n parentTwoEmailAddress: [new EmailAddress()],\n parentTwoEmailAddress2: [\n new ConfirmEmailValidationRule(\"parentTwoEmailAddress\"),\n ],\n address: [new Required()],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n prev(): void {\n this.props.onGoBack(this.state);\n }\n\n onAddresComplete(address: AddressData): void {\n this.setState({\n address,\n });\n removeError(this, \"address\");\n }\n\n async validate(): Promise {\n const [addressValidation, pageValidation] = await Promise.all([\n this.addressControl.current?.validate(),\n this.schema.validate(this.state),\n ]);\n\n if (addressValidation?.hasErrors || pageValidation.hasErrors) {\n return false;\n }\n\n return true;\n }\n\n getValues(): ParentsInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n render(): ReactElement {\n const {\n address,\n parentOneFirstName,\n parentOneLastName,\n parentTwoFirstName,\n parentTwoLastName,\n parentOneEmailAddress,\n parentOneEmailAddress2,\n parentOnePhoneNumber,\n parentTwoEmailAddress,\n parentTwoEmailAddress2,\n parentTwoPhoneNumber,\n errors,\n } = this.state;\n return (\n \n
\n

\n Dane rodzica / opiekuna prawnego zawierającego Umowę o Udział w\n Działaniu\n

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n

Dane adresowe do umowy

\n
\n
\n \n
\n
\n

Dane drugiego rodzica / opiekuna prawnego (opcjonalnie)

\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {Object.keys(errors).length > 0 && }\n
\n \n \n
\n
\n );\n }\n}\n","export interface Condition {\n text: string;\n mandatory?: boolean;\n}\n\nexport const Conditions: Condition[] = [\n {\n text: `Zgodnie z art. 6 ust. 1 lit. a ogólnego rozporządzenia o ochronie danych\n osobowych z dnia 27 kwietnia 2016 roku (Dz. Urz. UE L 119 z 4 maja 2016\n roku), wyrażam zgodę na przetwarzanie przez Fundację Bullerbyn na rzecz\n wspólnoty dzieci i dorosłych z siedzibą w Wilczej Górze, ul. Nieziemska 1,\n 05-506 Wilcza Góra danych osobowych moich oraz mojego dziecka/osoby\n pozostającej pod moją opieką zawartych w dokumentacji rejestracyjnej na\n potrzeby organizacji projektu \"Wioska Bullerbyn 2025\" w celu rejestracji do\n projektu oraz zawartych w karcie kwalifikacyjnej, karcie informacji o\n dziecku, formularzu diet i innych dokumentach przekazanych w celu zapewnienia\n bezpieczeństwa i ochrony zdrowia uczestnika wypoczynku przy ulicy\n Warszawskiej 14, 05-555 Świętochów.`,\n mandatory: true,\n },\n {\n text: `Oświadczam, iż zgodnie z art. 13 ogólnego rozporządzenia o ochronie danych\n osobowych z dnia 27 kwietnia 2016 r. zostałem poinformowany przez Fundację\n Bullerbyn, że podanie danych jest dobrowolne aczkolwiek odmowa ich podania\n jest równoznaczna z brakiem możliwości uczestnictwa mojego dziecka/osoby\n pozostającej pod moją opieką w organizowanym przez Fundację Bullerbyn\n wypoczynku dzieci i młodzieży w ramach projektu \"Wioska Bullerbyn 2025\" oraz że\n polityka prywatności jest udostępniona na stronie www.bullerbyn.pl.`,\n mandatory: true,\n },\n {\n text: `Oświadczam, że przyjmuję warunki rezerwacji udziału w niniejszym projekcie\n oraz, że zapoznałem/łam się z OGÓLNYMI WARUNKAMI UCZESTNICTWA oraz\n REGULAMINEM działania dostępnymi na stronie www.wioskabullerbyn.pl i\n przyjmuję je do stosowania. Przyjmuję do wiadomości, że nieuiszczenie\n zaliczki w ciągu 3 dni od dnia potwierdzenia rezerwacji jest równoznaczne z\n moją rezygnacją z udziału.`,\n mandatory: true,\n },\n {\n text: `Przyjmuję do wiadomości, że integralną częścią projektu \"Wioska Bullerbyn\" są\n zajęcia o charakterze psychoedukacyjnym. Wyrażam zgodę na udział mojego dziecka w takich zajęciach.`,\n mandatory: true,\n },\n // {\n // text: `Przyjmuję do wiadomości, iż Organizator zastrzega sobie prawo do wykonywania\n // zdjęć podczas trwania wypoczynku dzieci i młodzieży pn. „Wioska Bullerbyn\n // 2024\" oraz udostępnienia ich rodzicom dzieci z danego turnusu a także\n // wykorzystania ich w celu promocji i informacji o działalności edukacyjnej i\n // społecznej Fundacji na stronie internetowej, fanpage’u na portalu Facebook\n // oraz materiałach promocyjnych.`,\n // mandatory: true,\n // },\n {\n text: `Wyrażam zgodę na otrzymywanie drogą elektroniczną na wskazany przeze mnie\n adres e-mail informacji handlowej przez Fundację Bullerbyn na rzecz wspólnoty\n dzieci i dorosłych z siedzibą przy ul. Nieziemska 1, 05-506 Wilcza Góra w\n rozumieniu art. 10 ust. 1 ustawy z 18 lipca 2002 roku o świadczeniu usług\n drogą elektroniczną (Dz. U. 2017 r. nr 144 poz. 1219 z późn. zm.).\n Jednocześnie przyjmuję do wiadomości, że wyrażenie zgody jest dobrowolne a\n zgodę mogę odwołać w każdym czasie.`,\n },\n {\n text: `Wyrażam zgodę na używanie przez Fundację Bullerbyn na rzecz wspólnoty dzieci\n i dorosłych z siedzibą przy ul. Nieziemska 1, 05-506 Wilcza Góra,\n telekomunikacyjnych urządzeń końcowych, których jestem użytkownikiem, dla\n celów marketingu bezpośredniego zgodnie z art. 172 ustawy z dnia 16 lipca\n 2004 r. Prawo telekomunikacyjne (Dz. U. 2018 nr. 171 poz. 138 z późn. zm.).\n Jednocześnie przyjmuję do wiadomości, że wyrażenie zgody jest dobrowolne a\n zgodę mogę odwołać w każdym czasie.`,\n },\n];\n","import DataEntry from \"../common/forms/dataentry\";\nimport React, {Component, ReactElement} from \"react\";\nimport {Conditions} from \"../../service/domain/conditions\";\nimport {ValidationContext} from \"../common/forms/validation\";\nimport {Button, Checkbox} from \"@material-ui/core\";\nimport Field from \"../common/forms/field\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface ConsentInfo {\n checked: {[key: string]: boolean};\n}\n\nexport interface ConsentPageProps {\n values?: ConsentInfo;\n onGoBack(values: ConsentInfo): void;\n onGoNext(values: ConsentInfo): void;\n}\n\ninterface ConsentPageState extends ConsentInfo, ValidationContext {\n checked: {[key: string]: boolean};\n}\n\nexport default class ConsentPage extends Component<\n ConsentPageProps,\n ConsentPageState\n> {\n constructor(props: ConsentPageProps) {\n super(props);\n\n const {values} = props;\n this.state = {errors: {}, ...props.values, checked: values?.checked || {}};\n }\n\n prev(): void {\n this.props.onGoBack(this.state);\n }\n\n async validate(): Promise {\n const {checked} = this.state;\n const errors: {[key: string]: string} = {};\n\n Conditions.filter((item) => !!item.mandatory).forEach((item, index) => {\n if (!checked[index]) {\n // TODO: localization\n errors[index.toString()] = \"Akceptacja jest wymagana\";\n }\n });\n\n this.setState({\n errors,\n });\n return Object.keys(errors).length === 0;\n }\n\n getValues(): ConsentInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n handleChange(index: number) {\n const {checked} = this.state;\n checked[index] = !checked[index];\n this.setState({\n checked: {...checked},\n });\n }\n\n render(): ReactElement {\n const {errors, checked} = this.state;\n return (\n \n
\n

Zgody i oświadczenia

\n
    \n {Conditions.map((item, index) => {\n return (\n
  • \n
    \n this.handleChange(index)}\n />\n
    \n
    \n \n {item.mandatory && (\n *\n )}\n {item.text}\n \n
    \n
  • \n );\n })}\n
\n
\n {Object.keys(errors).length > 0 && }\n
\n \n \n
\n
\n );\n }\n}\n","import {FormControlLabel, Radio, RadioGroup} from \"@material-ui/core\";\nimport React, {ChangeEvent, Component, ReactElement} from \"react\";\nimport {\n AccomodationTerm,\n AccomodationType,\n} from \"../../service/domain/accomodations\";\nimport {IServices} from \"../../service/services\";\nimport {changeHandler} from \"../common/forms/forms\";\nimport Loader from \"../common/loader\";\n\nexport interface AccomodationTermsProps {\n type: AccomodationType;\n childGender: string;\n childBirthYear: number;\n services: IServices;\n onSelect: (item: AccomodationTerm) => void;\n value?: AccomodationTerm;\n}\n\nexport interface AccomodationTermsState {\n loading: boolean;\n terms: AccomodationTerm[];\n accomodationTerm: string | undefined;\n}\n\nexport default class AccomodationTermSelect extends Component<\n AccomodationTermsProps,\n AccomodationTermsState\n> {\n constructor(props: AccomodationTermsProps) {\n super(props);\n\n this.state = {\n loading: true,\n terms: [],\n accomodationTerm: props.value?.id || \"\",\n };\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate(props: AccomodationTermsProps) {\n const {type, childBirthYear, childGender} = this.props;\n\n if (\n props.type !== type ||\n props.childBirthYear !== childBirthYear ||\n props.childGender !== childGender\n ) {\n this.load();\n }\n }\n\n async load(): Promise {\n this.setState({\n loading: true,\n });\n\n const {type} = this.props;\n\n const terms = await this.props.services.accomodations.getAvailableTerms(\n type\n );\n\n terms.sort((a: AccomodationTerm, b: AccomodationTerm) => {\n if (a.name > b.name) return 1;\n if (a.name < b.name) return -1;\n return 0;\n });\n\n this.setState({\n loading: false,\n terms,\n });\n }\n\n onChange(\n event: ChangeEvent<\n HTMLInputElement | HTMLTextAreaElement | {name?: string; value: unknown}\n >\n ): void {\n // user's interaction\n changeHandler.call(this, event);\n\n const item = this.state.terms.find(\n (item) => item.id === event.target.value\n );\n\n if (item) {\n this.props.onSelect(item);\n }\n }\n\n getAvailablePlacesForGender(item: AccomodationTerm): number {\n const {childGender} = this.props;\n\n if (childGender === \"M\") {\n return item.freeSpotsMale;\n }\n\n return item.freeSpotsFemale;\n }\n\n render(): ReactElement {\n const {loading, terms, accomodationTerm} = this.state;\n\n if (loading) {\n return ;\n }\n\n if (!terms.length) {\n // This should never happen!\n return (\n
\n Brak miejsc\n
\n );\n }\n\n const name = \"accomodationTerm\";\n\n return (\n
\n \n {terms.map((item) => {\n const freeSpots = this.getAvailablePlacesForGender(item);\n return (\n
\n }\n label={item.name}\n disabled={freeSpots < 1}\n />\n {freeSpots > 0 && (\n \n Wolne miejsca: {freeSpots}\n \n )}\n {freeSpots < 1 && (\n Brak miejsc\n )}\n
\n );\n })}\n \n
\n );\n }\n}\n","import {\n Button,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport {\n AccomodationTerm,\n AccomodationType,\n getAccomodationTypesOptionsByBirthYear,\n} from \"../../service/domain/accomodations\";\nimport {Voucher, VouchersApi} from \"../../service/domain/vouchers\";\nimport {IServices} from \"../../service/services\";\nimport DataEntry from \"../common/forms/dataentry\";\nimport Field from \"../common/forms/field\";\nimport {changeHandler} from \"../common/forms/forms\";\nimport Radios from \"../common/forms/radios\";\nimport {NamedItem} from \"../common/forms/select-named\";\nimport {\n Required,\n ValidationContext,\n ValidationResult,\n ValidationRule,\n ValidationSchema,\n} from \"../common/forms/validation\";\nimport AccomodationTermSelect from \"./accomodation-terms\";\nimport ErrorSummary from \"../common/forms/error-summary\";\n\nexport interface AccomodationInfo {\n accomodationType?: AccomodationType;\n accomodationTerm?: AccomodationTerm;\n alternativeTerms?: string;\n status?: string;\n voucher: string;\n voucherItem: Voucher | null;\n}\n\nexport interface AccomodationInfoPageProps {\n childBirthYear: number;\n childGender: string;\n values?: AccomodationInfo;\n services: IServices;\n onGoBack(values: AccomodationInfo): void;\n onGoNext(values: AccomodationInfo): void;\n}\n\ninterface AccomodationInfoPageState\n extends AccomodationInfo,\n ValidationContext {\n loadingTerms: boolean;\n}\n\ninterface StatusOption extends NamedItem {\n price: number;\n}\n\nclass VoucherValidator extends ValidationRule {\n constructor(\n api: VouchersApi,\n onVoucherFetched: (item: Voucher | null) => void\n ) {\n super(\n \"voucher\",\n (\n context: AccomodationInfo,\n value: string\n ): Promise => {\n // TODO: shot the API, check value, return error\n return new Promise((resolve, reject) => {\n if (!value) {\n resolve();\n return;\n }\n\n api.getVoucherByCode(value).then(\n (voucher: Voucher | null) => {\n onVoucherFetched(voucher);\n if (!voucher) {\n // voucher not found\n resolve({\n error: \"Nie znaleziono kuponu\",\n });\n return;\n }\n\n if (voucher.isUsed) {\n // voucher already used\n resolve({\n error: \"Kupon został już wykorzystany\",\n });\n return;\n }\n\n resolve();\n },\n () => {\n resolve({\n error: \"Wystąpił błąd techniczny podczas weryfikacji kuponu\",\n });\n }\n );\n });\n }\n );\n }\n}\n\nexport default class AccomodationInfoPage extends Component<\n AccomodationInfoPageProps,\n AccomodationInfoPageState\n> {\n schema: ValidationSchema;\n\n constructor(props: AccomodationInfoPageProps) {\n super(props);\n\n this.state = {\n errors: {},\n loadingTerms: false,\n accomodationTerm: undefined,\n voucher: \"\",\n voucherItem: null,\n ...props.values,\n };\n\n this.schema = new ValidationSchema(\n {\n accomodationType: [\n new Required({\n errorMessage: \"Proszę wybrać opcję\",\n }),\n ],\n accomodationTerm: [\n new Required({\n errorMessage: \"Proszę wybrać opcję\",\n }),\n ],\n alternativeTerms: [],\n status: [\n new Required({\n errorMessage: \"Proszę wybrać opcję\",\n }),\n ],\n voucher: [\n new VoucherValidator(\n props.services.vouchers,\n (voucher: Voucher | null) => {\n this.setState({voucherItem: voucher});\n }\n ),\n ],\n voucherItem: [],\n },\n (result) => {\n this.setState({errors: result.errors});\n }\n );\n }\n\n prev(): void {\n this.setState({\n accomodationTerm: undefined,\n });\n this.props.onGoBack(this.state);\n }\n\n async validate(): Promise {\n const pageValidation = await this.schema.validate(this.state);\n return !pageValidation.hasErrors;\n }\n\n getValues(): AccomodationInfo {\n return this.state;\n }\n\n next(): void {\n this.validate().then((success: boolean) => {\n if (success) {\n this.props.onGoNext(this.getValues());\n }\n });\n }\n\n onAccomodationTypeSelect(value: NamedItem) {\n this.setState({\n accomodationType: value.id as AccomodationType,\n accomodationTerm: undefined,\n });\n }\n\n onAccomodationTermSelect(value: AccomodationTerm) {\n this.setState({\n accomodationTerm: value,\n });\n }\n\n onUpdate(errors: {[key: string]: string | undefined}): void {\n this.setState({errors});\n }\n\n priceLabel(price: number): string {\n return `${(Math.round(price * 100) / 100).toFixed(2)} PLN`;\n }\n\n getStatusOptions(): StatusOption[] {\n // TODO: use base price\n const {accomodationTerm} = this.state;\n\n if (accomodationTerm === undefined) {\n return [];\n }\n\n const price = accomodationTerm?.price;\n return [\n {\n id: \"first-time\",\n name: \"pierwszy udział w projekcie Fundacji Bullerbyn\",\n price: price,\n },\n {\n id: \"another-time\",\n name: \"kolejny udział w projekcie Fundacji Bullerbyn\",\n price: price - 100,\n },\n ];\n }\n\n render(): ReactElement {\n const {childBirthYear, childGender, services} = this.props;\n const {\n errors,\n accomodationType,\n accomodationTerm,\n alternativeTerms,\n status,\n voucher,\n } = this.state;\n const accomodationTypes =\n getAccomodationTypesOptionsByBirthYear(childBirthYear);\n const canSubmit = accomodationTerm && status;\n return (\n \n
\n

Turnus i zakwaterowanie

\n
\n
Zakwaterowanie
\n
\n \n \n \n
\n {accomodationType !== undefined && (\n \n
Turnus
\n
\n \n \n \n
\n
\n \n
\n
\n \n\n \n Jeżeli nie ma już miejsca w interesującym Cię turnusie to\n wpisz dziecko na listę rezerwową.\n \n Link do formularza rezerwowego (otwiera się na nowej\n stronie)\n \n \n
\n
\n )}\n
\n {accomodationTerm !== undefined && (\n \n

Opłaty

\n
\n
Status podopiecznego
\n
\n \n \n {this.getStatusOptions().map((item) => {\n return (\n
\n }\n label={item.name}\n />\n \n cena: {this.priceLabel(item.price)}\n \n
\n );\n })}\n \n
\n
\n
\n
\n )}\n
\n {Object.keys(errors).length > 0 && }\n
\n \n this.next()}\n variant=\"contained\"\n color=\"primary\"\n disabled={!canSubmit}\n >\n Zatwierdź\n \n
\n
\n );\n }\n}\n","// Error for developers: use this to throw exceptions when a developer is\n// using something not in the intended way\nexport class InterfaceError extends Error {}\n\n// Error for user's input value errors\nexport class ValueError extends Error {\n private _invalidValue: T;\n\n public get value(): T {\n return this._invalidValue;\n }\n\n constructor(value: T, message?: string) {\n super(message);\n this._invalidValue = value;\n }\n}\n\nexport class ParseError extends ValueError {}\n\nexport class InvalidOption extends Error {}\n\nexport class UnsupportedFileType extends InvalidOption {\n constructor(fileType: string) {\n super(`Unsupported file type: ${fileType}`);\n }\n}\n\n// Example error:\n// {\n// \"error\": \"A user with given email address ... already belongs...\",\n// \"details\": null,\n// \"code\": \"UserAlreadyInOrganization\"\n// }\n\nexport interface ErrorDetails {\n error: string;\n details: string | null;\n code: string | null;\n}\n\nexport class ApplicationError extends Error {\n status: number;\n data?: ErrorDetails | string;\n retry?: () => void;\n\n constructor(\n message: string,\n statusCode: number,\n data?: ErrorDetails | string\n ) {\n super(message);\n this.status = statusCode;\n this.retry = undefined;\n this.data = data;\n }\n\n allowRetry(): boolean {\n return this.status === 500;\n }\n}\n\nexport class NotFoundError extends ApplicationError {\n constructor(message: string = \"Object not found\") {\n super(message, 404);\n }\n}\n\nexport class UnauthorizedError extends ApplicationError {\n constructor(message: string = \"Unauthorized\") {\n super(message, 401);\n }\n}\n\nexport class ForbiddenError extends ApplicationError {\n constructor(message: string = \"Forbidden\") {\n super(message, 403);\n }\n}\n","import {ApplicationError} from \"../../common/errors\";\nimport {AlertSeverity} from \"./alert\";\n\nexport interface ErrorRepresentation {\n title: string;\n message: string;\n severity: AlertSeverity;\n}\n\nconst TechnicalError = {\n title: \"Błąd techniczny\",\n message: `Wystąpił nieoczekiwany błąd. Skontaktuj się z administratorami\n serwisu, jeśli problem będzie się powtarzał.`,\n severity: AlertSeverity.error,\n};\n\n/**\n * Maps an instance of ApplicationError to an object that describes it.\n */\nexport function reprError(error: ApplicationError): ErrorRepresentation {\n if (!(error instanceof ApplicationError)) {\n // this can happen in TypeScript;\n // caught exceptions are `any` and it is comfortable to handle any\n // exception here, even when we think we should receive a specific type\n return TechnicalError;\n }\n\n switch (error.status) {\n case 202:\n return {\n title: \"Accepted\",\n message:\n error.message ||\n \"The operation has been accepted for processing, \" +\n \"but it has not been completed.\",\n severity: AlertSeverity.info,\n };\n case 419: // custom\n return {\n title: \"Warning\",\n message: error.message,\n severity: AlertSeverity.warning,\n };\n case 404:\n return {\n title: \"Object not found\",\n message: error.message,\n severity: AlertSeverity.warning,\n };\n case 401:\n return {\n title: \"Unauthorized\",\n message: error.message || \"Your session might have expired.\",\n severity: AlertSeverity.warning,\n };\n case 403:\n return {\n title: \"Forbidden\",\n message:\n error.message ||\n \"You are not authorized to complete the requested operation.\",\n severity: AlertSeverity.warning,\n };\n case 409:\n return {\n title: \"Conflict\",\n message:\n error.message ||\n \"You are not authorized to complete the requested operation.\",\n severity: AlertSeverity.warning,\n };\n default:\n return TechnicalError;\n }\n}\n","import HighlightOff from \"@material-ui/icons/HighlightOff\";\nimport React, {Component, ReactElement} from \"react\";\nimport {iconBySeverity} from \"./alert\";\nimport {ApplicationError, ErrorDetails} from \"../../common/errors\";\nimport {Button} from \"@material-ui/core\";\nimport {reprError} from \"./errors-repr\";\n\nexport interface ErrorProps {\n error: ApplicationError | any;\n dismiss?: () => void;\n}\n\nfunction reprDetails(data: ErrorDetails | string) {\n if (typeof data === \"string\") {\n return data;\n }\n\n return JSON.stringify(data, undefined, 2);\n}\n\nexport default class ErrorPanel extends Component {\n render(): ReactElement {\n const {error, dismiss} = this.props;\n\n let details = \"\";\n const {title, message, severity} = reprError(error);\n\n if (error instanceof ApplicationError && error.data) {\n details = reprDetails(error.data);\n }\n\n const retry = error.retry;\n\n return (\n
\n
\n
{iconBySeverity(severity)}
\n

{title}

\n {dismiss !== undefined ? (\n dismiss()}\n className=\"dismiss-btn\"\n >\n \n \n ) : (\n \n )}\n

{message}

\n {details &&
{details}
}\n {retry !== undefined ? (\n retry()}\n color=\"secondary\"\n >\n Try again\n \n ) : null}\n
\n
\n );\n }\n}\n","/**\n * Reads application settings from metadata elements inside index.html.\n * This way settings can be conveniently modified and\n * configured by environment in automation pipelines, even after the code is\n * built by webpack tasks.\n */\nfunction readFromMetadataElement(settingId: string): string {\n const element = document.getElementById(settingId);\n\n if (element === null) {\n throw new Error(`Missing \"${settingId}\" metadata element.`);\n }\n\n const value = element.getAttribute(\"content\");\n\n if (!value) {\n throw new Error(`Invalid \"${settingId}\" metadata element: missing value.`);\n }\n\n return value;\n}\n\nclass ServiceSettings {\n private _apiURL: string;\n private _monitoringKey: string;\n\n public get apiURL(): string {\n return this._apiURL;\n }\n\n public get monitoringKey(): string {\n return this._monitoringKey;\n }\n\n constructor() {\n const apiURL = readFromMetadataElement(\"api-url\");\n this._apiURL = apiURL === \"/\" ? \"\" : apiURL;\n this._monitoringKey = readFromMetadataElement(\"monitoring-key\");\n }\n}\n\nexport default new ServiceSettings();\n","import ServiceSettings from \"./settings\";\nimport {ApplicationInsights} from \"@microsoft/applicationinsights-web\";\n\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: ServiceSettings.monitoringKey,\n enableAutoRouteTracking: true,\n },\n});\nappInsights.loadAppInsights();\nappInsights.trackPageView();\n\nexport function tryTrackEvent(name: string): void {\n try {\n appInsights.trackEvent({name});\n } catch {\n // do nothing\n console.info(\"Error while tracking user event\", name);\n }\n}\n\nexport default appInsights;\n","import React, {Component, ReactElement} from \"react\";\nimport {IServices} from \"../../service/services\";\nimport OptionalInfoPage, {OptionalInfo} from \"./optional-extra-info-page\";\nimport ChildInfoPage, {ChildInfo} from \"./child-info-page\";\nimport HealthInfoPage, {HealthInfo} from \"./health-info-page\";\nimport ParentsInfoPage, {ParentsInfo} from \"./parents-info-page\";\nimport ConsentPage, {ConsentInfo} from \"./consent-page\";\nimport AccomodationInfoPage, {AccomodationInfo} from \"./accomodation-page\";\nimport Loader from \"../common/loader\";\nimport ErrorPanel from \"../common/error\";\nimport {ApplicationError} from \"../../common/errors\";\nimport {tryTrackEvent} from \"../../service/monitoring\";\n\nexport interface SurveyProps {\n services: IServices;\n}\n\nexport interface SurveyState {\n page: number;\n childInfo?: ChildInfo;\n parentsInfo?: ParentsInfo;\n healthInfo?: HealthInfo;\n optionalInfo?: OptionalInfo;\n consentInfo?: ConsentInfo;\n accomodationInfo?: AccomodationInfo;\n submitting: boolean;\n error?: ApplicationError;\n confirmationTitle: string;\n confirmationMessage: string;\n}\n\nconst pages: {[key: number]: string} = {\n 1: \"Child Info Page\",\n 2: \"Parents Info Page\",\n 3: \"Health Info Page\",\n 4: \"Additional Info Page\",\n 5: \"Consent Page\",\n 6: \"Accomodation Page\",\n};\n\nexport default class Survey extends Component {\n constructor(props: SurveyProps) {\n super(props);\n\n this.state = {\n page: 1,\n submitting: false,\n confirmationTitle: \"\",\n confirmationMessage: \"\",\n };\n }\n\n scrollToTop(): void {\n window.scrollTo({top: 0, behavior: \"smooth\"});\n }\n\n goBack(key: keyof SurveyState, values: any) {\n const {page} = this.state;\n this.goTo(page - 1, key, values);\n }\n\n goNext(key: keyof SurveyState, values: any) {\n const {page} = this.state;\n this.goTo(page + 1, key, values);\n }\n\n goTo(page: number, key: keyof SurveyState, values: any): void {\n this.setState({\n page,\n [key]: values,\n submitting: false,\n confirmationMessage: \"\",\n confirmationTitle: \"\",\n });\n this.scrollToTop();\n\n tryTrackEvent(`User navigates to ${pages[page]}`);\n }\n\n goNextEmpty() {\n this.setState({page: this.state.page - 1});\n this.scrollToTop();\n }\n\n async complete(): Promise {\n const {submitting} = this.state;\n if (submitting) {\n return;\n }\n\n tryTrackEvent(\"User submits the application\");\n\n this.setState({\n submitting: true,\n error: undefined,\n });\n\n const {\n childInfo,\n parentsInfo,\n healthInfo,\n optionalInfo,\n accomodationInfo,\n consentInfo,\n } = this.state;\n const birthDate = childInfo?.childBirthDate;\n const address = parentsInfo?.address;\n\n if (\n !childInfo ||\n !parentsInfo ||\n !birthDate ||\n !address ||\n !healthInfo ||\n !optionalInfo ||\n !accomodationInfo ||\n !consentInfo\n ) {\n throw new Error(\"Missing data\");\n }\n\n try {\n const result = await this.props.services.applications.submit({\n child: {\n firstName: childInfo.childFirstName,\n lastName: childInfo.childLastName,\n documentId: childInfo.childPesel,\n class: parseInt(childInfo.childClass),\n birthDate: {\n year: birthDate.getFullYear(),\n month: birthDate.getMonth() + 1,\n day: birthDate.getDate(),\n },\n gender: childInfo.childGender,\n },\n parents: {\n parentOneFirstName: parentsInfo.parentOneFirstName,\n parentOneLastName: parentsInfo.parentOneLastName,\n parentTwoFirstName: parentsInfo.parentTwoFirstName,\n parentTwoLastName: parentsInfo.parentTwoLastName,\n parentOnePhoneNumber: parentsInfo.parentOnePhoneNumber,\n parentOneEmailAddress: parentsInfo.parentOneEmailAddress,\n parentTwoPhoneNumber: parentsInfo.parentTwoPhoneNumber,\n parentTwoEmailAddress: parentsInfo.parentTwoEmailAddress,\n address: {\n city: address.city,\n country: address.country,\n voivodeship: address.voivodeship,\n warsawDistrict: address.community,\n street: address.street,\n zipCode: address.zipCode,\n },\n },\n health: {\n diseases: healthInfo.healthIssues || \"\",\n dietInfo: healthInfo.diet || \"\",\n developmentDisorders: healthInfo.developmentDisorders || \"\",\n },\n additionalInfo: {\n siblings: optionalInfo.siblings,\n friends: optionalInfo.friends,\n alternativeTerms: accomodationInfo.alternativeTerms || \"\",\n knownThanksTo: optionalInfo.sourceInfo,\n },\n accomodation: {\n termId: accomodationInfo.accomodationTerm?.id || \"\",\n type: accomodationInfo.accomodationType?.toString() || \"\",\n recurringParticipant: accomodationInfo.status === \"another-time\",\n voucher: accomodationInfo.voucher,\n },\n consent: {\n // TODO: this is a quick and dirty solution, assign proper names\n // to consent properties and don't use indexes to get them\n optionalConsent1: consentInfo.checked[\"5\"] || false,\n optionalConsent2: consentInfo.checked[\"6\"] || false,\n },\n });\n\n if (result.error) {\n this.setState({\n submitting: false,\n error: new ApplicationError(result.error, 400),\n });\n } else {\n this.setState({\n submitting: false,\n confirmationTitle: \"Dziękujemy za zgłoszenie!\",\n confirmationMessage:\n \"Potwierdzenie zgoszenia zostanie przesłane na \" +\n \"podany adres e-mail.\",\n });\n }\n } catch {\n this.setState({\n submitting: false,\n error: new ApplicationError(\"Błąd techniczny\", 400),\n });\n }\n }\n\n render(): ReactElement {\n const {services} = this.props;\n const {\n page,\n childInfo,\n parentsInfo,\n healthInfo,\n optionalInfo,\n consentInfo,\n accomodationInfo,\n submitting,\n error,\n confirmationTitle,\n confirmationMessage,\n } = this.state;\n\n if (confirmationTitle && confirmationMessage) {\n return (\n
\n

{confirmationTitle}

\n

{confirmationMessage}

\n
\n );\n }\n\n return (\n
\n

Formularz Zgłoszeniowy Wioska Bullerbyn 2025

\n
\n {page === 1 && (\n \n this.goNext(\"childInfo\", values)\n }\n values={childInfo}\n services={services}\n />\n )}\n {page === 2 && (\n \n this.goNext(\"parentsInfo\", values)\n }\n onGoBack={(values: ParentsInfo) =>\n this.goBack(\"parentsInfo\", values)\n }\n values={parentsInfo}\n />\n )}\n {page === 3 && (\n \n this.goNext(\"healthInfo\", values)\n }\n onGoBack={(values: HealthInfo) =>\n this.goBack(\"healthInfo\", values)\n }\n values={healthInfo}\n />\n )}\n {page === 4 && (\n \n this.goNext(\"optionalInfo\", values)\n }\n onGoBack={(values: OptionalInfo) =>\n this.goBack(\"optionalInfo\", values)\n }\n values={optionalInfo}\n />\n )}\n {page === 5 && (\n \n this.goNext(\"consentInfo\", values)\n }\n onGoBack={(values: ConsentInfo) =>\n this.goBack(\"consentInfo\", values)\n }\n values={consentInfo}\n />\n )}\n {page === 6 && (\n {\n this.setState({\n accomodationInfo: values,\n });\n this.complete();\n }}\n onGoBack={(values: AccomodationInfo) =>\n this.goBack(\"accomodationInfo\", values)\n }\n values={accomodationInfo}\n services={services}\n />\n )}\n {submitting && }\n {error && }\n
\n
\n );\n }\n}\n","import ServiceSettings from \"../settings\";\n\nconst BaseURL = ServiceSettings.apiURL;\nexport {BaseURL};\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport {ApplicationError, NotFoundError} from \"./errors\";\n\nconst JSON_ContentType = \"application/json; charset=utf-8\";\n\n// Exposes a dictionary that can be used by external code to include\n// custom headers in a central place.\nexport const CustomHeaders: {[key: string]: string} = {};\n\n// NB: @typescript-eslint/explicit-module-boundary-types is disabled\n// because JSON.stringify and JSON.parse themselves are typed with `any`.\n// There is no need to be more royal than the king and more saint than the pope\n// Besides, we cannot assume that the server will return a body known to the\n// client.\n\nasync function tryParseBodyAsJSON(response: Response): Promise {\n const contentType = response.headers.get(\"content-type\");\n\n if (contentType !== null && contentType.indexOf(\"json\") > -1) {\n return await response.json();\n }\n\n return await response.text();\n}\n\ninterface AppFetchOptions {\n notFoundIsFine?: boolean;\n}\n\n/**\n * Wrapper around fetch API, with common logic to handle application errors\n * and response bodies.\n *\n * If the server returns 401 Unauthorized, this method tries once to obtain new\n * tokens silently. If that succeeds, the application flow continues\n * transparently, by repeating the original web request with a new token.\n */\nasync function appFetch(\n input: RequestInfo,\n init?: RequestInit,\n options: AppFetchOptions = {}\n): Promise {\n // extend init properties with an access token\n if (init === undefined) {\n init = {\n headers: Object.assign({}, CustomHeaders),\n };\n } else {\n init.headers = Object.assign({}, init.headers, CustomHeaders);\n }\n\n const response = await fetch(input, init);\n\n const data = await tryParseBodyAsJSON(response);\n\n if (response.status === 404) {\n if (options.notFoundIsFine) {\n return null as any;\n }\n throw new NotFoundError();\n }\n\n if (response.status >= 400) {\n throw new ApplicationError(\n \"Response status does not indicate success\",\n response.status,\n data\n );\n }\n\n return data as T;\n}\n\nexport async function get(url: string, headers?: HeadersInit): Promise {\n return await appFetch(url, {\n method: \"GET\",\n headers,\n });\n}\n\nexport async function getOptional(\n url: string,\n headers?: HeadersInit\n): Promise {\n return await appFetch(\n url,\n {\n method: \"GET\",\n headers,\n },\n {notFoundIsFine: true}\n );\n}\n\nexport async function post(url: string, data: any = null): Promise {\n if (!data) {\n return await appFetch(url, {\n method: \"POST\",\n });\n }\n\n return await appFetch(url, {\n method: \"POST\",\n body: JSON.stringify(data),\n headers: {\n \"Content-Type\": JSON_ContentType,\n },\n });\n}\n\nexport async function patch(url: string, data: any): Promise {\n return await appFetch(url, {\n method: \"PATCH\",\n body: JSON.stringify(data),\n headers: {\n \"Content-Type\": JSON_ContentType,\n },\n });\n}\n\nexport async function put(url: string, data: any): Promise {\n return await appFetch(url, {\n method: \"PUT\",\n body: JSON.stringify(data),\n headers: {\n \"Content-Type\": JSON_ContentType,\n },\n });\n}\n\nexport async function del(url: string, data: any = null): Promise {\n if (!data) {\n return await appFetch(url, {\n method: \"DELETE\",\n });\n }\n\n return await appFetch(url, {\n method: \"DELETE\",\n body: JSON.stringify(data),\n headers: {\n \"Content-Type\": JSON_ContentType,\n },\n });\n}\n","import {BaseURL} from \".\";\nimport {get} from \"../../common/fetch\";\nimport {AccomodationTerm, AccomodationsApi} from \"../domain/accomodations\";\n\n// TODO: improve this, fetch the list using the API\n// /api/accomodation-types\nconst ids: {[key: string]: string} = {\n home: \"3010f019-4641-ec11-8c62-6045bd89911e\",\n swedishCottage: \"3fec14fc-4641-ec11-8c62-6045bd89911e\",\n teepee: \"23cb1e7b-4841-ec11-8c62-6045bd89911e\",\n twoweekteepee: \"9620d3a0-4841-ec11-8c62-6045bd89911e\",\n};\n\nexport default class CDSAccomodationsApi implements AccomodationsApi {\n async getAvailableTerms(\n accomodationType: string\n ): Promise {\n return get(\n `${BaseURL}/api/accomodations/${ids[accomodationType]}`\n );\n }\n}\n","import {BaseURL} from \".\";\nimport {post} from \"../../common/fetch\";\nimport {\n ApplicationInput,\n ApplicationOutput,\n ApplicationsApi,\n} from \"../domain/applications\";\n\nexport default class CDSApplicationsApi implements ApplicationsApi {\n async submit(applicationData: ApplicationInput): Promise {\n console.log(JSON.stringify(applicationData, null, 2));\n return post(\n `${BaseURL}/api/application`,\n applicationData\n );\n }\n}\n","import {BaseURL} from \".\";\nimport {getOptional} from \"../../common/fetch\";\nimport {Child, PersonsApi} from \"../domain/persons\";\n\nexport default class CDSPersonsApi implements PersonsApi {\n async getChild(\n documentNumber: string,\n firstName: string,\n lastName: string\n ): Promise {\n const query =\n `?documentId=${documentNumber}` +\n `&firstName=${firstName}` +\n `&lastName=${lastName}`;\n return getOptional(\n `${BaseURL}/api/participants/participant${query}`\n );\n }\n}\n","import {BaseURL} from \".\";\nimport {getOptional} from \"../../common/fetch\";\nimport {Voucher, VouchersApi} from \"../domain/vouchers\";\n\nexport default class CDSVouchersApi implements VouchersApi {\n async getVoucherByCode(code: string): Promise {\n return getOptional(`${BaseURL}/api/vouchers/${code}`);\n }\n}\n","import CDSAccomodationsApi from \"./api/accomodations\";\nimport CDSApplicationsApi from \"./api/applications\";\nimport CDSPersonsApi from \"./api/persons\";\nimport CDSVouchersApi from \"./api/vouchers\";\nimport {AccomodationsApi} from \"./domain/accomodations\";\nimport {ApplicationsApi} from \"./domain/applications\";\nimport {PersonsApi} from \"./domain/persons\";\nimport {VouchersApi} from \"./domain/vouchers\";\n\nexport interface IServices {\n persons: PersonsApi;\n accomodations: AccomodationsApi;\n applications: ApplicationsApi;\n vouchers: VouchersApi;\n}\n\nexport const Services: IServices = {\n persons: new CDSPersonsApi(),\n accomodations: new CDSAccomodationsApi(),\n vouchers: new CDSVouchersApi(),\n applications: new CDSApplicationsApi(),\n};\n","import Head from \"./common/head\";\nimport MainBanner from \"./common/main-banner\";\nimport React, {ReactElement} from \"react\";\nimport Survey from \"./survey/survey\";\nimport {Services} from \"../service/services\";\n\nexport default function Home(): ReactElement {\n return (\n
\n \n \n \n \n
\n );\n}\n","import {Button} from \"@material-ui/core\";\nimport React, {Component, ReactElement} from \"react\";\nimport WizardPage from \"./page\";\n\nexport interface WizardProps {\n pages: WizardPage[]; // React.ReactNode[];\n}\n\nexport interface WizardState {\n pageNumber: number;\n}\n\nexport default class Wizard extends Component {\n constructor(props: WizardProps) {\n super(props);\n\n this.state = {\n pageNumber: 0,\n };\n }\n\n back(): void {\n const {pageNumber} = this.state;\n this.setState({pageNumber: pageNumber - 1});\n }\n\n next(): void {\n const {pageNumber} = this.state;\n this.setState({pageNumber: pageNumber + 1});\n }\n\n render(): ReactElement {\n const {pages} = this.props;\n const {pageNumber} = this.state;\n\n const page = pages[pageNumber];\n\n return (\n
\n {page}\n
\n {pageNumber > 0 && }\n \n
\n
\n );\n }\n}\n","import React, {Component, ReactElement} from \"react\";\n\nexport interface WizardPageProps {\n title: string;\n children: React.ReactNode;\n validate?: () => Promise;\n}\n\nexport interface WizardPageState {\n complete: boolean;\n}\n\nexport default class WizardPage extends Component<\n WizardPageProps,\n WizardPageState\n> {\n constructor(props: WizardPageProps) {\n super(props);\n\n this.state = {\n complete: false,\n };\n }\n\n async validate(): Promise {\n if (this.props.validate) this.props.validate();\n }\n\n render(): ReactElement {\n return (\n
\n

{this.props.title}

\n {this.props.children}\n
\n );\n }\n}\n","import Head from \"./common/head\";\nimport MainBanner from \"./common/main-banner\";\nimport React, {ReactElement} from \"react\";\nimport Wizard from \"./common/wizard/wizard\";\nimport WizardPage from \"./common/wizard/page\";\n\nexport default function Test(): ReactElement {\n return (\n
\n \n \n
\n \n

One

\n ,\n \n

Two

\n
,\n \n

Three

\n
,\n ]}\n />\n
\n
\n
\n );\n}\n","import React, {Component, ReactElement} from \"react\";\nimport {BrowserRouter as Router, Route, Switch} from \"react-router-dom\";\nimport {getRoutes} from \"./routes\";\n\ninterface LayoutProps {\n foo?: boolean;\n}\n\ninterface LayoutState {\n foo?: boolean;\n}\n\nexport default class Layout extends Component {\n render(): ReactElement {\n const routes = getRoutes();\n\n return (\n \n
\n \n {routes.map((route, index) => (\n \n {route.main}\n \n ))}\n \n
\n
\n );\n }\n}\n","import {ReactElement} from \"react\";\nimport Home from \"./home\";\nimport Test from \"./test\";\n\ninterface Route {\n path: string;\n exact: boolean;\n main: () => ReactElement;\n}\n\nexport function getRoutes(): Route[] {\n return [\n {\n path: \"/\",\n exact: true,\n main: Home,\n },\n {\n path: \"/test\",\n exact: true,\n main: Test,\n },\n ];\n}\n","import getMuiTheme from \"./components/theme\";\nimport Layout from \"./components/layout\";\nimport React from \"react\";\nimport {CssBaseline, ThemeProvider} from \"@material-ui/core\";\nimport \"./service/monitoring\";\nimport \"./styles/global.scss\";\n\nfunction App(): React.ReactElement {\n return (\n \n \n \n \n );\n}\n\nexport default App;\n","import {createMuiTheme, Theme} from \"@material-ui/core/styles\";\nimport red from \"@material-ui/core/colors/red\";\n\n// primary #56073e 94146d?\n// secondary #398ec1 177f63?\n\nexport default function getMuiTheme(): Theme {\n return createMuiTheme({\n palette: {\n primary: {\n main: \"#175080\",\n },\n secondary: {\n main: \"#5a4700\",\n },\n error: {\n main: red.A400,\n },\n background: {\n default: \"#fff\",\n },\n },\n props: {\n MuiButton: {\n variant: \"outlined\",\n color: \"primary\",\n },\n MuiTextField: {\n variant: \"outlined\",\n color: \"primary\",\n },\n MuiCheckbox: {\n color: \"primary\",\n },\n MuiRadio: {\n color: \"primary\",\n },\n },\n });\n}\n","import {ReportHandler} from \"web-vitals\";\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import(\"web-vitals\").then(({getCLS, getFID, getFCP, getLCP, getTTFB}) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./app\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nReactDOM.render(, document.getElementById(\"root\"));\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}