{"version":3,"sources":["const.js","helpers.js","validators.js","sorters.js","serializers.js","context/menuContext.js","context/user-context.js","fetch.js","urls/frontend.js","components/vars/vars.js","components/common/Text.js","components/common/atoms/Loader.js","static/img/loading.svg","components/common/atoms/LoaderIcon.js","components/common/Box.js","components/common/Breadcrumps.js","components/common/GridCustom.js","components/common/ButtonStyled.js","components/common/ButtonCreatePdf.js","components/common/Container.js","components/common/DateCalendar.js","components/common/FieldWithLabel.js","components/common/Select.js","components/common/DateSelect.js","components/common/DialogCustom.js","components/common/Ellipsis.js","components/common/GridCellCustom.js","components/common/LinearProgressCustom.js","components/common/MenuBasic.js","components/common/MenuDrawer.js","static/img/fe_ue_logos.png","components/common/Message.js","components/common/molecules/AuditData.js","components/common/molecules/CancelSaveButtonsRow.js","components/common/molecules/ErrorList.js","components/common/molecules/FetchErrorWithOkayButton.js","components/common/molecules/FiltersButton.js","components/common/molecules/InfoTextWithIcon.js","components/common/molecules/NotPermittedPage.js","components/common/molecules/PaginatedListHeader.js","components/common/molecules/SortersSelect.js","components/common/MoreOptionsButton.js","components/common/NextStep.js","components/common/TextFieldCustom.js","components/common/NumberTextField.js","components/common/NotFoundPage.js","components/common/OfferStatus.js","urls/api.js","components/common/organisms/DeleteImplementationLevel.js","components/common/organisms/ImplementationLevelForm.js","hooks/permissionsHooks.js","hooks/useFetchApi.js","components/layoutElements/implementationLevelsManagement/Activities.js","components/layoutElements/implementationLevelsManagement/ImplementationLevelTableRow.js","components/layoutElements/implementationLevelsManagement/Institutions.js","components/layoutElements/implementationLevelsManagement/PerspectivesTableRow.js","components/layoutElements/implementationLevelsManagement/Perspectives.js","components/layoutElements/implementationLevelsManagement/Priorities.js","components/layoutElements/implementationLevelsManagement/Programmes.js","components/layoutElements/implementationLevelsManagement/Regions.js","components/layoutElements/implementationLevelsManagement/Subactivities.js","components/common/organisms/ImplementationLevelManagement.js","components/common/organisms/SortersFiltersRow.js","components/common/Pagination.js","components/common/PdfHeader.js","components/common/SkipLinks.js","components/common/Steps.js","components/common/TableCustom.js","components/common/WysiwygEditor.js","components/layoutElements/uzytkownicy/BladLogowania.js","components/layoutElements/uzytkownicy/FiltryUzytkownikow.js","components/layoutElements/common/BaseComponent.js","components/layoutElements/common/DanePodmiotu.js","components/layoutElements/common/FormDanePodmiotuFields.js","foreignCountries.js","components/layoutElements/common/FormKraj.js","components/layoutElements/common/FormMiejscowosc.js","components/layoutElements/common/ProjectNumberSelectsWithPerspectives.js","components/layoutElements/common/Zalacznik.js","components/layoutElements/common/Zalaczniki.js","components/layoutElements/common/ZalacznikiSelect.js","components/layoutElements/uzytkownicy/FormDanePodmiotu.js","components/layoutElements/uzytkownicy/FormOsobaDoKontaktu.js","components/layoutElements/uzytkownicy/Logowanie.js","helpers_permissions.js","components/layoutElements/uzytkownicy/PermissionList.js","components/layoutElements/uzytkownicy/PermissionsMoreOptionButton.js","components/layoutElements/uzytkownicy/PermissionListImplementationLevelCellProgrammePriorityActivity.js","components/layoutElements/uzytkownicy/PermissionListImplementationLevelCell.js","components/layoutElements/uzytkownicy/PermissionListRow.js","components/layoutElements/uzytkownicy/PermissionsHistoryListRow.js","components/layoutElements/uzytkownicy/PermissionsHistory.js","components/layoutElements/uzytkownicy/UserPermissionsListGrantedCell.js","components/layoutElements/uzytkownicy/UserPermissionsListRow.js","components/layoutElements/uzytkownicy/PermissionUsers.js","components/layoutElements/uzytkownicy/SearchUserForm.js","components/layoutElements/uzytkownicy/UserHeader.js","components/layoutElements/uzytkownicy/UserPermissionsFormCommonFields.js","components/layoutElements/uzytkownicy/UserPermissionsAdministrationForm.js","components/layoutElements/uzytkownicy/UserPermissionsImplementationLevelFields.js","components/layoutElements/uzytkownicy/UserPermissionsImplementationLevelForm.js","components/layoutElements/uzytkownicy/UserPermissionsRemovingPermissionDialog.js","components/layoutElements/uzytkownicy/Permissions.js","components/layoutElements/uzytkownicy/ProfilUzytkownika.js","components/layoutElements/uzytkownicy/SessionDialog.js","components/layoutElements/uzytkownicy/Sesja.js","components/layoutElements/uzytkownicy/UserContactPersonsList.js","components/layoutElements/uzytkownicy/UserDataForm.js","components/layoutElements/uzytkownicy/UserEconomicSubjectData.js","components/layoutElements/uzytkownicy/User.js","filters.js","components/layoutElements/uzytkownicy/Uzytkownicy.js","components/layoutElements/uzytkownicy/Users.js","components/layoutElements/zarzadzanieTrescia/DraftToComponents.js","components/layoutElements/zarzadzanieTrescia/Ciasteczka.js","components/layoutElements/zarzadzanieTrescia/CiasteczkaFront.js","components/layoutElements/zarzadzanieTrescia/DraftToPdf.js","components/layoutElements/zarzadzanieTrescia/FormCiasteczka.js","components/layoutElements/zarzadzanieTrescia/FormKomunikat.js","components/layoutElements/LandingPage.js","context/advertisementContext.js","components/layoutElements/ogloszenia/FormPublikowanie.js","components/layoutElements/ogloszenia/AlreadyPublishedInfo.js","components/layoutElements/ogloszenia/BaseStepComponent.js","components/layoutElements/ogloszenia/FormKryteriumOceny.js","components/layoutElements/ogloszenia/Zamowienie.js","components/layoutElements/ogloszenia/StepCzesciKryteria.js","components/layoutElements/ogloszenia/hoc/withStepConfiguration.js","components/layoutElements/ogloszenia/StepPozostale.js","components/layoutElements/ogloszenia/FormKodCPV.js","components/layoutElements/ogloszenia/KodyCPV.js","components/layoutElements/ogloszenia/FormMiejsceRealizacji.js","components/layoutElements/ogloszenia/MiejsceRealizacji.js","components/layoutElements/ogloszenia/MiejscaRealizacji.js","components/layoutElements/ogloszenia/FormPrzedmiotZamowienia.js","components/layoutElements/ogloszenia/PrzedmiotZamowienia.js","components/layoutElements/ogloszenia/StepPrzedmiotZamowienia.js","components/layoutElements/ogloszenia/FormHarmonogram.js","components/layoutElements/ogloszenia/Harmonogramy.js","components/layoutElements/ogloszenia/StepTerminy.js","components/layoutElements/ogloszenia/FormWarunekUdzialu.js","components/layoutElements/ogloszenia/WarunkiUdzialu.js","components/layoutElements/ogloszenia/StepWarunki.js","components/layoutElements/ogloszenia/StepZalaczniki.js","components/layoutElements/ogloszenia/FormOgloszenie.js","components/layoutElements/ogloszenia/Ogloszenia.js","components/layoutElements/zarzadzanieTrescia/PomocEkranowa.js","components/layoutElements/projekty/Form.js","components/layoutElements/projekty/Ogloszenie.js","components/layoutElements/projekty/Projekt.js","components/layoutElements/projekty/Projekty.js","components/layoutElements/newsletter/NewsletterSettingsFilter.js","components/layoutElements/newsletter/NewsletterSettings.js","components/layoutElements/newsletter/FavoritesFilters.js","components/layoutElements/newsletter/Favorites.js","components/layoutElements/zarzadzanieTrescia/TrescPreview.js","components/layoutElements/zarzadzanieTrescia/FormPomoc.js","components/layoutElements/zarzadzanieTrescia/FormRegulamin.js","components/layoutElements/zarzadzanieTrescia/FormTrescOgolna.js","components/layoutElements/zarzadzanieTrescia/Komunikat.js","components/layoutElements/zarzadzanieTrescia/Komunikaty.js","components/layoutElements/zarzadzanieTrescia/KomunikatFront.js","components/layoutElements/zarzadzanieTrescia/KomunikatyFront.js","static/fonts/Roboto-Bold.ttf","static/fonts/Roboto-Italic.ttf","static/fonts/Roboto-Regular-with-special.ttf","components/vars/pdfStyles.js","components/layoutElements/zarzadzanieTrescia/PdfWithDraftContent.js","components/layoutElements/zarzadzanieTrescia/Pomoc.js","components/layoutElements/zarzadzanieTrescia/PomocUsun.js","components/layoutElements/zarzadzanieTrescia/Pomoce.js","components/layoutElements/zarzadzanieTrescia/PomoceFrontPdf.js","components/layoutElements/zarzadzanieTrescia/PomoceFront.js","components/layoutElements/zarzadzanieTrescia/PomocFront.js","components/layoutElements/zarzadzanieTrescia/Regulamin.js","components/layoutElements/zarzadzanieTrescia/Regulaminy.js","components/layoutElements/zarzadzanieTrescia/TresciOgolne.js","components/layoutElements/zarzadzanieTrescia/TrescOgolna.js","components/layoutElements/zarzadzanieTrescia/ZarzadzanieTrescia.js","components/layoutElements/zarzadzanieTrescia/ZoltyPasekFront.js","components/layoutElements/DeklaracjaDostepnosci.js","components/layoutElements/management/AdvertisementDataFilters.js","components/layoutElements/management/AdvertisementListRow.js","components/layoutElements/management/AdvertiserDataFilters.js","components/layoutElements/management/UserDataFilters.js","components/layoutElements/management/AdvertisementsFilters.js","components/layoutElements/management/Advertisements.js","components/layoutElements/management/EditProjectForm.js","components/layoutElements/management/ProjectListRow.js","components/layoutElements/management/ProjectsFilters.js","components/layoutElements/management/Projects.js","components/layoutElements/ogloszenia/FiltryWyszukiwarki.js","components/layoutElements/ogloszenia/FormRozstrzygniecieWariant.js","components/layoutElements/ogloszenia/FormCzescRozstrzygniecia.js","components/layoutElements/oferty/FiltryOfert.js","components/layoutElements/oferty/FormWariant.js","components/layoutElements/oferty/FormOfertaFields.js","components/layoutElements/oferty/FormOferta.js","components/layoutElements/oferty/Oferta.js","components/layoutElements/oferty/OfertaBox.js","components/layoutElements/oferty/OfertaPreview.js","components/layoutElements/oferty/Oferty.js","components/layoutElements/oferty/OfertyOwnerClosedStatus.js","components/layoutElements/oferty/OfertyOffererClosedStatus.js","components/layoutElements/oferty/OfertyOffererPublishedStatus.js","components/layoutElements/oferty/OfertyResolvedStatusPdf.js","components/layoutElements/oferty/OfertyOwnerResolvedStatus.js","components/layoutElements/oferty/OfertyOffererResolvedStatus.js","components/layoutElements/oferty/OfertyOwnerPublishedStatus.js","components/layoutElements/ogloszenia/FormRozstrzygniecie.js","components/layoutElements/ogloszenia/ListaWersji.js","components/layoutElements/ogloszenia/ManageAdvertisementButtons.js","components/layoutElements/pytania/PytaniaForOgloszeniePdf.js","components/layoutElements/pytania/BasePytaniaForOgloszenieWidthPdf.js","components/layoutElements/pytania/FormOdpowiedz.js","components/layoutElements/pytania/FormPytanie.js","components/layoutElements/pytania/Pytanie.js","components/layoutElements/pytania/PytaniaForOgloszenieAnnouncementOwner.js","components/layoutElements/pytania/PytaniaForOgloszenieAnonymous.js","components/layoutElements/pytania/PytaniaForOgloszenieLoggedIn.js","components/layoutElements/ogloszenia/OgloszenieDetails.js","components/layoutElements/ogloszenia/OgloszeniePdf.js","components/layoutElements/ogloszenia/Ogloszenie.js","components/layoutElements/ogloszenia/Wyszukiwarka.js","components/layoutElements/newsletter/Notifications.js","components/layoutElements/newsletter/Newsletter.js","components/layoutElements/subscriptions/UnsubscribeSuccess.js","components/layoutElements/subscriptions/Subscriptions.js","components/Routes.js","components/App.js","static/img/FE_footer.png","serviceWorker.js","index.js"],"names":["SELECT_CLASSNAME","SELECT_INVALID_CLASSNAME","CZY_PROJEKT_CHOICES","PROJECTS_MANAGEMENTS_CHOICES","SEARCH_DATE_CHOICES","SEARCH_CUSTOM_NAME","ADVERTISEMENT_STATUS_FILTERS_CHOICES","map","choice","value","label","MIEJSCE_REALIZACJI_OLD_BK_DICT","NIP_CHARS_IMPORTANCE","PESEL_CHARS_IMPORTANCE","EKRANY","EKRANY_DICT","e","id","EKRANOWA","OGOLNA","USER_STATUS_CHOICES","RODZAJ_ADRESU_CHOICES","RODZAJ_ADRESU_FILTERS_CHOICES","TYP_NUMERU_IDENTYFIKACYJNEGO","TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES","TOKEN_COOKIE_NAME","USER_DATA_COOKIE_NAME","OFERTA_STATUSES","draft","nazwa","submitted","withdrawn","emptyValueList","computeProgress","additionalAttrFilledLen","arguments","length","undefined","additionalAttrLen","filledInputsLen","inputs","document","querySelectorAll","$i","startsWith","includes","parentNode","firstChild","textContent","selectInputs","i","multiselectInputs","selectedOptions","inputsLen","getLastTemporaryId","attribute","subAttributeName","temporaryIds","obj","o","parseInt","temporaryId","Math","max","getLastTemporaryIdFromList","list","fillWithLeadingZero","toString","repeat","datetimeStringToISO","date","replace","dateToString","getFullYear","getMonth","getDate","dateToStringOldBK","datetimeToString","getHours","getMinutes","dateStringToYearMonth","dateString","substring","listOrEmpty","isNotEmpty","stringOrEmpty","setCustomSelectAttributes","selectRef","inputId","current","querySelector","getAttribute","setAttribute","setCustomInputAttributes","inputRef","setAttr","button","style","right","setFocusOnElement","elRef","focus","triggerBodyClick","click","getCookieValue","name","cookie","split","n","v","trim","getAuthTokenCookieValue","authTokenCookieValue","decodeURIComponent","deleteCookie","callback","refreshCookie","maxAge","refreshTimerAfterRequest","statusCode","window","sessionComponent","showUnauthorizedMessage","refreshTimerAfterSativaRequest","handleRefreshSessionTime","countWysiwygChars","content","counter","block","blocks","text","extractYoutubeSrc","url","long_domain","URL","hostname","params","URLSearchParams","searchParams","videoId","pathname","get","splitedPath","_boolToInt","paramString","_timeInSeconds","timeString","match","exec","durationGroups","groups","duration","timeDict","days","hours","minutes","seconds","key","multipleValue","Object","entries","allowedParams","iframeParamName","convertFunc","default_","iframeParams","p","paramStr","keys","protocol","getRodzajAdresuDict","kraj","generatePdfDocument","async","documentComponent","fileName","creatingCallback","blob","pdf","toBlob","saveAs","saveFileFromApi","result","fetch","headers","getBreakIndex","charsList","slicedLine","splittingCharsIndexes","char","lastIndexOf","splitLineByChar","textLength","lines","line","lineLength","entersInLine","isEnter","test","push","missingText","enterIndex","indexOf","realMissingText","breakIndex","roundStringTo","splittedValue","firstPart","slice","padEnd","redirectToLoginView","sessionStorage","setItem","location","search","href","slugify","toLowerCase","sortOrderItems","orderItem1","orderItem2","getSortedOrderItemsFromOrder","orderList","orderItems","order","orderItem","przedmiotyZamowienia","sort","getOrderItemsLength","reformatDanePodmiotu","data","assign","typNumeruIdentyfikacyjnego","filter","t","rodzajAdresu","adres","getPricesRange","prices","pricesDict","maxPriceLength","price","padStart","paddedPriced","min","isAdvertisementLocked","statusDict","checkHasPrev","pageNumber","checkHasNext","paginatedBy","total","ceil","sortProgrammes","programme1","programme2","code","localeCompare","sortImplementationLevelByNumberCode","obj1","obj2","hasSubactivities","perspectiveData","activity_types","activityTypes","hasPerspectiveRegions","hasPerspectiveInstitutions","getActivityUrlByPerspectiveData","getActivityChildUrlByPerspectiveData","serializePerspectiveForSelect","perspectives","getUserFullName","forename","imie","surname","nazwisko","serializeAuditData","createdAt","dataUtworzenia","created_at","createdBy","ktoUtworzyl","created_by","modifiedAt","dataModyfikacji","modified_at","modifiedBy","ktoModyfikowal","modified_by","generateUUIDV4","c","crypto","getRandomValues","Uint8Array","module","exports","checkRequired","checkRequiredPrzedmiotZamowienia","checkListRequired","checkNabor","projectsSelected","checkProjekty","msg","checkSelectRequired","checkDatesDependency","start","end","Date","checkEmail","checkSimilarValueOnList","valueList","message","checkSimilarTitleValueOnList","titleValidatorData","validators","formStep","projectsValidationData","enrollmentValidatorData","contactPersonsValidatorData","advertisementValidators","tytul","projekty","nabor","osobyDoKontaktu","zamowienia_kryteriaOceny","przedmiotyZamowienia_harmonogramy","przedmiotyZamowienia_warunkiUdzialu","publishedAdvertisementOwnerValidators","publishedAdvertisementAdminValidators","zamowienieValidators","kryteriaOceny","kryteriumOcenyValidators","opis","przedmiotZamowieniaValidators","kategoria","podkategoria","kodyCPV","miejscaRealizacji","publishedPrzedmiotZamowieniaValidators","harmonogramValidators","koniecRealizacji","dependent","warunekUdzialuValidators","typ","zalacznikValidators","nested","validateAdvertisementBaseAttributes","advertisement","validatorsDict","z","zamowienia","errors","stepErrors","attrName","error","validateZamowienieAttributes","ogloszenie","validateFieldAttributes","validatePrzedmiotyZamowieniaInZamowienie","validateSzacunkowaWartosc","zamowienie","szacunkowaWartosc","validateKryteriumOcenyAttributes","kryteriumOceny","validatePrzedmiotZamowieniaBaseAttributes","przedmiotZamowienia","isAlreadyPublished","validateHarmonogramAttributes","harmonogram","validateWarunekUdzialuAttributes","warunekUdzialu","validateZalacznikAttributes","zalacznik","objectList","fieldValidators","stepName","attr","validateWysiwygEditor","checkWysiwygEditorRequired","validateSearchFilters","filters","isValid","status","type","from","to","validatePersonalData","isAdresPart","controlSum","checkNip","numerIdentyfikacyjny","checkPesel","checkKodPocztowy","kodPocztowy","validateOsobaDoKontaktu","ADVERTISEMENTS_SORTING_VALUES","PROJECTS_SORTING_VALUES","sortAdvertisements","advertisementList","sortingValue","o1","o2","splittingValue","value1","value2","attribbuteName","sortByAdvertisementNumber","nr1","nr2","year1","userId1","announcementId1","year2","userId2","announcementId2","sortProjects","projectList","p1","p2","sortProgrammeFilter","sortMiejsceRealizacjiFilter","mr1","mr2","v1","v2","setInitialSorterByUrlParam","urlParams","sorters","defaultSorter","sorter","mapServerFront","account_disabled","account_disabled_at","accountDisabled","active","activities","activity","added_at","address","address_type","addressType","advertisements","advertiser_address_details","advertiser_name","answer","attached_advertisements_amount","attachments","category","children","chosen_offer_variant","chosenOfferVariant","comment","commune","contact_persons","country","cpv_items","current_exists","description","dictionaries","economic_subject","economicSubject","email","end_at","enrollment","enrollment_number","estimated_value","evaluation_criteria","expiration_date","file","file_to_load","for_publication_exists","fulfillment_place","fulfillment_places","full_number","general_content","general_content_items","has_advertisements","has_draft","has_draft_advertisements","has_published_advertisements","headline","help","helps","identification_number","identification_number_type","identifier","institution","institutionNumber","is_admin","is_author","is_created_by_advertiser","is_mine","isAdmin","is_protocol","isProtocol","is_refused","is_variant","isVariant","last_publicated_version_id","last_version","locality","no_offer_selected","noOfferSelected","number","number_description","order_node","order_nodes","orderNode","orderNodes","orders","offers","offerset","offersets","order_id","order_items","order_temporary_id","orders_amount","original_content","page","parent","partial_offer_allowed","partial_payment","participation_conditions","perspective","phone_number","planned_sign_date","postcode","poviat","price_criterion","priorities","priority","programme","programmes","project","projects","projects_enrollments","publication_date","question","questions","refusedOfferSets","region","regulations","relatives","relatives_pointing_to_current","screen","settlement","slug","start_at","statement","statements","street","subcategories","subcategory","submission_deadline","supplementary_orders","tax_identification_number","temporary_id","timetable_items","title","terms_of_contract_change","teryt_items","user","userEmail","userForename","userSurname","users","warranty_period","variants","version","voivodeship","yellow_stripe","osoba","account_type","mapFrontServer","aktualnyIstnieje","cena","czyAktywny","czyDopuszczalnaOfertaCzesciowa","czyKryteriumCenowe","czyMaKopieRobocza","czyWariantowe","czyWystepujePlatnoscCzesciowa","czyZoltyPasek","daneAdresoweOgloszeniodawcy","danePodmiotu","dataDodania","dataOpublikowania","dataWaznosci","dataZablokowaniaKonta","doPublikacjiIstnieje","dzialania","dzialanie","dzieci","ekran","emailUzytkownika","gmina","harmonogramy","identyfikator","imieUzytkownika","instytucja","jestAutorem","jestProtokolem","kod","komentarz","komunikat","komunikaty","kontoZablokowane","liczbaZamowien","miejscowosc","naglowek","nazwiskoUzytkownika","nip","numer","numerDomu","numerNaboru","odpowiedz","oferty","ofertyDoUsuniecia","ogloszenia","okresGwarancji","osiePriorytetowe","osPriorytetowa","pakietOfert","perspektywa","planowanyTerminPodpisaniaUmowy","plik","plikDoWgrania","poczatekRealizacji","podkategorie","pomoc","pomoce","powiat","powiazane","powiazaneDlaObecnego","programOperacyjny","programyOperacyjne","projekt","pytania","pytanie","regulaminy","rozdzialNadrzedny","slowniki","strona","numerInstytucji","numerTelefonu","terminOfert","teryty","tresc","trescOgolna","tresciOgolne","trescOryginalna","ulica","uzytkownicy","warianty","warunkiUdzialu","warunkiZmianyUmowy","wojewodztwo","wybranyWariant","zadnaOfertaWybrana","zamowieniaUzupelniajace","zamowieniaNodes","zamowienieId","zamowienieNode","zamowienieTemporaryId","zalaczniki","accountType","serializeObject","object","toServer","nonRecursiveKeys","dateWithTime","serializationDct","serializedObject","serializedName","Array","isArray","serializedObjectList","serializeObjectList","date_","serializeDate","getSerializedObject","config","mapToCamelCaseName","doNotTranslateNames","dateAttributes","dateTimeAttributes","dateTimeToLastMinuteAttributes","removeTemporaryId","mapToCamelCase","getSerializedList","getSerializedDate","part","index","charAt","toUpperCase","join","serializeJsonPathList","serializedList","element","serializeJsonPathObject","findJsonPathErrors","path","getSerializedNestedErrorsFromServer","pathPrefix","nestedFields","attrBasePathPrefix","errors_","baseAttrErrors","objectErrors","subAttrName","subAttrErrors","getSerializedObjectErrorsFormServer","serializedErrors","attrErrors","getSerializedErrorsFromServer","forEach","jp","ERRORS_SERVER_FRONT","translateErrorMessage","serializeOrderItemCategories","categoriesList","categories","cat","subcat","serializeUrlParams","serializationDict","serializedDict","val","MenuContext","createContext","menuLinkKey","refreshBadgesCount","updateMenuKey","refreshBadges","MenuProvider","React","Component","constructor","props","super","this","setState","prevState","state","render","createElement","Provider","Consumer","EMPTY_USER","advertisementManagerType","isAuthor","EMPTY_AUTH","expire","UserContext","auth","permissions","set","setAdvertisementManagerType","refresh","refreshTimer","logout","removePermission","UserProvider","_this","meta","serializePermission","adProjEnrAdm","adProjectEnrollments","usersAdm","usersAdministration","usersAdmUsersAdministration","usersAndPermissionsPreviewListUsers","previewListUsers","usersAdmPermissionsAdministration","permissionsAdministration","usersAndPermissionsPreviewListUsersAuthorized","previewListUsersAuthorized","contentAdm","contentAdministration","contentAdmContentAdministration","contentAdmPermissionsAdministration","implementationLevelsDictionaryAdm","implementationLevelsDictionaryAdministration","implementationLevelsDictionaryAdmPermissionsAdministration","implementationLevelsDictionaryAdmImplementationLevelsDictionaryAdministration","fullUsersAndPermissions","usersPermissionsManagement","functionality","functionalityManagement","permissionsManagement","blockingUsers","projectsEnrollments","projectsEnrollmentsAdministration","searchNPreviewData","advertisementAdministration","fullContent","values","generalContentCookiesRegulation","contentPermissionsManagement","addImplementationLevelPermission","implementationLevelsDictionaryPermissionsManagement","previewDictionaries","previewData","editingDictionaries","editData","first_name","last_name","permissionName","fetchApi","method","body","callbackSuccess","callbackError","callbackIncorrectStatus","callbackShowErrors","xhr","XMLHttpRequest","urlParamsPart","k","subvalue","open","encodeURI","setRequestHeader","timeout","ontimeout","onerror","onload","success","jsonData","JSON","parse","responseText","send","stringify","fetchSativaApi","URLS","home","pattern","login","loginError","advertisementsSearch","advertisementsNew","advertisementsDetails","getUrl","advertisementId","advertisementsDetailsDraft","advertisementsDetailsVersion","advertisementsEdit","newsletter","accessibility","usersDetails","userId","usersMyProfile","managementProjects","managementAdvertisements","managementContents","managementContentsHelps","managementContentsHelpsNew","managementContentsHelpsEdit","managementContentsHelpsDetails","managementContentsRegulations","managementContentsRegulationsCurrent","managementContentsRegulationsForPublishing","managementContentsRegulationsNew","managementContentsRegulationsEdit","managementContentsCookies","managementContentsCookiesNew","managementContentsCookiesEdit","managementContentsGeneralContents","managementContentsGeneralContentsEdit","managementContentsGeneralContentsDetails","managementContentsStatements","managementContentsStatementsNew","managementContentsStatementsEdit","managementContentsStatementsDetails","managementPerspectives","managementProgrammesForPerspective","perspectiveId","managementPrioritiesForProgramme","programmeId","managementSubactivitiesForPriority","priorityId","managementActivitiesForPriority","managementRegionsForSubactivity","activityId","managementInstitutionsForActivity","helpsDetails","subscriptions","statementsDetails","sativaUsersDetails","userIdentifier","colors","primary","secondary","warn","background","disabled","surface","onPrimary","onSecondary","onSurface","onError","darkBg","textPrimaryOnBackground","textSecondaryOnBackground","textHintOnBackground","textDisabledOnBackground","textIconOnBackground","textPrimaryOnLight","textSecondaryOnLight","textHintOnLight","textDisabledOnLight","textIconOnLight","textPrimaryOnDark","textSecondaryOnDark","textHintOnDark","textDisabledOnDark","textIconOnDark","customSelectStyles","input","styles","color","minWidth","fontSize","option","provided","isFocused","isSelected","backgroundColor","fontWeight","borderWidth","singleValue","placeholder","multiValue","multiValueLabel","multiValueRemove","cursor","Text","accentHeader","className","errorColorReverse","htmlFor","info","labelFor","mainHeader","sectionHeader","tag","use","otherProps","errorTextStyle","errorColorReverseStyle","headerTextStyle","infoTextStyle","Typography","marginTop","marginBottom","Loader","role","LoaderIcon","src","loaderIcon","alt","Box","ariaLabelMoreOptions","boxTag","boxWithMenu","flexiblewidth","fullwidth","headerTag","invalid","selected","subtitle","titleOneRow","titleTwoRows","titleWithSubtitle","colorsToolbar","setOpen","useState","toolbar","menuSection","ToolbarSection","alignEnd","MenuSurfaceAnchor","Button","onClick","currentTarget","blur","unelevated","Icon","icon","MenuSurface","onClose","evt","Toolbar","ToolbarRow","alignStart","ToolbarTitle","theme","zIndex","marginRight","size","boxClassName","Elevation","ThemeProvider","options","Breadcrumps","isFront","notZarzadzanieTrescia","breadcrumpsClassName","Link","GridCustom","center","centerHorizontal","centerVertical","flexBottom","flexEnd","flexS","flexM","flexL","flexTop","fullheight","keyName","noWrap","gridClassName","GridTag","ButtonStyled","add","cancel","lite","next","noMargin","prev","print","remove","removeFull","save","buttonIconStyle","cancelBtnStyle","disabledBtnStyle","prevBgStyle","primaryBtnStyle","outlineBtnStyle","removeFullBgStyle","danger","outlined","ripple","ButtonCreatePdf","pdfCreatingOn","pdfCreatingButtonLabel","Container","containerTag","titleTag","containerClassName","registerLocale","pl","WEEKDAYS","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","MONTHS","January","February","March","April","May","June","July","August","September","October","November","December","isSameDay","date1","date2","dfIsSameDay","ExtendedDatePicker","DatePicker","componentDidUpdate","prevProps","calendar","this_","replaceDays","preSelection","openToDate","DateCalendar","handleCalendarOpen","onCalendarOpen","handleTranslateCalendar","handleMonthChange","handleChange","translateCalendarFields","onChange","replacePartOfAriaLabel","englishPhrase","polishPhrase","parentRef","calendarField","newAriaLabel","showMonthYearPicker","weekDay","month","day","year","day_","month_","ariaLabel","ariaDescribedby","dateCalendarId","dateFormatCustom","dateFormat","dateName","maxDate","minDate","showTimeSelect","showTimeSelectOnly","timeIntervals","timeCaption","customInput","TextField","isClearable","NaN","locale","placeholderText","onCalendarClose","onMonthChange","FieldWithLabel","fieldWithLabelClassName","useEffect","ref","instructionsAriaMessage","event","context","isSearchable","isMulti","isDisabled","valueEventAriaMessage","Select","ReactSelect","componentDidMount","select","announceAriaLiveContext","_ref4","ariaLiveContext","announceAriaLiveSelection","_ref5","ariaLiveSelection","constructAriaLiveMessage","selectValue","focusedValue","focusedOption","menuIsOpen","inputValue","screenReaderStatus","focusedValueMsg","_ref","getOptionLabel","valueFocusAriaMessage","focusedOptionMsg","_ref2","optionFocusAriaMessage","resultsMsg","_ref3","screenReaderMessage","resultsAriaMessage","count","countOptions","renderDropdownIndicator","DropdownIndicator","components","innerProps","onMouseDown","onDropdownIndicatorMouseDown","onTouchEnd","onDropdownIndicatorTouchEnd","indicatorId","commonProps","renderClearIndicator","ClearIndicator","isLoading","hasValue","clearValue","CHOICES_DICT","ch","DateSelect","odInputRef","createRef","doInputRef","Fragment","selectedOption","updateDate","selectAriaLabel","noOptionsMessage","DialogCustom","ariaLabelledby","dialogRef","dialogTitle","dialogTitleError","onKeyDown","DialogTitle","Dialog","preventOutsideDismiss","ev","FocusTrap","focusTrapOptions","fallbackFocus","tabIndex","DialogContent","Ellipsis","lineHeight","ellipsisRef","ellipsisMaxHeight","ellipsis","setEllipsisContainer","longText","setLongText","clientHeight","maxHeight","overflow","bottom","height","GridCellCustom","fill","customRef","gridCellClassName","flexGrow","LinearProgressCustom","classNameInfo","progress","progressBarClassName","progressBarInfoClassName","LinearProgress","MenuBasic","forwardRef","Theme","link","ListItem","disabledFrom","ListItemGraphic","addProgressIcon","currentMenuLink","iconStyle","MenuDrawer","mobile","openMenu","onMenuClose","useContext","useLocation","badges","setBadges","response","Drawer","modal","dismissible","DrawerContent","display","flexDirection","linkTo","ListItemText","linkName","my_advertisement_badge_count","my_offer_set_badge_count","favorite_advertisement_badge_count","Badge","align","renderBadge","ListDivider","textAlign","renderUeLogo","Message","messageIcon","messageTitle","basicClassName","EMPTY_VALUE","AuditData","boxProps","CancelSaveButtonsRow","disabledSave","cancelText","saveText","onCancel","onSave","ErrorList","containerId","errorList","FetchErrorWithOkayButton","buttonLabel","infoMsg","onClickOkay","FiltersButton","filtersCounter","filteringLabel","onOpenFilters","InfoTextWithIcon","NotPermittedPage","PaginatedListHeader","SortersSelect","selectedSort","sortingLabel","sortingValues","onChangeSort","MoreOptionsButton","menuContentRef","useRef","menuAriaLabel","anchorCorner","onOpen","handleOpen","NextStep","prevStep","stepTitle","nextStepClassName","TextFieldCustom","isInputFocused","isIconClicked","blurInputTimeout","handleBlurInput","bind","handleClickIcon","handleFocusInput","componentWillUnmount","clearTimeout","onClear","onBlur","setTimeout","onFocus","props_","autoFocus","clearFieldContext","NumberTextField","handleBlur","target","handleKeyPress","valueLenth","keyIndex","selectionStart","preventDefault","comaIndex","handlePaste","pastedData","clipboardData","getData","isFieldInvalid","fieldId","parentTemporaryId","characterCount","formLocked","maxLength","onKeyPress","onPaste","NotFoundPage","OfferStatus","statusIcon","statusName","API_URLS","usersFindUser","usersPermissionsAdvertisementsProjectsEnrollments","usersPermissionsAdvertisementsProjectsEnrollmentsDetails","usersPermissionsDictionaries","usersPermissionsDictionariesDetails","usersPermissionsContent","usersPermissionsContentDetails","usersPermissionsUsers","usersPermissionsUsersDetails","usersPermissionsContentDictionariesUsers","usersPermissionsHistoryAdvertisementsProjectsEnrollments","usersPermissionsHistoryContentDictionariesUsers","usersPermissionsHistoryContent","usersPermissionsHistoryDictionaries","usersPermissionsHistoryUsers","helpAdmin","helpAdminDictionaries","helpAdminDetails","helpId","statementsAdmin","statementsAdminDetails","statementId","cookiesAdmin","generalContentAdmin","generalContentAdminDetails","generalContentId","regulationsAdmin","regulationsAdminDetails","perspectivesAdmin","programmesAdmin","programmesAdd","programmesEdit","prioritiesAdmin","prioritiesAdd","prioritiesEdit","activitiesAdmin","activitiesAdd","activitiesEdit","regions","regionsAdmin","regionsAdd","regionsEdit","regionId","institutions","institutionsAdmin","institutionsAdd","institutionsEdit","institutionId","DeleteImplementationLevel","apiUrlName","item","parentFormLabel","RelatedObjectsExistInfoComponent","titleFormLabel","onDelete","deletingOn","setDeletingOn","fetchError","setFetchError","objectRelatedWithOthers","setObjectRelatedWithOthers","xhrFetch","responseData","responseErrors","allFields","abort","DEFAULT_DATA","ImplementationLevelForm","addApiUrlName","additionalSaveData","codeMaxLength","editApiUrlName","originalData","isNew","setData","savingOn","setSavingOn","setErrors","handleChangeAttribute","prevValue","isCodeInvalid","isNameInvalid","required","useCheckPermissionExists","checkingExistedPermissionOn","setCheckingExistedPermissionOn","fetchDataDict","setExistsErrorOn","setPermissions403errorOn","existingPermissionData","setExistedPermissionData","callbackPermissionDoesNotExists","authorized","permission","useOneTimeFetchApi","fetchData","serializeFetchDataFunction","updatedData","message403error","callback403","requestId","loadingOn","setLoadingOn","prevData","uzytkownik","sortUrlParams","param1","param2","usePaginatedFetchApi","getFiltersFetchData","objectsAttrName","baseApiUrl","serializationUrlDictToPolish","serializerConfig","history","useHistory","permissionsCheckingOn","setPermissionsCheckingOn","notPermitted","setNotPermitted","serializedUrlData","dataWithoutAll","urlWithParams","limit","data_","objects","hasPrev","hasNext","updateData","objectId","usePutFormFetchApi","callbackPutSuccess","callbackObjectExists","defaultSaveBtnText","saveBtnText","setSaveBtnText","saveMsgTimeout","Activities","useParams","ImplementationLevelManagement","addItemButtonLabel","apiUrl","auditDataBoxTitle","auditDataObjectName","getParentFormLabel","programmeCode","priorityCode","activityCode","listObjectName","rowComponentProps","getItemLinkFunction","withLink","showAuditData","tableName","ImplementationLevelTableRow","onEdit","DataTableRow","DataTableCell","Institutions","PerspectivesTableRow","Perspectives","addItemButtonVisible","RowComponent","sortItemsFunction","tableHeaderList","hasSubactivities_","Priorities","Programmes","getItemLinkUrl","Regions","Subactivities","formOn","setFormOn","editedItem","setEditedItem","setRequestId","deletedItem","setDeletedItem","items","useMemo","items_","handleSetEditedItem","handleUpdateRequestId","handleSetDeletedItem","editingDictionariesPermission","levelName","levelUrl","levelData","TableCustom","SortersFiltersRow","filtersAreOn","FiltersComponent","onCloseFilters","onUpdateFilters","Pagination","currentPage","handleChangePage","oneRow","PdfHeader","flexContainerStyle","metaSectionStyle","textInfoStyle","View","fixed","totalPages","StyleSheet","create","paddingHorizontal","paddingVertical","paddingBottom","marginHorizontal","borderBottomWidth","borderBottomColor","borderBottomStyle","justifyContent","fontStyle","SkipLinks","Steps","elementToFocusRef","onPrevClick","prevLabel","onNextClick","nextLabel","DataTable","DataTableContent","DataTableHead","tableHeader","DataTableHeadCell","DataTableBody","WysiwygEditor","initialContentState","handleContentStateChange","contentState","onContentStateChange","wysiwygClassName","Editor","wrapperClassName","editorClassName","stripPastedStyles","BladLogowania","FiltryUzytkownikow","handleApplyFilters","handleChangeFilter","updateFilters","s","closeFilters","BaseComponent","message403","preState","formPreState","initializingOn","pageNotFound","pageNotPermitted","getAdditionalState","getFormAdditionalState","postState","formPostState","handleFetchSuccess","handleFetchError","handleFetchIncorrectStatus","setAdditionalHandlers","scrollTo","fetchInitialData","getFetchError","getFetchIncorrectStatusError","getFetchUrl","getFetchMethod","getFetchData","Error","renderFetchError","renderElements","renderHeader","renderBeforeContent","renderContent","FormBaseComponent","handleSave","fetchSaveError","xhrFetchSave","getSaveUrl","getSaveMethod","getDataForSaving","handleFetchSaveSuccess","handleFetchSaveError","handleFetchSaveIncorrectStatus","handleShowSaveErrors","getFetchSaveError","saveBtnDefaultText","getFetchSaveIncorrectStatusError","PaginatedBaseComponent","withUrlUpdating","mapToCamelCaseNameFromServer","reinitializeData","handleChangeSort","handleCloseFilters","updateUrl","objectsName","dialogComponent","paginateBy","filtersComponentClass","getFiltersCount","getUrlParams","renderSorters","renderFiltersButton","renderFilters","renderAdditionalAfterBaseContent","renderFiltersCount","renderList","renderEmptyObjects","renderFiltersComponent","DanePodmiotu","FormDanePodmiotuFields","handlePasteNumerIdentyfikacyjny","stopPropagation","changeNumerIdentyfikacyjny","changeAttribute","poland","isNazwaInvalid","adresErrors","isKodPocztowyInvalid","isUlicaInvalid","isNumerDomuInvalid","isFormInvalid","autoComplete","changeRodzajAdresu","renderIdentyfikator","renderKraj","renderMiejscowosc","krajErrors","isKrajInvalid","FormKraj","krajName","changeKraj","miejscowoscErrors","isMiejscowoscInvalid","FormMiejscowosc","changeMiejscowosc","numerIdentyfikacyjnyErrors","isNumerIdentyfikacyjnyInvalid","onKeyUp","foreignCountries","handleChangeKraj","kraj_","selectMiejscowoscMenuIsOpen","inputOptions","moreOptionsAvailable","xhrTimeout","handleChangeInputMiejscowosc","handleBlurMiejscowosc","handleChangeMiejscowosc","locality_search_key","request_id","sortMiejscowosc","m","last_page","moreOptionsAvailableText","IndicatorSeparator","menuPortal","menuList","onInputChange","SELECT_CLASS_NAME","SELECT_INVALID_CLASS_NAME","INSTITUTION_NUMBER_DEFAULT_DICT","ProjectNumberSelectsWithPerspectives","handleChangePerspectiveSelect","priorityFetchError","activityFetchError","regionFetchError","institutionFetchError","onChangePerspective","handleChangePerspective","programmeFetchError","perspective_","withInstitutionNumber","handleChangeProgramme","onChangeProgramme","handleChangePriority","onChangePriority","handleChangeActivity","onChangeActivity","handleChangInstitutionNumber","onChangeInstitutionNumber","handleChangeRegion","onChangeRegion","handleChangeInstitution","onChangeInstitution","handleFetchObjectsSuccess","objectListName","handleFetchObjectsError","errorObjectLabel","errorName","handleFetchObjectsIncorrectStatus","perspectivesAsSelect","setDefaultSelectValueLabelBasedOnId","fetchProgrammes","fetchPriorities","fetchActivities","hasRegions","hasInstitutions","fetchRegions","fetchInstitutions","objectsList","objectName","changeObjectHandler","fetchObjects","parentObjectName","mode","activityErrors","institutionErrors","institutionNumberErrors","perspectiveErrors","priorityErrors","programmeErrors","regionErrors","isPerspectiveInvalid","isProgrammeInvalid","isPriorityInvalid","isActivityInvalid","isInstitutionNumberInvalid","isRegionInvalid","isInstitutionInvalid","formInvalid","activityLabel","Radio","checked","Zalacznik","handleCloseConfirmRemovingDialog","confirmRemovingOn","handleSaveFileFromApi","loadingInProgress","loadingFileName","showLoadedSuccessMsg","showLoadingErrorMsg","blockedFilesExtensions","successMessageTimeout","errorMessageTimeout","removingDialogComponent","xhrSaveFile","handleRemoveZalacznik","handleAddPlik","zalacznikTitleId","checkAttributeName","isCheckInvalid","withCheck","Checkbox","checkLabel","onCheckChange","saveZalacznikAttributes","renderFile","uri","renderOwner","fileError","loadFileError","noUploadError","Dropzone","onDrop","getRootProps","getInputProps","clearFileErrors","position","width","left","removeZalacznik","files","currentComponentFile","validate","filesLength","zalacznikiLength","addZalacznik","fileNameList","extension","formData","FormData","append","contextForSaving","upload","onprogress","loaded","Zalaczniki","header","withoutHeader","zalacznikiErrors","isZalacznikiInvalid","reverse","ZalacznikiSelect","selectedZalacznik","setSelectedZalacznik","selectWrapperClassName","setSelectWrapperClassName","concat","menuShouldScrollIntoView","offersetId","downloadAllAttachments","EMPTY_DATA","FormDanePodmiotu","handleChangeRodzajAdresu","dct","dict","handleChangeNumerIdentyfikacyjny","saveDanePodmiotu","closeDanePodmiotuForm","FormOsobaDoKontaktu","handlePasteNumerTelefonu","phoneNumber","contact_person","saveOsobaDoKontaktu","isImieInvalid","isNazwiskoInvalid","isEmailInvalid","closeOsobaDoKontaktuFormForm","Logowanie","userData","atob","redirectToCurrentPathname","currentPathname","getItem","contextType","getPermissionsValuesDict","defaultDict","checkSinglePermission","prevChecks","child","getGroupChecked","checks","getGroupIndeterminate","getMainGroupIndeterminate","group","PERMISSIONS_NAMES_DICT","all","blocking","functionalityManagementImplementationLevel","translatePermissionName","getPerspectiveLabel_","getRegionCode","getInstitutionCode","getActivityCode","getPriorityCode","getRegionOrInstitutionCode","getImplementationLevelLabels","emptyData","sortKeysList","sortList","PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT","getPermissionHistoryUsersTitle","isHistory","isImplementationLevelType","every","el","isRegion","levelSuffix","PermissionList","additionalFetchData","hideAddPermissionButtonIfFullList","initialRequestId","withHistory","onOpenForm","onOpenHistory","setInitializingOn","setPageNumber","is403error","setIs403error","sortContentUsersPermissions","callbackFetchError","hideAddAdministrationPermissionButton","permissionsNames","setPermissions","perm","permissionsToSet","mapDict","notSetPermissionsValues","PermissionsMoreOptionButton","onOpenUserList","OBJECT_TYPE_DICT","dataObjectName","subactivity","PermissionListImplementationLevelCellProgrammePriorityActivity","fullPermission","objectType","onSetActiveHistoryPermission","onSetActiveUsersPermission","initializationOn","setInitializationOn","isOpen","setIsOpen","subObjects","setSubObjects","typeDict","permissionForActionDict","isMainLevel","PermissionListImplementationLevelCell","theLowestLevel","PermissionListRow","OPERATION_TYPE_SERIALIZERS","permissionsDenied","permissionsGranted","permissionsModified","PermissionsHistoryListRow","addedAt","implementationLevelName","authorizedUserEmail","operationType","addedBy","PermissionsHistory","setFilters","addedAtFrom","addedAtTo","addedByEmail","isPickerOpen","setIsPickerOpen","handleCalendarClose","events","permissionsHistory","addedAtFromRef","addedAtToRef","keyCode","nativeEvent","stopImmediatePropagation","UserPermissionsListGrantedCell","groupNameList","groupName","groupGranted","_","getGrantedPermissionsForGroup","UserPermissionsListRow","onSetEditedPermission","onSetRemovedPermission","implementationLevelLabels","hasHigherLevelPermissions","canEdit","canDelete","TAB_INDEXES","REVERTED_TAB_INDEXES","getRowKey","objectData","_objectData$implement","PermissionUsers","activeUsersPermission","selectedTab","setSelectedTab","listType","TabBar","activeTabIndex","onActivate","detail","Tab","ADD_PERMISSION_MODE_CONTEXTS","administration","implementationLevel","SearchUserForm","addPermissionMode","searchingOn","setSearchingOn","setEmail","setIdentifier","contexts","onFindUser","isIdentifierInvalid","UserHeader","withButtons","UserPermissionsFormCommonFields","checksSortDict","defaultChecksDict","disabledCancelButton","disabledSaveButton","editionModeOn","existsErrorOn","existsErrorLabel","saveUrl","setAdditionalErrors","setEditionModeOn","onSavePermissionSuccess","onSetSavingOn","setChecks","additionalFetchDataValuesAsString","groupCheckedValues","permissionErrors","decisions","getPermissionErrors","functionalityDisabled","permissionsDisabled","indeterminate","groupName_","groupPermissions","groupDisabled","handleCheckGroup","permissionName_","permissionValue","handleCheckSinglePermission","SCOPES","permissionType","contents","SELECT_CHOICES","scope","s1","s2","DEFAULT_CHOICE","USERS_ADMINISTRATION_DEFAULT_CHECKS_DICT","CONTENT_ADMINISTRATION_DEFAULT_CHECKS_DICT","IMPLEMENTATION_LEVELS_DICTIONARY_ADMINISTRATION_DEFAULT_CHECKS_DICT","USERS_ADMINISTRATION_CHECKS_SORT_DICT","CONTENT_ADMINISTRATION_CHECKS_SORT_DICT","IMPLEMENTATION_LEVELS_DICTIONARY_ADMINISTRATION_CHECKS_SORT_DICT","EXISTS_ERROR_LABEL","UserPermissionsAdministrationForm","initialData","selectedScope","setSelectedScope","id_","label_","permissionType_","permissions403errorOn","disabledFields","DEFAULT_CHECKS_DICT","CHECKS_SORT_DICT","serializeImplementationLevel","dataDict","UserPermissionsImplementationLevelFields","implementationLevels","setImplementationLevels","implementationLevelsErrors","setImplementationLevelsErrors","permissionsForCheckboxes","setPermissionsForCheckboxes","checkingCheckboxesPermissionOn","setCheckingCheckboxesPermissionOn","levelNames","currentUserId","grantedPermissions","handleChangeProjectNumberSelect","permission403exists","implementationLevelsPermissionErrors","UserPermissionsImplementationLevelForm","dataPerspectives","UserPermissionsRemovingPermissionDialog","questionSuffix","onCloseRemovedPermissionDialog","onRemovePermissionSuccess","removingPermissionOn","setRemovingPermissionOn","setError","permission_","permissionDescription","isError","TABLE_HEADER_LIST","Permissions","setAddPermissionMode","userForPermissionAdding","setUserForPermissionAdding","administrationPermissionsRequestId","setAdministrationPermissionsRequestId","implementationLevelPermissionsRequestId","setImplementationLevelPermissionsRequestId","activeHistoryPermission","setActiveHistoryPermission","setActiveUsersPermission","lastActiveUsersPermission","setLastActiveUsersPermission","handleCloseHistory","handleCloseUsers","handleOpenHistory","handleOpenUsers","editedPermission","setEditedPermission","handleCloseEditPermission","removedPermission","setRemovedPermission","handleCloseRemovePermission","dialogAdditionalFetchData","url_","dialogAdditionalFetchData_","isHistoryPermission","activePermission","permissionListAdditionalFetchData","handleCloseAddPermissionForm","PermissionFormComponent","prevId","ProfilUzytkownika","handleSaveDanePodmiotu","changeDataOn","handleSaveOsobaDoKontaktu","formOsobaDoKontaktuOn","editedOsobaDoKontaktu","renderProfilUzytkownika","renderDanePodmiotu","renderOsobyDoKontaktu","renderOsobaDoKontaktu","SessionDialog","messageRole","messageContent","withButton","dialogButton","Sesja","refreshSessionErrorDialogOn","handleSessionErrorDialogClose","handleSessionDialogClose","handleExpirationDialogClose","reload","handleUnauthorizedDialogClose","unauthorizedDialogOn","initializeSessionTime","sessionTime","computeSessionTime","startSessionTime","logoutDone","logoutDialogOn","sessionIntervalId","clearInterval","now","nowUTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","floor","getTime","setInterval","renderLogoutDialog","renderUnauthorizedDialog","minRemaining","secRemaining","renderRefreshSessionErrorDialog","renderRefreshSessionDialog","sec","UserContactPersonsList","contactPersons","cp","UserDataForm","onUpdateUserData","blockedAccount","setBlockedAccount","originalBlockedAccount","setOriginalBlockedAccount","blockedAccountsErrors","hasBlockingUserPermission","UserEconomicSubjectData","dane","uprawnienia","serializeFetchData","User","updatedUserData","setUpdatedUserData","setPageNotPermitted","section","administrationFormOn","setAdministrationFormOn","implementationLevelFormOn","setImplementationLevelFormOn","handleCloseAdministrationForm","handleCloseImplementationLevelForm","handleSavePermissionSuccess","isAdministrationPermission","handleSetEditedPermission","handleSetRemovedPermission","administrationHistoryOn","setAdministrationHistoryOn","implementationLevelHistoryOn","setImplementationLevelHistoryOn","ADVERTISEMENTS_CLEANED_FILTERS","ogloszenie_numer","PROJECTS_CLEANED_FILTERS","calyNumer","SEARCH_CLEANED_FILTERS","publicationDateRange","submissionDeadlineRange","advertiserName","advertiserIdentificationNumber","cpvItem","fulfillmentPlaces","USERS_CLEANED_FILTERS","FAVORITES_ADVERT_CLEANED_FILTERS","PROJECTS_MANAGEMENTS_CLEANED_FILTERS","fullNumber","ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS","advertiserAddressType","advertiserIdentificationNumberType","advertiserAddressCountry","advertiserAddressVoivodeship","advertiserAddressPoviat","advertiserAddressCommune","advertiserAddressLocality","announcementStatus","announcementNumber","announcementProjectEnrollmentPerspective","announcementProjectEnrollmentProgramme","announcementProjectEnrollmentPriority","announcementProjectEnrollmentActivity","announcementProjectEnrollmentInstitution","announcementProjectEnrollmentRegion","announcementProjectEnrollmentFullNumber","announcementPublicationDateFrom","announcementPublicationDateTo","submissionDeadlineFrom","submissionDeadlineTo","getSearchFiltersCount","some","getUsersFiltersCount","getFavoritesAdvertFiltersCount","getOffersFiltersCount","emptyFilters","getProjectsManagementsFiltersCount","getAdvertisementsManagementsFiltersCount","Uzytkownicy","queryDict","renderUzytkownik","lista","Users","DraftToComponents","isEmptyString","str","isAtomicEntityBlock","entityRanges","isList","blockType","orderedListIndex","renderBlockquote","renderOrderedListItem","renderUnorderedListItem","renderAtomic","entityMap","renderText","renderSections","entity","renderLink","renderImage","renderEmbed","targetOption","frameBorder","inlineStyleRanges","renderPureText","range","offset","charsWithStyles","charStyles","Set","r","currentText","currentStyle","blockSections","renderSection","blockKey","bold","italic","bolditalic","italicbold","Ciasteczka","cookies","ciasteczka","auditData","COOKIE_NAME","CiasteczkaFront","showCookies","handleCloseCiasteczka","savingDate","DraftToPdf","blockquote","listItem","Image","image","infoText","paddingLeft","marginVertical","textDecoration","SAVE_BUTTON_DEFAULT_LABEL","FormCiasteczka","editing","firstSaving","trescMaxLength","isTrescInvalid","localization","toolbarHidden","EMPTY_KOMUNIKAT","czyBezterminowy","FormKomunikat","newData","handleClearAttributeError","requiredMsg","isNaglowekInvalid","isDataWaznosciValid","dataWaznosciInputRef","LandingPage","handleSearch","getSearchUrl","query","handleNewsletter","_this$props$user","trescPreviewId","placement","homepageBox1","homepageBox2","homepageBox3","homepageBox1IsEmpty","homepageBox2IsEmpty","homepageBox3IsEmpty","renderSearch","renderTrescOgolna","onSubmit","renderAddOgloszenieLink","onLoginClick","CLEANED_STEP_ERRORS","CLEANED_FORM_ERRORS","AdvertisementContext","validationOn","formErrors","roboczeStatus","statusyOgloszenia","zagranicaId","typMiejscaRealizacji","przedmiotZamowieniaKategoria","przedmiotZamowieniaKategoriaDict","przedmiotZamowieniaPodkategoriaDict","typWarunku","nabory","teryt","setConstsFromServer","setConstsFromAdvertisementData","setOgloszenie","saveOgloszenie","updateOgloszenieBeforePublishing","savePrzedmiotZamowienia","removePrzedmiotZamowienia","setAttributeValue","savePrzedmiotZamowieniaListAttributeValue","removePrzedmiotZamowieniaListAttributeValue","saveHarmonogram","removeHarmonogram","saveWarunekUdzialu","removeWarunekUdzialu","addZamowienie","removeZamowienie","movePrzedmiotZamowienia","setZamowienieAttributeValue","saveKryteriumOceny","removeKryteriumOceny","saveZamowienieListAttributeValue","removeZamowienieListAttributeValue","changeProjectsSelected","setZalacznikAttributes","changeFormLockedState","clearStepError","clearPrzedmiotZamowieniaErrors","clearAttributeError","clearFormErrors","clearState","AdvertisementProvider","order_item_categories","announcement_status_draft","announcement_statuses","adresId","address_id","abroad_id","order_fulfillment_place_types","participation_condition_types","enrollment_numbers","teryt_data","terminOfertData","terminOfertWithTime","terminOfertGodzina","pz","newZamowienieTemporaryId","pz_","zamowienia_","attributeName","przedmiotZamowieniaTemporaryId","origin","zamowieniaErrors","zamowieniaStepErrors","kryteriaOcenyErrors","kryteriaOcenyStepErrors","przedmiotyZamowieniaErrors","przedmiotyZamowieniaStepErrors","harmonogramyErrors","harmonogramyStepErrors","warunkiUdzialuErrors","warunkiUdzialuStepErrors","zalacznikiStepErrors","finalStepErrors","formOgloszenie","AdvertisementConsumer","FormPublikowanie","handleCloseDialog","publishingOn","handleChangePublikujOdRazu","publikujOdRazu","publishImmediately","handleChangeTerminOfertData","handleChangeTerminOfertWithTime","isChecked","dialogPublishClassName","handlePublish","handleFetchPublishSuccess","handleFetchPublishError","handleFetchPublishIncorrectStatus","setPublishingSuccessInfo","handleValidate","today","getTomorrow","terminOfert_","setHours","renderError","renderForm","terminOfertDataError","isTerminOfertDataInvalid","terminOfertGodzinaError","isTerminOfertGodzinaInvalid","terminSkladaniaOfertAriDescribedby1","terminSkladaniaOfertAriDescribedby2","terminSkladaniaOfertAriDescribedby","terminOfertInputRef","renderWhenPublishPart","renderPublicationDateField","h","isInvalid","dataOpublikowaniaInputRef","AlreadyPublishedInfo","BaseStepComponent","isPreview","FormKryteriumOceny","onCloseForm","textarea","Zamowienie","handleCloseForm","newKryteriumOcenyOn","editingKryteriumOCenyId","handleSaveKryteriumOceny","onSaveKryteriumOceny","handleChangeSzacunkowaWartosc","onSetZamowienieAttribute","handleBlurSzacunkowaWartosc","handleSzacunkowaWartoscKeyPress","szacunkowaWartoscLenth","handleSzacunkowaWartoscPaste","handleCloseRemoveZamowienieDialog","isRemoving","handleMovePrzedmiotZamowieniaFromList","saveDraggedTemporaryId","then","onMovePrzedmiotZamowienia","kryteriaOceny_","czyWariantowe_","tytul_","isInvalidTytul","tytulId","isSzacunkowaWartoscInvalid","szacunkowaWartoscId","Droppable","onDropCallback","renderRemoveZamowienie","renderPrzedmiotZamowienia","ko","renderKryteriumOceny","renderKryteriumOcenyForm","renderNewKryteriumOcenyButton","zamowienieTemporaryIds","indexOnList","Draggable","isDragAndDropElement","onDragCallback","onRemoveZamowienie","Kryterium","cenowe","zawiera","additionalClassName","onRemoveKryteriumOceny","kryteriumOcenyLastTemporaryId","StepCzesciKryteria","handleSaveCzyDopuszczalnaOfertaCzesciowa","handleSaveDraggableTemporaryId","Promise","resolve","reject","draggedTemporaryId","handleMovePrzedmiotZamowienia","changeCzyDopuszczalnaOfertaCzesciowaForbidden","radioDisabled","PomocEkranowa","pomocEkranowaContent","renderZamowienia","onChangeCurrentMenuLink","NO_PROJECT_TEXT","NO_PROJECT_ADMIN_TEXT","NO_ENROLLMENT_TEXT","NO_ENROLLMENT_ADMIN_TEXT","NO_OSOBY_TEXT","StepPozostale","StepComponent","sortProjectsEnrollments","osobyDoKontaktu_","isProjektyInvalid","isNumerNaboruInvalid","isTytulInvalid","isOsobyDoKontaktuInvalid","projectsEnrollmentsDisabled","contactPersonsDisabled","onChangeProjectsSelected","closeMenuOnSelect","defaultValue","withStepConfiguration","FormKodCPV","initial","setInitialOptions","selectedKod","selectedKodError","selectMenuIsOpen","handleChangeInputKodCPV","handleBlurKodCPV","handleChangeKodCPV","handleAddKodCPV","search_key","usedIds","String","addKodCPV","isSelectInvalid","renderButtons","addButtonDisabled","onCancelKodCPV","KodyCPV","handleCancelKodCPV","newKodOn","handleRemoveKodCPV","selectedCode","removeKodCPV","kod_","renderNewKodForm","errorsKodyCPV","POLAND","EMPTY_ADDRESS","FormMiejsceRealizacji","handleChangeTyp","handleSaveMiejsceRealizacji","handleChangeZagranicaAttribute","field","saveMiejsceRealizacji","isSaveButtonDisabled","miejscowosc1","miejscowosc2","renderAdresForm","renderZagranicaForm","cancelNewMiejsceRealizacji","MiejsceRealizacji","ogloszeniaContext","miejsceRealizacji","removeMiejsceRealizacji","MiejscaRealizacji","newMiejsceRealizacjiOn","mr","renderNewMiejsceRealizacjiForm","lastTemporaryId","errorsKodyMiejscaRealizacji","FormPrzedmiotZamowienia","handleRemoveMiejsceRealizacji","selectClassName","selectInvalidClassName","kategoriaInvalid","miejsceRealizacjiLastTemporaryId","PrzedmiotZamowienia","handleCloseRemovingDialog","isRemovingOn","kodyCPVPrzedmiotuZamowienia","onEditClick","renderRemovingPart","onRemoveClick","StepPrzedmiotZamowienia","formPrzedmiotZamowieniaOn","addedPrzedmiotZamowieniaId","editedPrzedmiotZamowieniaId","handleEditClick","handleRemovePrzedmiotZamowienia","przedmiotZamowieniaError","renderPrzedmiotZamowieniaForm","przedmiotZamowieniaData","pzLength","FormHarmonogram","handleEscPress","poczatekInputRef","koniecInputRef","koniecRealizacjiErrorVisible","Harmonogramy","newHarmonogramOn","editingHarmonogramId","onSaveHarmonogram","renderHarmonogram","renderHarmonogramForm","renderNewHarmonogramButton","etapErrors","onRemoveHarmonogram","harm","StepTerminy","przedmiotyZamowienia_","planowanyTerminPodpisaniaUmowyInputRef","dateCalendarRef","FormWarunekUdzialu","clearFunct","stateDict","opisError","typError","isValidating","mergeErrors","globalErrors","errorsOpisVisible","errorsTypVisible","usedWarunkiUdzialuIds","WarunkiUdzialu","newWarunekUdzialuOn","editingWarunekUdzialuTemporaryId","onSaveWarunekUdzialu","wu","renderWarunekUdzialu","renderWarunekUdzialuForm","renderNewWarunekUdzialuButton","onRemoveWarunekUdzialu","w","StepWarunki","StepZalaczniki","distinguishAttachments","oldAttachments","currentAttachments","attachment","oldAttachmentsLength","renderCurrentAttachments","renderOldAttachments","attachmentsLength","DEFAULT_OGLOSZENIE","FormOgloszenie","handleChangeCurrentMenuLink","handleSetCurrentMenuLink","menuLinksMapNameId","handleChangeProjectsSelected","handleReturnToList","handleFetchOgloszenieSuccess","additionalSuccessFunction","addTemporaryId","reformatPrzedmiotyZamowieniaData","preview","instruction","validationAria","clearMenuErrorTimeout","menuLinksMapIdName","cleanData","xhrSaveFetch","callbackError_","callbackIncorrectStatus_","getAdvertisementDataFromServer","handlePublishByAdmin","notValidByAdminError","handleClosePublishingSuccessDialog","handleClosePublishingByAdminErrorDialog","initializeData","formContentRef","publishingSuccessInfo","menuLinks","step","menuBasicRef","version_mode","getPublishedDataForSaving","groupUuid","group_uuid","renderInstruction","renderFuturePublishingInfo","renderTerminy","renderWarunki","renderCzesciKryteria","renderPozostale","renderZalaczniki","renderPublishingByAdminError","renderPublishingSuccessInfo","ANNOUNCEMENT_STATUS_DRAFT","ANNOUNCEMENT_STATUS_PUBLISHED","ANNOUNCEMENT_STATUSES","Ogloszenia","obublikowaneStatusId","roboczeStatusId","statusyOgloszen","handleRemoveOgloszenie","removeFunct","xhrRemoveAdvertisement","removedOgloszenieId","handleFetchRemoveOgloszenieSuccess","handleFetchRemoveOgloszenieError","handleFetchRemoveOgloszenieIncorrectStatus","handleCloseActionDialog","fetchActionError","handleCopyOgloszenie","baseOgloszenieId","copyingOgloszenieId","xhrCopyAdvertisement","handleFetchCopyOgloszenieSuccess","handleFetchCopyOgloszenieError","handleFetchCopyOgloszenieIncorrectStatus","copiedOgloszenieIds","handleToggleFilters","setFiltersData","handleCancelOgloszenie","cancelledOgloszenieId","handleFetchCancelOgloszenieSuccess","handleFetchCancelOgloszenieError","handleFetchCancelOgloszenieIncorrectStatus","xhrCancelAdvertisement","ogloszenieData","removedOgloszenieTitle","cancelledOgloszenieTitle","currentSortingValue","actionComponent","createdByList","modifiedByList","creators","modifiers","creator","modifier","filterAdvertisements","subattr","adValue","Switch","renderAddOgloszenieButton","renderOgloszenie","renderRemovingOgloszenie","renderCancellingOgloszenie","renderCopiedMessage","ktoUtworzylList","ktoUtworzylDict","username","ktoModyfikowalList","ktoModyfikowalDict","dataUtworzeniaInputRef","dataModyfikacjiInputRef","_ref6","_ref7","isDraft","isPublished","isLocked","BadgeAnchor","badge_count","renderActionDialog","baseOgloszenieTytul","verbString","actionName","actionPrefix","fetchHandler","showText","SELECTS_CODES","dzialanieIpoddzialanie","Form","handleChangePerspektywa","setNumberParts","updateNumber","handleChangeProgramOperacyjny","handleChangeOsPriorytetowa","handleChangeDzialanie","handleChangeInstytucja","handleChangeOthers","changeInputNumber","getSuffixDefaultDict","handleChangeInstitutionNumber","suffix","isProjekt","perspektywy","getFullNumber","parts","suffixMask","regiony","instytucje","separator","alternativeAttrName","attrValue","onNumberChange","renderNumer","renderNazwa","renderSelects","renderOthers","isSuffixInvalid","maxSuffixLength","Ogloszenie","showDetails","setShowDetails","wersja","prevShowDetails","Projekt","handleShowOgloszenia","detailsOn","initializingDetailsOn","getOgloszenia","handleHideOgloszenia","handleFetchOgloszeniaSuccess","handleFetchOgloszeniaError","handleFetchOgloszeniaIncorrectStatus","handleCloseRemovingOn","removingOn","isProject","renderOgloszeniaDetails","ogloszenia_","maOpublikowaneOgloszenia","maRoboczeOgloszenia","onRemove","Projekty","projektyNabory","handleRemove","handleFetchRemoveSuccess","handleFetchRemoveError","handleFetchRemoveIncorrectStatus","serializedData","removingError","czyNewProjekt","filterProjects","renderRemovingErrorDialog","userProjectsNumbers","serializeProgrammeSelectStructure","NewsletterSettingsFilter","_state$currentDiction","_state$currentDiction2","_state$filters$advert","_state$filters$advert2","_state$filters$advert3","_Object$keys$filter","isSelectOpen","currentDictionaries","errorNipOgloszeniodawcy","fromEntries","operation_programme","location_id","_state$filters$progra","_state$filters$progra2","_state$filters$fulfil","_state$filters$fulfil2","operationalProgramsIdsInFilter","x","fulfillmentPlacesIdsInFilter","updatedFilters","newFilters","close","onMenuOpen","_state$filters$catego","NewsletterSettings","showDeleteFilterModal","setShowDeleteFilterModal","filterModalData","setFilterModalData","visible","setAdvertisements","yesterdayDate","valueOf","dayBeforeYesterdayDate","advertisementsFilters","setAdvertisementsFilters","updatedCount","setUpdatedCount","newCount","setNewCount","isBusy","setIsBusy","refreshUpdatedAnnouncementsCount","announcements","refreshNewAnnouncementsCount","refreshFilters","newsletter_filters","mappedFilters","modalFilter","modal_settings","buildFilterName","filterByPropertiesCount","countFilters","enabled","promise1","refreshAnnouncements","promise2","promise3","mapAndSaveFilter","onSuccess","_filter$programme$map","_filter$programme","_filter$category","_filter$subcategory","_filter$cpvItem$map","_filter$cpvItem","_filter$fulfillmentPl","_filter$fulfillmentPl2","filterToSave","advertiser_identification_number","programme_ids","category_id","subcategory_id","cpv_item_ids","fulfillment_place_codes","rest","hasOwnProperty","gap","padding","enableDisableFilter","marginLeft","listStyleType","_advertisement$advert","dangerouslySetInnerHTML","__html","favorite","findIndex","updatedObjects","editFilter","existingFilter","_Object$keys","addFilter","FavoritesFilters","updateDictionaries","_filters$category","Favorites","handleReload","handleAddToFavorites","handleRemoveFromFavorites","subname","_o$ogloszenie$status","_o$ogloszenie$status2","_o$dataOpublikowania","TrescPreview","closePreview","renderPreview","pop","FormPomoc","availableParents","parents_candidates","availableRelatives","availableScreens","screens_available","typOgolna","isRoot","root","hasChildren","has_children","originalTypOgolna","originalRozdzialNadrzedny","relatives_candidates","handleSaveTypOgolna","handleUploadFile","uploadImageError","handleLoadEmbed","embeddedUrl","loadEmbedError","entityRange","handlePreview","previewOn","dictionary","typeChosen","renderTypOgolnaForm","renderTypNaEkranieForm","renderCommonFields","renderPowiazaneForm","renderUploadImageErrorDialog","renderLoadEmbedErrorDialog","isRozdzialNadrzednyInvalid","isEkranInvalid","inline","inDropdown","urlEnabled","uploadEnabled","alignmentEnabled","uploadCallback","previewImage","inputAccept","present","mandatory","defaultSize","embedded","embedCallback","optionsForPowiazane","renderErrorDialog","FormRegulamin","regulamin","FormTrescOgolna","Komunikat","setUrlWithCorrectSlug","Komunikaty","k1","k2","KomunikatFront","KomunikatyFront","Font","register","family","fonts","robotoRegular","robotoItalic","robotoBold","registerHyphenationCallback","word","pdfStyles","mainPdfContainerStyle","fontFamily","flexWrap","gridSection","borderedSectionStyle","borderLeftWidth","borderLeftColor","borderedDashedSectionStyle","borderStyle","borderColor","borderedSeparateSectionStyle","pzTitleSection","textHeaderStyle","textWithLabelStyle","labelStyle","labelHeaderStyle","dateTextStyle","errorStyle","titleStyle","sectionTitleStyle","PdfWithDraftContent","Document","Page","wrap","renderFooter","Pomoc","handleCreatePdf","pdfHeaderText","ekranLabel","PdfText","pdfHeaderStyle","pdfHeaderSecondaryStyle","callbackPfdCreated","onpopstate","handleChangePomoc","newId","newSlug","PomocUsun","handleRemovePomoc","removePomoc","fetchRemoveError","renderRemovingImpossible","renderRelatives","renderConfirmation","closePomocForRemoving","Pomoce","handleChangeTypPomocy","pomocForRemoving","pomocForPreview","PomoceFrontPdf","renderPomoc","deepLevel","sectionTextStyle","renderPomocePodrzedne","pomocId","pomocePodrzedne","secondarySectionStyle","noPadding","PomoceFront","sortPomoce","pomocePodrzedneClassName","PomocFront","Regulamin","front","renderPdfButton","Regulaminy","currentExists","forPublicationExists","handleCloseCurrentVersionDialog","editCurrentVersionOn","handleRemoveDoOpublikowania","removingDoOpublikowaniaOn","handleCloseRemoveDoOpublikowaniaDialog","renderEditCurrentVersionDialog","renderRemoveDoOpublikowaniaDialog","TresciOgolne","trescForPreview","TrescOgolna","ZarzadzanieTrescia","timerRefreshed","setTimerRefreshed","Card","CardPrimaryAction","CardMedia","ZoltyPasekFront","trescKomunikatu","b","DeklaracjaDostepnosci","AdvertisementDataFilters","onChangeFilter","onChangeProjectNumberSelect","announcementPublicationDateFromInputRef","announcementPublicationDateToInputRef","submissionDeadlineFromInputRef","submissionDeadlineToInputRef","STATUS_ICONS","DRAFT","PUBLISHED","CLOSED","CANCELLED","LOCKED","RESOLVED","AdvertisementListRow","onFilterAdvertisementByUserEmail","advertisement_","publicationDate","versionPublicationDate","submissionDeadline","advertisementPublicationDate","handleGoToManageUserPage","handleFilterProjectsByUserEmail","handleFilterAdvertisementsByUserEmail","AdvertiserDataFilters","onChangeAdvertiserIdentificationNumber","onChangePolishLocality","advertiserAddressTypeValue","onChangeAdvertiserAddressType","onChangeAdvertiserIdentificationNumberType","UserDataFilters","AdvertisementsFilters","setSerializedData","prevFilters","SORTERS","announcementStatus_asc","announcementStatus_desc","announcementNumber_asc","announcementNumber_desc","userEmail_asc","userEmail_desc","announcementPublicationDate_asc","announcementPublicationDate_desc","submissionDeadline_asc","submissionDeadline_desc","title_asc","title_desc","SORTING_VALUES","DEFAULT_SORTER","SERIALIZER_CONFIG","SERIALIZATION_URL_LIST","SERIALIZATION_URL_DICT_TO_POLISH","eng","pol","IMPLEMENTATION_LEVEL_SELECTS_NAMES_LIST","Advertisements","setInitialPageNumber","setSelectedSort","setFiltersCounter","setFiltersAreOn","setCleanedLocalityFilters","filtersData","filters_","setValue","valueName","searchParamValue","type_","filterSet","setInitialFilters","EditProjectForm","setName","setFetchSaveError","attachedAdvertisementsAmount","ADVERTISEMENTS_GET_COMMON_URL_PARAMS","ProjectListRow","onFilterProjectsByUserEmail","onSelectProjectForEditing","handleFilterAdvertisementsByFullNumber","ProjectsFilters","Projects","editedProject","setEditedProject","projectId","ANULOWANE_STATUS","OPUBLIKOWANE_STATUS","ZAMKNIETE_STATUS","ROZSTRZYGNIETE_STATUS","FiltryWyszukiwarki","handleChangeStatusFilter","handleChangeDateFilter","filterName","renderInformacjeOogloszeniu","renderDaneOgloszeniodawcy","statuses","FormRozstrzygniecieWariant","wariant","checkboxLabel","nazwaOferenta","offerTitle","isRefused","onOfferRestore","ofertaId","hasOfertaManyWarianty","onOfferRefuse","onWariantSelect","FormCzescRozstrzygniecia","handleRefuse","refusingOfertaId","handleRestore","restoringOfertaId","ofertaIdAttributeName","sortWarianty","w1","w2","hasManyWarianty","hasMultiplyZamowienia","renderNotRefused","renderRefused","onNoOfferSelectedChange","renderRefusingDialog","refused","renderRestoringDialog","renderDialog","titleAdverb","additionalInfo","OGLOSZENIE_STATUS_CHOICES","OFERTA_STATUS_CHOICES","FiltryOfert","submissionDeadlineInputRef","announcementPublicationDateInputRef","announcementPublicationDate","offerStatus","FormWariant","onlyCena","priceAutofocus","renderCena","onChangeWariantAttribute","wariantOpisId","isOpisInvalid","onRemoveWariant","FormOfertaFields","getWariantLasttemporaryId","getEmptyOferta","getEmptyWariant","renderOferty","withDanePodmiotuForm","ofertyErrors","isOfertyInvalid","renderMultiplyOferta","renderSingleOferta","zamowienieNodeId","oferta","czyWariantoweErrors","isCzyWariantoweInvalid","changeAddOferta","changeCzyWariantowa","renderWarianty","wariantyErrors","isWariantyInvalid","onAddWariant","renderSingleWariant","changeAddZalacznik","changeRemoveZalacznik","changeSaveZalacznikAttributes","EMPTY_DANE_PODMIOTU_DATA","FormOferta","handleFetchUserDataSuccess","handleFetchOfferDataSuccess","handleCloseCancellingDialog","cancellingOn","handleCloseSubmittingDialog","submittingDialogOn","handleChangeAddOferta","handleChangeCzyWariantowa","handleAddWariant","handleChangeWariantAttribute","handleRemoveWariant","handleAddZalacznik","handleSaveZalacznikAttributes","ogloszenieId","handleSubmit","getSubmitUrl","getSerializedDataForSubmitting","handleFetchSubmitSuccess","onSubmitOferta","getWariantLastTemporaryId","getDataForSubmitting","statusOferty","ogloszenieErrors","formOfertaErrors","renderCancelDialog","renderRemoveDialog","renderSubmitDialog","confirmButton","renderBaseDialog","onConfirm","FormOfertaOgloszeniodawca","onSubmitForm","Oferta","handleCloseWithdrawingDialog","withdrawingOn","handleWithdraw","handleFetchWithdrawSuccess","handleFetchWithdrawError","handleFetchWithdrawIncorrectStatus","onWithdrawOferta","fetchWithdrawError","getOfferData","commonState","onClosePreview","renderActionsButtons","renderWithdrawDialog","renderWariantowa","renderNiewariantowa","withdrawingError","OfertaBox","myOfferLabel","showMyOfferLabel","showFullVariants","showAttachments","pakietId","OfertaPreview","Oferty","handleClosePreview","previewedOfferAnnouncementId","getEmptyFilters","ofertaLabel","totalString","renderPakietOfert","offerSubtitle","ostatniaWersja","OfertyOwnerClosedStatus","handleMyOfferButtonClick","isAdvertisementOwner","onlyAdmin","extra","is_advertiser","pakietyOfert","sortOferty","oferta1","oferta2","wariant1","wariant2","FormRozstrzygniecie","renderMyOfferButton","po","renderZamowienie","isMultiply","oferentId","renderOferta","renderOfertaBox","OfertyOffererClosedStatus","OfertyOffererPublishedStatus","handleWithdrawOferta","withdrawingOfferConfirmationOn","submittingOfferConfirmationOn","handleCloseWithdrawingOfferConfirmationDialog","handleSubmitOferta","offerSetId","handleCloseSubmittingOfferConfirmationDialog","renderWithdrawingOfferConfirmationDialog","renderSubmittingOfferConfirmationDialog","OfertyResolvedStatusPdf","checkRefused","offerId","rozstrzygniecie","tytulOgloszenia","renderKomentarz","renderSelectedOferta","zamowienieFromRozstrzygniecie","selectedWariantId","selectedPakietOfert","selectedOferta","selectedWariant","oferta_","offerVariantDescrStyle","filteredOferty","otherOffersContainerStyle","selectedOfferStyle","commentTextStyle","whiteSpace","OfertyOwnerResolvedStatus","handleFetchSettlementSuccess","toFixAttributes","renderZalacznikiRozstrzygniecia","OfertyOffererResolvedStatus","OfertyOwnerPublishedStatus","handleRemoveBadge","offersCount","offer","badge","offerFormOn","editingOffersetId","handleSubmitOfertaForm","idsDict","handleCloseOfferPreview","offerPreviewOn","previewedOfferId","handleChangeZalacznikIsProtocol","handleNoOfferSelectedChange","handleRefuseOffer","setOfferRefuseValue","handleRestoreOffer","handleSelectWariant","wariantId","handleRemoveOfertaZewnetrzna","pakietOfertId","variantsIds","getNotSerializedDataForSaving","errorsDialogOn","getOfertyByZamowienieNodeId","getMenuLinks","nieMaWiecejOfert","links","wariantIds","prevWybranyWariant","currentMenuLinkName","renderOffersCompleting","renderOffers","renderSummary","renderFormOferta","renderOfertaPreview","pakietyOfertZewnetrzne","renderOfertaZewnetrzna","isRemoved","offersStateDict","renderSelectedOfertyList","renderErrorsDialog","isKomentarzInvalid","renderZamowienieSummary","zamowienieFromState","renderUnexpectedSummaryPartError","renderNoOfferSelected","renderNoChoice","zamowienieErrors","ListaWersji","handleFetchVersionListSuccess","versions","handleFetchVersionListError","handleFetchVersionListIncorrectStatus","closeVersionDialog","sortVersions","published","renderVersionList","currentlyVisibleMarker","renderDraftList","isCreatedByAdvertiser","ManageAdvertisementButtons","onChangeAdvertisementStatus","confirmDialogOn","setConfirmDialogOn","usePutFetchApi","userBasicPermission","hasPermission","parentName","handleCloseConfirmDialog","advertiser","PytaniaForOgloszeniePdf","numerOgloszenia","renderQuestionsList","q","renderQuestion","renderAnswer","answerLabel","answerContainerStyle","questionContainerStyle","myLabelStyle","textTransform","BasePytaniaForOgloszenieWidthPdf","renderPrintButton","FormOdpowiedz","handleSaveDraft","handleSavePublished","xhrSave","onUpdate","pytanieTresc","isPytanieTrescInvalid","questionLabel","FormPytanie","onAddQuestion","Pytanie","handleAnswer","onClickAnswer","reloadAnnouncement","noAuthorLabel","renderPytanieLabel","renderOdpowiedz","allowAnswer","renderPytanieButton","renderOdpowiedzLabel","annoucementOwner","PytaniaForOgloszenieAnnouncementOwner","handleUpdate","answeredQuestionId","handleShowAnswerForm","answerFormOn","renderAnswerForm","answeredQuestion","PytaniaForOgloszenieAnonymous","ogloszenieStatus","PytaniaForOgloszenieLoggedIn","handleAddQuestion","questionFormOn","confirmInfo","myQuestionsList","publishedQuestionsList","a","renderQuestionForm","renderConfirmationDialog","questionsListName","questionsList","noQuestionsInfo","noAuthor","OgloszenieDetails","getPrzedmiotyZamowieniaList","getHarmonogramList","hasPointer","prepareChartData","firstDate","lastDate","maxDistance","factor","nextObj","showVersionModeInfo","versionMode","ostatniaOpublikowanaWersjaId","renderOrigin","renderDaneAdresoweOgloszeniodawcy","renderPodsumowanie","indexVersion","all_available_version_ids","draftMode","renderAttachmentsForOrigin","daneAdresowe","tableOfContetns","refs","offsetTop","renderPrzedmiotyZamowienia","renderKryteriaOceny","renderKodyCPV","renderMiejscaRealizacji","renderWarunkiUdziału","renderOgloszeniePodsumowanie","renderPrzedmiotyZamowieniaPodsumowanie","dateForShowing","renderChartData","renderTextError","harmonogramForRendering","h1","h2","OgloszeniePdf","renderPublishedDates","borderLeftStyle","sortAttachmentsByOrigins","czyUlubione","offer_set_badge_count","question_badge_count","isCurrentVersion","handleCloseVersionDialog","showOtherVersionOn","handleChangeTab","handleChangeAdvertisementStatus","handleAddToFavorite","handleRemoveFromFavorite","versionId","origins","originsIds","originId","origin1","origin2","isMyAdvertisement","userAnonymous","renderPytania","renderOfertyForPublishedStatus","renderOfertyForCancelledStatus","renderOfertyForClosedStatus","renderOfertyForResolvedStatus","renderOfertyForAfterPublishedStatus","OwnerComponent","OffererComponent","STATUS_MAP","Wyszukiwarka","handleChangeQuery","renderObject","moje","nazwaOgloszeniodawcy","renderOldBkLink","isPublicationDateRangeCustom","isSubmissionDeadlineRangeCustom","action","translationMap","MY_ADVERTISEMENT","MY_OFFERS","MY_FAVORITE_ADVERTISEMENT","MY_ADVERTISEMENT_QUESTION_SUBMITTED","MY_ADVERTISEMENT_OFFER_SUBMITTED_OR_CHANGED","MY_ADVERTISEMENT_OFFER_WITHDRAWN","MY_ADVERTISEMENT_ENDS_IN_24_HOURS","MY_OFFERS_ADVERTISEMENT_SUBMITTED_CHANGES","MY_OFFERS_ADVERTISEMENT_STATUS_CHANGED","MY_OFFERS_ADVERTISEMENT_ANSWER_SUBMITTED_OR_CHANGED","MY_FAVORITE_ADVERTISEMENT_SUBMITTED_CHANGES","MY_FAVORITE_ADVERTISEMENT_STATUS_CHANGED","MY_FAVORITE_ADVERTISEMENT_ANSWER_SUBMITTED_OR_CHANGED","MY_FAVORITE_ADVERTISEMENT_ENDS_IN_24_HOURS","CircleWithLetter","Notifications","_notificationOptions$","notificationOptions","setNotificationOptions","notificationsEnabled","notifications","margin","handleToggleNotifications","handleToggleNotification","j","tabIndexMap","Map","Newsletter","_location$search","_location$search$spli","activeTab","setActiveTabIndex","tabName","getMapKeyByValue","UnsubscribeSuccess","handleGoToMainPage","UnsubscribeConfirmation","token","setToken","handleError","handleConfirm","setConfirmed","Subscriptions","confirmed","URL_PATTERNS_BY_MENU_LINK_NAME","projectsManagement","advertisementsManagement","contentsManagement","implementationLevelsDictionaryManagement","Routes","onSetMenuLinkByName","patternList","getComponent","component","Redirect","Route","exact","SKIP_LINKS_PRIVATE","SKIP_LINKS","MENU_LINKS","onlyAuthenticated","UePadding","UeFooter","maxWidth","App","clearAuthCookie","handleLogin","handleLogout","xhrLogoutFetch","handleFetchLogoutSuccess","handleFetchLogoutError","handleFetchLogoutIncorrectStatus","logoutDoneOn","logoutError","handleSetMenuLinkByName","currentHref","appContentRef","updateMenuDisplay","addEventListener","setCurrentMenuLink","innerWidth","skipLinks","Router","TopAppBarFixedAdjust","renderMenu","renderLogoutError","TopAppBar","TopAppBarRow","TopAppBarSection","TopAppBarTitle","renderUserWidget","TopAppBarActionItem","DrawerAppContent","Boolean","ReactDOM","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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aACJ,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,SACL,IAAK,QACL,IAAK,gDACL,IAAK,SACL,IAAK,YACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,gBACL,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,YACL,IAAK,aACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,QACL,IAAK,2BACL,IAAK,SACL,IAAK,YACL,IAAK,aACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,aACL,IAAK,gBACL,IAAK,SACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,kBACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,YACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,iBACL,IAAK,gBACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,SACL,IAAK,oBACL,IAAK,WACL,IAAK,OACL,IAAK,WACL,IAAK,sBACL,IAAK,2DACL,IAAK,YACL,IAAK,aACL,IAAK,wBACL,IAAK,kCACL,IAAK,mBACL,IAAK,kBACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,SACL,IAAK,mBACL,IAAK,mBACL,IAAK,sBACL,IAAK,cACL,IAAK,4BACL,IAAK,0BACL,IAAK,WACL,IAAK,QACL,IAAK,0BACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,UACL,IAAK,eACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,UACL,IAAK,YACL,IAAK,4BACL,IAAK,QACL,IAAK,QACL,IAAK,wBACL,IAAK,UACL,IAAK,uBACL,IAAK,QACL,IAAK,aACL,IAAK,UACL,IAAK,mBACL,IAAK,YACL,IAAK,SACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,oBACL,IAAK,UACL,IAAK,SACL,IAAK,eACL,IAAK,SACL,IAAK,SAC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","file":"static/js/main.3f5109a3.chunk.js","sourcesContent":["const SELECT_CLASSNAME = 'select-custom';\nconst SELECT_INVALID_CLASSNAME = 'select-custom select-custom--invalid';\n\n///////////////////////////////////////////////////////////////////////////////\n// projekty //\n///////////////////////////////////////////////////////////////////////////////\n\nconst CZY_PROJEKT_CHOICES = [\n ['all', 'Wszystkie'],\n ['true', 'Projekty'],\n ['false', 'Nabory'],\n]\n\n// used in projects management filters\nconst PROJECTS_MANAGEMENTS_CHOICES = [\n ['all', 'Wszystkie'],\n ['project', 'Projekt'],\n ['enrollment', 'Nabór'],\n]\n\n///////////////////////////////////////////////////////////////////////////////\n// ogloszenia //\n///////////////////////////////////////////////////////////////////////////////\nconst SEARCH_DATE_CHOICES = [\n ['0', '--- Wybierz ---', '', ''],\n ['last_week', 'ostatni tydzień', '-1week', 'today'],\n ['last_two_weeks', 'ostatnie 2 tygodnie', '-2weeks', 'today'],\n ['last_month', 'ostatni miesiąc', '-1month', 'today'],\n ['custom', 'niestandardowo', '', ''],\n];\n\nconst SEARCH_CUSTOM_NAME = SEARCH_DATE_CHOICES[4][0];\n\nconst ADVERTISEMENT_STATUS_FILTERS_CHOICES = [\n ['all', 'Wszystkie'],\n ['CANCELLED', 'Anulowane'],\n ['PUBLISHED', 'Opublikowane'],\n ['DRAFT', 'Robocze'],\n ['RESOLVED', 'Rozstrzygnięte'],\n ['LOCKED', 'Zablokowane'],\n ['CLOSED', 'Zamknięte'],\n].map(choice => ({value: choice[0], label: choice[1]}));\n\n// Current values versus values from old Baza Konkurencyjności\nconst MIEJSCE_REALIZACJI_OLD_BK_DICT = {\n 'poland': 0,\n 'abroad': -1,\n '02': 1,\n '04': 2,\n '06': 3,\n '08': 4,\n '10': 5,\n '12': 6,\n '14': 7,\n '16': 8,\n '18': 9,\n '20': 10,\n '22': 11,\n '24': 12,\n '26': 13,\n '28': 14,\n '30': 15,\n '32': 16,\n};\n\nconst NIP_CHARS_IMPORTANCE = {\n 0: 6,\n 1: 5,\n 2: 7,\n 3: 2,\n 4: 3,\n 5: 4,\n 6: 5,\n 7: 6,\n 8: 7,\n};\n\nconst PESEL_CHARS_IMPORTANCE = {\n 0: 9,\n 1: 7,\n 2: 3,\n 3: 1,\n 4: 9,\n 5: 7,\n 6: 3,\n 7: 1,\n 8: 9,\n 9: 7,\n};\n\n///////////////////////////////////////////////////////////////////////////////\n// zarządzanie treścią //\n///////////////////////////////////////////////////////////////////////////////\n\nconst EKRANY = [\n ['form_ogloszenie_przedmiot','Formularz dodawania ogłoszenia - Przedmiot', 'form_announcement_item'],\n ['form_ogloszenie_terminy','Formularz dodawania ogłoszenia - Terminy', 'form_announcement_deadlines'],\n ['form_ogloszenie_warunki','Formularz dodawania ogłoszenia - Warunki', 'form_announcement_conditions'],\n ['form_ogloszenie_czesciKryteria','Formularz dodawania ogłoszenia - Części i kryteria', 'form_announcement_partscriteria'],\n ['form_ogloszenie_pozostale','Formularz dodawania ogłoszenia - Pozostałe', 'form_announcement_others'],\n ['form_ogloszenie_zalaczniki','Formularz dodawania ogłoszenia - Załączniki', 'form_announcement_attachments'],\n ['projekty_lista_ogloszeniodawca','Projekty - Lista projektów - Ogłoszeniodawca', 'projects_list_advertiser'],\n ['ogloszenia_lista_ogloszeniodawca','Ogłoszenia - Lista ogłoszeń - Ogłoszeniodawca', 'announcements_list_advertiser'],\n ['newsletter_ustawienia','Newsletter', 'newsletter_settings'],\n ['ulubione_lista','Ulubione', 'favorites_list'],\n];\n\nconst EKRANY_DICT = {};\nfor (let e of EKRANY) {\n EKRANY_DICT[e[2]] = {id: e[0], label: e[1]};\n}\n\n// pomoc types\nconst EKRANOWA = 'screen_assigned';\nconst OGOLNA = 'general';\n\n\n///////////////////////////////////////////////////////////////////////////////\n// użytkownicy //\n///////////////////////////////////////////////////////////////////////////////\nconst USER_STATUS_CHOICES = [\n ['all', 'Wszyscy'],\n ['active', 'Aktywni'],\n ['blocked', 'Zablokowani'],\n];\nconst RODZAJ_ADRESU_CHOICES = [\n {\n value: 'poland',\n label: 'Polska',\n },\n {\n value: 'abroad',\n label: 'Zagranica',\n },\n];\nconst RODZAJ_ADRESU_FILTERS_CHOICES = [\n {\n value: 'all',\n label: 'Wszystkie',\n },\n ...RODZAJ_ADRESU_CHOICES\n];\nconst TYP_NUMERU_IDENTYFIKACYJNEGO = [\n ['nip', 'NIP'],\n ['pesel', 'PESEL'],\n ['numer_zagraniczny', 'Numer identyfikacyjny'],\n].map(choice => ({value: choice[0], label: choice[1]}));\nconst TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES = [\n ['all', 'Wszystkie'],\n ['nip', 'NIP'],\n ['pesel', 'PESEL'],\n].map(choice => ({value: choice[0], label: choice[1]}));\nconst TOKEN_COOKIE_NAME = 'auth_token';\nconst USER_DATA_COOKIE_NAME = 'auth_data';\n\n\n///////////////////////////////////////////////////////////////////////////////\n// oferty //\n///////////////////////////////////////////////////////////////////////////////\nconst OFERTA_STATUSES = {\n draft: {\n label: 'DRAFT',\n nazwa: 'Robocza',\n },\n submitted: {\n label: 'SUBMITTED',\n nazwa: 'Złożona',\n },\n withdrawn: {\n label: 'WITHDRAWN',\n nazwa: 'Wycofana',\n },\n};\n\n\nexport {\n ADVERTISEMENT_STATUS_FILTERS_CHOICES,\n CZY_PROJEKT_CHOICES,\n EKRANOWA,\n EKRANY_DICT,\n MIEJSCE_REALIZACJI_OLD_BK_DICT,\n NIP_CHARS_IMPORTANCE,\n OFERTA_STATUSES,\n OGOLNA,\n PESEL_CHARS_IMPORTANCE,\n PROJECTS_MANAGEMENTS_CHOICES,\n RODZAJ_ADRESU_CHOICES,\n RODZAJ_ADRESU_FILTERS_CHOICES,\n SEARCH_CUSTOM_NAME,\n SEARCH_DATE_CHOICES,\n SELECT_CLASSNAME,\n SELECT_INVALID_CLASSNAME,\n TOKEN_COOKIE_NAME,\n TYP_NUMERU_IDENTYFIKACYJNEGO,\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES,\n USER_DATA_COOKIE_NAME,\n USER_STATUS_CHOICES,\n};\n","import { saveAs } from 'file-saver';\nimport { pdf } from '@react-pdf/renderer';\n\nimport { TYP_NUMERU_IDENTYFIKACYJNEGO, TOKEN_COOKIE_NAME } from './const';\n\n\nconst emptyValueList = [\n '',\n 'Wybierz',\n '--- Wybierz ---',\n 'Wybierz...',\n 'Wpisz co najmniej 5 cyfr lub 3 litery...',\n 'Wpisz co najmniej 3 litery...',\n 'Zacznij wpisywać...'\n];\n\n\nconst computeProgress = (additionalAttrFilledLen=0, additionalAttrLen=0) => {\n let filledInputsLen = 0;\n\n // text, number, date, textarea inputs\n // 'user-searching-input' if for user changing\n const inputs = document.querySelectorAll(\n 'input[type=text]:not([disabled=\"\"]):not([id=\"user-searching-input\"]), input[type=number]:not([disabled=\"\"]), input[type=date]:not([disabled=\"\"]), input[type=file]:not([disabled=\"\"]), textarea:not([disabled=\"\"])');\n for (let $i of inputs) {\n if ($i.id.startsWith('react-select')) {\n if (!emptyValueList.includes($i.parentNode.parentNode.parentNode.firstChild.textContent)) {\n filledInputsLen++;\n }\n } else {\n if ($i.value) {\n filledInputsLen++;\n }\n }\n }\n\n // selects\n const selectInputs = document.querySelectorAll('select:not([multiple=\"\"])');\n for (let i of selectInputs) {\n if (i.value !== '0') {\n filledInputsLen++;\n }\n }\n\n // multiselects\n const multiselectInputs = document.querySelectorAll('select[multiple=\"\"]');\n for (let i of multiselectInputs) {\n if (i.selectedOptions.length) {\n filledInputsLen++;\n }\n }\n\n filledInputsLen += additionalAttrFilledLen;\n const inputsLen = inputs.length + selectInputs.length + multiselectInputs.length + additionalAttrLen;\n return inputsLen === 0 ? 1 : (filledInputsLen === 0 ? 0 : filledInputsLen / inputsLen);\n}\n\n\nconst getLastTemporaryId = (attribute, subAttributeName) => {\n // get last subAttribute temporaryId (needed for adding subAttribute)\n let temporaryIds = [];\n for (let obj of attribute) {\n temporaryIds = [...temporaryIds, ...(obj[subAttributeName] || []).map((o) => parseInt(o.temporaryId))];\n }\n return temporaryIds.length > 0 ? Math.max(...temporaryIds) : 0\n}\n\n\nconst getLastTemporaryIdFromList = (list) => {\n const temporaryIds = list.map((obj) => obj.temporaryId);\n return temporaryIds.length > 0 ? Math.max(...temporaryIds) : 0\n}\n\n\nconst fillWithLeadingZero = (value, length=2) => {\n value = value.toString();\n if (value.length >= length) {\n return value\n }\n return `${'0'.repeat(length - value.length)}${value}`\n};\n\nconst datetimeStringToISO = (date) => {\n if (!date) { return '' }\n return date.replace(/\\s/g, 'T')\n}\n\nconst dateToString = (date) => {\n if (!date) { return '' }\n return `${date.getFullYear()}-${fillWithLeadingZero(date.getMonth() + 1)}-${fillWithLeadingZero(date.getDate())}`\n};\n\nconst dateToStringOldBK = (date) => {\n if (!date) { return '' }\n return `${fillWithLeadingZero(date.getDate())}.${fillWithLeadingZero(date.getMonth() + 1)}.${date.getFullYear()}`\n};\n\nconst datetimeToString = (date) => {\n if (!date) { return '' }\n return `${date.getFullYear()}-${fillWithLeadingZero(date.getMonth() + 1)}-${fillWithLeadingZero(date.getDate())} ${fillWithLeadingZero(date.getHours())}:${fillWithLeadingZero(date.getMinutes())}`\n};\n\nconst dateStringToYearMonth = (dateString) => {\n return (dateString || '').substring(0, 7)\n};\n\nconst timeToString = (date) => {\n if (!date) { return '' }\n return `${fillWithLeadingZero(date.getHours())}:${fillWithLeadingZero(date.getMinutes())}:${fillWithLeadingZero(date.getSeconds())}`\n};\n\nconst listOrEmpty = (value) => {\n return value || []\n}\n\nconst stringOrEmpty = (value) => {\n return value || ''\n}\n\nconst isNotEmpty = (value, fieldType='str') => {\n if (fieldType === 'list') {\n value = listOrEmpty(value);\n }\n value = stringOrEmpty(value);\n return value.length > 0\n};\n\nconst setCustomSelectAttributes = (selectRef) => {\n const inputId = selectRef.current.querySelector('input').getAttribute('id');\n selectRef.current.querySelector('label').setAttribute('for', inputId);\n};\n\nconst setCustomInputAttributes = (inputRef) => {\n const setAttr = (inputRef, querySelector) => {\n const button = inputRef.current.querySelector(querySelector);\n\n if (button) {\n button.setAttribute('aria-label', 'Wyczyść pole');\n button.setAttribute('type', 'button');\n button.style.right = '12px';\n }\n };\n\n setAttr(inputRef, 'button.react-datepicker__close-icon');\n};\n\nconst setFocusOnElement = (elRef) => {\n if (elRef) {\n elRef.current.focus();\n elRef.current.setAttribute('tabIndex', '-1');\n }\n}\n\nconst triggerBodyClick = () => {\n document.querySelector('body').click();\n};\n\nconst getCookieValue = (name) => {\n for (let cookie of document.cookie.split(';')) {\n const [n, v] = cookie.trim().split('=');\n if (n === name) {\n return v\n }\n }\n return null\n};\n\nconst getAuthTokenCookieValue = () => {\n let authTokenCookieValue = getCookieValue(TOKEN_COOKIE_NAME);\n if (authTokenCookieValue === 'null') {\n authTokenCookieValue = null;\n }\n if (authTokenCookieValue) {\n authTokenCookieValue = decodeURIComponent(authTokenCookieValue);\n }\n return authTokenCookieValue\n};\n\nconst deleteCookie = (name, callback=null) => {\n document.cookie = `${name}=null;Max-Age=10;path=/`;\n if (callback) { callback() }\n};\n\nconst refreshCookie = (name, maxAge, value=null) => {\n value = value || getCookieValue(name);\n if (value) {\n document.cookie = `${name}=${value};Max-Age=${maxAge};path=/`;\n }\n};\n\nconst refreshTimerAfterRequest = (authTokenCookieValue, statusCode) => {\n if (!authTokenCookieValue || (statusCode > 400 && statusCode !== 403)) {\n if (statusCode === 401) {\n if (window.sessionComponent) {\n window.sessionComponent.showUnauthorizedMessage();\n } else {\n // user couldn't authenticate, remove cookie\n deleteCookie(TOKEN_COOKIE_NAME);\n }\n }\n return\n }\n if (window.sessionComponent) {\n window.sessionComponent.refreshTimerAfterRequest(authTokenCookieValue);\n }\n};\n\nconst refreshTimerAfterSativaRequest = (authTokenCookieValue, statusCode) => {\n if (window.sessionComponent) {\n window.sessionComponent.handleRefreshSessionTime();\n }\n};\n\nconst countWysiwygChars = (content) => {\n if (!content) { return 0 }\n let counter = 0;\n for (let block of content.blocks) {\n counter += block.text.length;\n counter++;\n }\n // remove enter after last block\n counter--;\n return counter\n};\n\nconst extractYoutubeSrc = (url) => {\n /*\n examples:\n http://www.youtube.com/watch?v=KjgWWjkNbhU&feature=youtu.be\n http://www.youtube.com/watch?v=KjgWWjkNbhU\n http://youtu.be/KjgWWjkNbhU\n with timing\n https://youtu.be/KjgWWjkNbhU?t=9s\n https://www.youtube.com/watch?time_continue=9&v=KjgWWjkNbhU\n return\n http://www.youtube.com/embed/KjgWWjkNbhU?rel=0[&start=9 opcja]\n */\n\n const long_domain = 'www.youtube.com',\n short_domain = 'youtu.be';\n\n try {\n url = new URL(url);\n } catch {\n return ''\n }\n\n if (![long_domain, short_domain].includes(url.hostname)) { return ''}\n\n const params = new URLSearchParams(url.searchParams);\n let videoId;\n if (url.hostname === long_domain && url.pathname.startsWith('/watch')) {\n // Long url - http://www.youtube.com/watch?v=KjgWWjkNbhU\n videoId = params.get('v');\n } else {\n // Short url - http://youtu.be/KjgWWjkNbhU\n // Embed url - https://www.youtube.com/embed/KjgWWjkNbhU\n const splitedPath = url.pathname.split('/')\n videoId = splitedPath[splitedPath.length - 1]\n }\n\n if (!videoId) { return '' }\n\n const _boolToInt = (paramString) => {\n if (['1', 'true', 'True'].includes(paramString)) { return 1 }\n if (['0', 'false', 'False'].includes(paramString)) { return 0 }\n return null\n };\n\n const _timeInSeconds = (timeString) => {\n const regex = /^((?\\d+)d)?((?\\d+)h)?((?\\d+)m)?((?\\d+)s?)?$/gi;\n\n const match = regex.exec(timeString || '');\n if (!match) { return null }\n\n const durationGroups = match.groups;\n let duration = 0;\n const timeDict = {\n days: 60 * 60 * 24,\n hours: 60 * 60,\n minutes: 60,\n seconds: 1,\n };\n\n for (let [key, multipleValue] of Object.entries(timeDict)) {\n if (durationGroups[key]) {\n duration += (parseInt(durationGroups[key]) || 0) * multipleValue;\n }\n }\n\n return duration || null\n };\n\n const _timeInInt = (timeString) => {\n // parseInt returns first digits from string, we don't want to do that\n const regex = /^\\d+$/;\n if (!regex.exec(timeString)) { return null }\n return parseInt(timeString);\n };\n\n const allowedParams =[\n {\n name: 'rel',\n iframeParamName: 'rel',\n convertFunc: _boolToInt,\n default_: 0,\n },\n {\n name: 'loop',\n iframeParamName: 'loop',\n convertFunc: _boolToInt,\n },\n {\n name: 't',\n iframeParamName: 'start',\n convertFunc: _timeInSeconds,\n },\n {\n name: 'time_continue',\n iframeParamName: 'start',\n convertFunc: _timeInSeconds,\n },\n {\n name: 'start',\n iframeParamName: 'start',\n convertFunc: _timeInInt,\n },\n {\n name: 'end',\n iframeParamName: 'end',\n convertFunc: _timeInSeconds,\n },\n ];\n\n const iframeParams = {};\n for (let p of allowedParams) {\n const paramStr = params.get(p['name']);\n if (paramStr) {\n // convert param value string\n let value = p['convertFunc'](paramStr);\n if (value === null) {\n if (!Object.keys(p).includes('default_')) {\n // param value is invalid and it hasn't got default\n // skip this param\n continue\n }\n // param value is invalid, get default\n value = p['default_'];\n }\n iframeParams[p['iframeParamName']] = value;\n } else if (Object.keys(p).includes('default_')) {\n iframeParams[p['iframeParamName']] = p['default_'];\n }\n }\n return `${url.protocol}//www.youtube.com/embed/${videoId}?${new URLSearchParams(iframeParams).toString()}`\n};\n\nconst getRodzajAdresuDict = (kraj) => {\n if (kraj === 'Polska') {\n return {\n value: 'poland',\n label: 'Polska',\n }\n }\n return {\n value: 'abroad',\n label: 'Zagranica',\n }\n}\n\nconst generatePdfDocument = async (documentComponent, fileName, creatingCallback) => {\n const blob = await pdf(documentComponent).toBlob();\n if (creatingCallback) {\n creatingCallback();\n }\n saveAs(blob, fileName);\n};\n\nconst saveFileFromApi = async (url, fileName) => {\n\tconst authTokenCookieValue = getAuthTokenCookieValue();\n\t\n\tlet result = null;\n\tif(authTokenCookieValue){\n\t result = await fetch(url, {\t\n\t headers: {'X-Auth-Token': authTokenCookieValue}\n\t })\n\t}else {\n\t\tresult = await fetch(url)\n\t}\n\n\tif(result != null){\n \tconst blob = await result.blob()\n\t\tsaveAs(blob, fileName);\n\t}\n };\n\nconst getBreakIndex = (charsList, slicedLine) => {\n let splittingCharsIndexes = charsList.map(\n char => slicedLine.lastIndexOf(char));\n return Math.max(...splittingCharsIndexes)\n}\n\n\nconst splitLineByChar = (text) => {\n const textLength = text.length;\n\n let lines = [];\n let line = '';\n let lineLength = 0;\n let entersInLine = 0;\n\n let i = 0;\n while (i < textLength) {\n let char = text[i];\n const isEnter = /\\n/.test(char);\n if (isEnter) {\n entersInLine += 1;\n }\n line += char;\n i++;\n lineLength++;\n if (lineLength >= 1000 || entersInLine >= 40) {\n if (isEnter) {\n lines.push(line);\n line = '';\n lineLength = 0;\n entersInLine = 0;\n } else {\n // find first enter char before missing 4000th char for this line in missing text\n const missingText = text.substring(i, i + 4001 - lineLength);\n const enterIndex = missingText.indexOf('\\n');\n if (enterIndex > -1) {\n // add chars until enter\n line += missingText.substring(0, enterIndex + 1);\n lines.push(line);\n line = '';\n lineLength = 0;\n entersInLine = 0;\n i += enterIndex + 1;\n } else {\n // check length of real missing text\n const realMissingText = text.substring(i);\n if (lineLength + realMissingText.length < 4000) {\n line += realMissingText;\n i += realMissingText.length;\n } else {\n // maybe there is some char from the list before 4000th char\n const breakIndex = getBreakIndex([' ', ',', ';', '?', '!'], missingText);\n if (breakIndex > -1) {\n line += missingText.substring(0, breakIndex + 1)\n lines.push(line);\n line = '';\n lineLength = 0;\n entersInLine = 0;\n i += breakIndex + 1;\n } else {\n // cut line util 4001st char\n line += missingText;\n lines.push(line);\n line = '';\n lineLength = 0;\n entersInLine = 0;\n i += missingText.length;\n }\n }\n }\n }\n }\n }\n lines.push(line)\n return lines\n};\n\n\nconst roundStringTo = (value, n=2) => {\n if (!value.length) {\n return value\n }\n value = value.replace(',', '.');\n // cut to n decimal\n const splittedValue = value.split('.');\n\n let firstPart = splittedValue[0];\n // manage leading zeros\n if (!firstPart) {\n firstPart ='0';\n } else {\n while (true) {\n if (firstPart.length > 1 && firstPart[0] === '0') {\n firstPart = firstPart.slice(1);\n } else {\n break\n }\n }\n }\n return `${firstPart},${splittedValue.length > 1 ? splittedValue[1].slice(0, n).padEnd(n, '0') : '00'}`\n};\n\nconst redirectToLoginView = (ovverrideCurrentPathname = true) => {\n if(ovverrideCurrentPathname) {\n sessionStorage.setItem(\n 'currentPathname', window.location.pathname + window.location.search);\n }\n\n // \"log in\" user, go to backend\n window.location.href = '/api/authentication/login-redirect';\n}\n\nconst slugify = (value) => {\n return value.toString().toLowerCase().trim()\n .replace(/\\s+/g, '-') // Replace spaces with '-'\n .replace(/ą/g, 'a') // Replace Polish char\n .replace(/ć/g, 'c') // Replace Polish char\n .replace(/ę/g, 'e') // Replace Polish char\n .replace(/ł/g, 'ł') // Replace Polish char\n .replace(/ń/g, 'n') // Replace Polish char\n .replace(/ó/g, 'o') // Replace Polish char\n .replace(/ś/g, 's') // Replace Polish char\n .replace(/ź/g, 'z') // Replace Polish char\n .replace(/ż/g, 'z') // Replace Polish char\n .replace(/[^\\w-]+/g, '') // Remove all non-word chars\n .replace(/--+/g, '-') // Replace multiple '-' with single '-'\n};\n\nconst sortOrderItems = (orderItem1, orderItem2) => {\n return orderItem1.temporaryId > orderItem2.temporaryId ? 1 : -1\n};\n\nconst getSortedOrderItemsFromOrder = (orderList) => {\n let orderItems = [];\n for (let order of orderList) {\n for (let orderItem of order.przedmiotyZamowienia) {\n orderItems.push(orderItem);\n }\n }\n orderItems.sort(sortOrderItems);\n return orderItems\n};\n\nconst getOrderItemsLength = (orderList) => {\n let orderItems = [];\n for (let order of orderList) {\n for (let orderItem of order.przedmiotyZamowienia) {\n orderItems.push(orderItem);\n }\n }\n return orderItems.length\n};\n\nconst reformatDanePodmiotu = (data) => {\n if (data) {\n return Object.assign(\n {}, data,\n {\n typNumeruIdentyfikacyjnego: TYP_NUMERU_IDENTYFIKACYJNEGO.filter(\n t => t.value === data.typNumeruIdentyfikacyjnego)[0] || TYP_NUMERU_IDENTYFIKACYJNEGO[0],\n rodzajAdresu: getRodzajAdresuDict(data.adres.kraj),\n }\n )\n }\n return {}\n};\n\nconst getPricesRange = (prices) => {\n let pricesDict = {};\n let maxPriceLength = Math.max(...prices.map(p => p.length));\n for (let price of prices) {\n pricesDict[price.padStart(maxPriceLength, '0')] = price;\n }\n const paddedPriced = Object.keys(pricesDict).sort();\n return {\n min: pricesDict[paddedPriced[0]],\n max: pricesDict[paddedPriced[paddedPriced.length - 1]]\n }\n};\n\nconst isAdvertisementLocked = (statusDict) => {\n return ((statusDict || {}).label || '') === 'LOCKED'\n};\n\n// pagination\nconst checkHasPrev = (pageNumber) => {\n return pageNumber > 1\n};\n\nconst checkHasNext = (paginatedBy, pageNumber, total) => {\n return Math.ceil(total / paginatedBy) > pageNumber\n}\n\n// implementation levels\nconst sortProgrammes = (programme1, programme2) => {\n return programme1.code.localeCompare(programme2.code, 'pl')\n}\n\nconst sortImplementationLevelByNumberCode = (obj1, obj2) => {\n return obj1.code.localeCompare(obj2.code, 'pl')\n};\n\nconst hasSubactivities = (perspectiveData) => {\n perspectiveData = perspectiveData || {};\n return (\n perspectiveData.activity_types || perspectiveData.activityTypes || []\n ).includes('subactivities')\n};\n\nconst hasPerspectiveRegions = (perspectiveData) => {\n perspectiveData = perspectiveData || {};\n return (\n perspectiveData.activity_types || perspectiveData.activityTypes || []\n ).includes('regions')\n};\n\nconst hasPerspectiveInstitutions = (perspectiveData) => {\n perspectiveData = perspectiveData || {};\n return (\n perspectiveData.activity_types || perspectiveData.activityTypes || []\n ).includes('institutions')\n};\n\nconst getActivityUrlByPerspectiveData = (perspectiveData) => {\n return hasSubactivities(perspectiveData)\n ? 'managementSubactivitiesForPriority'\n : 'managementActivitiesForPriority'\n};\n\nconst getActivityChildUrlByPerspectiveData = (perspectiveData) => {\n perspectiveData = perspectiveData || {};\n const activityTypes =\n perspectiveData.activity_types || perspectiveData.activityTypes || [];\n if (activityTypes.includes('regions')) {\n return 'managementRegionsForSubactivity'\n }\n if (activityTypes.includes('institutions')) {\n return 'managementInstitutionsForActivity'\n }\n return null\n};\n\nconst serializePerspectiveForSelect = (data) => {\n return {\n perspectives: data.perspectives.map(p => ({\n value: p.id,\n code: p.name,\n label: p.name,\n activity_types: p.activity_types || p.activityTypes,\n })),\n }\n}\n\nconst getUserFullName = (data) => {\n const forename = data.imie || data.forename || '';\n const surname = data.nazwisko || data.surname || '';\n return (forename.length || surname.length) ? `${forename} ${surname}` : null\n}\n\nconst serializeAuditData = (data) => {\n return {\n createdAt:\n data.dataUtworzenia || data.createdAt || data.created_at || null,\n createdBy: getUserFullName(\n data.ktoUtworzyl || data.createdBy || data.created_by || {}),\n modifiedAt:\n data.dataModyfikacji || data.modifiedAt || data.modified_at || null,\n modifiedBy: getUserFullName(\n data.ktoModyfikowal || data.modifiedBy || data.modified_by || {}),\n }\n}\n\nconst generateUUIDV4 = () => {\n return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n );\n }\n\n\nexport {\n checkHasNext,\n checkHasPrev,\n computeProgress,\n countWysiwygChars,\n dateToString,\n dateToStringOldBK,\n datetimeToString,\n datetimeStringToISO,\n dateStringToYearMonth,\n deleteCookie,\n extractYoutubeSrc,\n fillWithLeadingZero,\n generatePdfDocument,\n\tsaveFileFromApi,\n getActivityChildUrlByPerspectiveData,\n getActivityUrlByPerspectiveData,\n getAuthTokenCookieValue,\n getCookieValue,\n getLastTemporaryId,\n getLastTemporaryIdFromList,\n getOrderItemsLength,\n getPricesRange,\n getRodzajAdresuDict,\n getSortedOrderItemsFromOrder,\n getUserFullName,\n hasPerspectiveInstitutions,\n hasPerspectiveRegions,\n hasSubactivities,\n isAdvertisementLocked,\n isNotEmpty,\n listOrEmpty,\n redirectToLoginView,\n reformatDanePodmiotu,\n refreshCookie,\n refreshTimerAfterRequest,\n refreshTimerAfterSativaRequest,\n roundStringTo,\n serializeAuditData,\n serializePerspectiveForSelect,\n setCustomInputAttributes,\n setCustomSelectAttributes,\n setFocusOnElement,\n slugify,\n sortImplementationLevelByNumberCode,\n sortProgrammes,\n splitLineByChar,\n timeToString,\n triggerBodyClick,\n generateUUIDV4,\n};\n\nif (typeof module === 'object' && module.exports) {\n module.exports = {\n extractYoutubeSrc,\n getPricesRange,\n getRodzajAdresuDict,\n roundStringTo,\n slugify,\n };\n}\n","import {\n NIP_CHARS_IMPORTANCE,\n PESEL_CHARS_IMPORTANCE,\n SEARCH_CUSTOM_NAME\n} from './const';\nimport { countWysiwygChars, slugify } from './helpers';\n\n\n///////////////////////////////////////////////////////////////////////////////\n// fields checks //\n///////////////////////////////////////////////////////////////////////////////\nconst checkRequired = (value) => {\n if (!value || !value.length) {\n return 'To pole jest wymagane.'\n }\n return ''\n}\n\nconst checkRequiredPrzedmiotZamowienia = (value) => {\n return checkListRequired(\n value, 'Dodaj co najmniej jeden przedmiot zamówienia, aby zdefiniować dla niego atrybuty.')\n}\n\nconst checkNabor = (value, projectsSelected) => {\n // don't validate if projectsSelected is null\n if (projectsSelected === null) { return '' }\n if (!projectsSelected && (!value || !value.value)) {\n return 'To pole jest wymagane.'\n }\n return ''\n}\n\nconst checkProjekty = (value, projectsSelected) => {\n // don't validate if projectsSelected is null\n if (projectsSelected === null) { return '' }\n if (projectsSelected && (!value || !value.length)) {\n return 'To pole jest wymagane.'\n }\n return ''\n}\n\nconst checkListRequired = (value, msg='') => {\n if (!value.length) {\n return msg || 'To pole jest wymagane.'\n }\n return ''\n}\n\nconst checkSelectRequired = (value) => {\n if ([0, '0', null].includes(value)) {\n return 'To pole jest wymagane.'\n }\n return ''\n}\n\n\nconst checkDatesDependency = (start, end) => {\n if (!start.length || !end.length) { return '' }\n if (new Date(start) > new Date(end)) {\n return 'Data końca musi być późniejsza niż data początku.'\n }\n return ''\n}\n\n\nconst checkWysiwygEditorRequired = (content) => {\n if (!content || !content.blocks.length) { return false }\n return countWysiwygChars(content) > 0\n}\n\n\nconst checkNip = (value) => {\n let error = '';\n if (value.length) {\n if (!/^\\d{10}$/.test(value)) {\n error = 'Wpisz poprawny numer NIP.';\n } else {\n // count control sum\n let controlSum = 0;\n for (let i=0; i < value.length - 1; i++) {\n controlSum += parseInt(value[i]) * NIP_CHARS_IMPORTANCE[i];\n }\n if (controlSum % 11 !== parseInt(value[9])) {\n error = 'Wpisz poprawny numer NIP. Suma kontrolna jest nieprawidłowa.';\n }\n }\n }\n return error\n};\n\n\nconst checkPesel = (value) => {\n let error = '';\n if (value.length) {\n if (!/^\\d{11}$/.test(value)) {\n error = 'Wpisz poprawny numer PESEL.';\n } else {\n // count control sum\n let controlSum = 0;\n for (let i=0; i < value.length - 1; i++) {\n controlSum += parseInt(value[i]) * PESEL_CHARS_IMPORTANCE[i];\n }\n if (controlSum % 10 !== parseInt(value[10])) {\n error = 'Wpisz poprawny numer PESEL. Suma kontrolna jest nieprawidłowa.';\n }\n }\n }\n return error\n};\n\nconst checkKodPocztowy = (value) => {\n let error = '';\n if (value.length) {\n if (!/^\\d{2}-\\d{3}$/.test(value)) {\n error = 'Wpisz poprawny kod pocztowy.';\n }\n }\n return error\n};\n\nconst checkEmail = (value) => {\n if (value.length) {\n // check spaces; check if includes @ char; check dot char after @ char\n if (value.includes(' ') || value.split('@').length !== 2 || value.indexOf('.', value.indexOf('@')) < 0) {\n return 'Wpisz poprawny adres e-mail.'\n }\n }\n return ''\n};\n\nconst checkSimilarValueOnList = (value, valueList, message='') => {\n if (valueList.map(v => slugify(v)).filter(v => v === slugify(value)).length > 1) {\n return message || 'Wartość tego pola jest podobna do wartości analogicznego pola w innym obiekcie na liście.'\n }\n return ''\n};\n\nconst checkSimilarTitleValueOnList = (value, valueList) => {\n return (checkSimilarValueOnList(\n value, valueList,\n 'Tytuł tej części jest zbyt podobny do tytułu innej części. Zmień tytuł tak, aby łatwo było go odróżnić od pozostałych.'\n ))\n}\n\n\n///////////////////////////////////////////////////////////////////////////////\n// configs //\n///////////////////////////////////////////////////////////////////////////////\n\nconst ogloszeniePrzedmiotZamowieniaRequiredValidators = {\n zamowienia_kryteriaOceny: {\n validators: [checkRequiredPrzedmiotZamowienia, ],\n formStep: 'czesciKryteria',\n },\n przedmiotyZamowienia: {\n validators: [checkRequiredPrzedmiotZamowienia, ],\n formStep: 'przedmiot',\n },\n przedmiotyZamowienia_harmonogramy: {\n validators: [checkRequiredPrzedmiotZamowienia, ],\n formStep: 'terminy',\n },\n przedmiotyZamowienia_warunkiUdzialu: {\n validators: [checkRequiredPrzedmiotZamowienia, ],\n formStep: 'warunki',\n },\n};\n\nconst titleValidatorData = {\n validators: [checkRequired, ],\n formStep: 'pozostale',\n};\nconst projectsValidationData = {\n validators: [checkProjekty, ],\n formStep: 'pozostale',\n};\nconst enrollmentValidatorData = {\n validators: [checkNabor, ],\n formStep: 'pozostale',\n};\nconst contactPersonsValidatorData = {\n validators: [checkListRequired, ],\n formStep: 'pozostale',\n};\n\nconst advertisementValidators = {\n tytul: titleValidatorData,\n projekty: projectsValidationData,\n nabor: enrollmentValidatorData,\n osobyDoKontaktu: contactPersonsValidatorData,\n ...ogloszeniePrzedmiotZamowieniaRequiredValidators,\n};\n\nconst publishedAdvertisementOwnerValidators = {\n tytul: titleValidatorData,\n osobyDoKontaktu: contactPersonsValidatorData,\n};\n\nconst publishedAdvertisementAdminValidators = {\n tytul: titleValidatorData,\n projekty: projectsValidationData,\n nabor: enrollmentValidatorData,\n};\n\nconst zamowienieValidators = {\n kryteriaOceny: [checkListRequired, ],\n tytul: [checkRequired, checkSimilarTitleValueOnList],\n};\n\nconst kryteriumOcenyValidators = {\n opis: [checkRequired, ],\n};\n\nconst przedmiotZamowieniaValidators = {\n kategoria: [checkSelectRequired, ],\n podkategoria: [checkSelectRequired, ],\n opis: [checkRequired, ],\n kodyCPV: [checkListRequired, ],\n miejscaRealizacji: [checkListRequired, ],\n};\n\nconst publishedPrzedmiotZamowieniaValidators = {\n opis: [checkRequired, ],\n kodyCPV: [checkListRequired, ],\n miejscaRealizacji: [checkListRequired, ],\n};\n\nconst harmonogramValidators = {\n koniecRealizacji: [checkRequired, ],\n dependent: [\n // validator name, attributes names as props for validator, attribute name for error showing\n [checkDatesDependency, ['poczatekRealizacji', 'koniecRealizacji'], 'koniecRealizacji'],\n ]\n};\n\nconst warunekUdzialuValidators = {\n typ: [checkSelectRequired, ],\n opis: [checkRequired, ],\n};\n\nconst zalacznikValidators = {\n nazwa: [checkRequired, ],\n nested: [\n // validator name, subattribute name, attribute name for error showing\n [checkRequired, 'uri', 'plik']]\n};\n\n\n///////////////////////////////////////////////////////////////////////////////\n// functions //\n///////////////////////////////////////////////////////////////////////////////\n\nconst validateAdvertisementBaseAttributes = (\n advertisement, projectsSelected, validatorsDict\n) => {\n let przedmiotyZamowienia = [];\n for (let z of advertisement.zamowienia) {\n przedmiotyZamowienia = [...przedmiotyZamowienia, ...z.przedmiotyZamowienia];\n }\n let errors = {};\n let stepErrors = {};\n for (let [attrName, validators] of Object.entries(validatorsDict)) {\n let value = advertisement[attrName];\n for (let v of validators.validators) {\n let error;\n if ([checkNabor, checkProjekty].includes(v)) {\n error = v(value, projectsSelected);\n } else {\n if (v === checkRequiredPrzedmiotZamowienia) {\n value = przedmiotyZamowienia;\n }\n error = v(value);\n }\n if (error.length > 0) {\n errors[attrName] = error;\n stepErrors[validators.formStep] = true;\n break\n }\n }\n }\n return [errors, stepErrors]\n}\n\n\nconst validateZamowienieAttributes = (ogloszenie) => {\n // validate basic fields\n let [errors, stepErrors] = validateFieldAttributes(\n ogloszenie.zamowienia, zamowienieValidators, 'czesciKryteria');\n // validate if zamowienie has at least one przedmiotZamowienia\n\n let przedmiotyZamowienia = [];\n for (let z of ogloszenie.zamowienia) {\n przedmiotyZamowienia = [...przedmiotyZamowienia, ...z.przedmiotyZamowienia];\n }\n [errors, stepErrors] = validatePrzedmiotyZamowieniaInZamowienie(\n ogloszenie.zamowienia, errors, stepErrors);\n // validate szcunkowaWartosci\n [errors, stepErrors] = validateSzacunkowaWartosc(\n ogloszenie.zamowienia, errors, stepErrors);\n return [errors, stepErrors]\n}\n\n\nconst validatePrzedmiotyZamowieniaInZamowienie = (zamowienie, errors, stepErrors) => {\n // every zamowienie has to have at least one przedmiotZamowienia\n for (let z of zamowienie) {\n if (!z.przedmiotyZamowienia.length) {\n errors[z.temporaryId]['przedmiotyZamowienia'] = 'Brak przedmiotów zamówienia dla tego zamówienia.';\n stepErrors['czesciKryteria'] = true;\n }\n }\n return [errors, stepErrors]\n}\n\n\nconst validateSzacunkowaWartosc = (zamowienia, errors, stepErrors) => {\n for (let z of zamowienia) {\n let value = z.szacunkowaWartosc;\n if (!value.length) { return [errors, stepErrors] }\n if (!/^\\d{1,24},\\d{2}$/.test(value)) {\n errors[z.temporaryId]['szacunkowaWartosc'] = 'Wpisz poprawną wartość zgodnie ze wzorem.';\n stepErrors['czesciKryteria'] = true;\n } else {\n if (parseInt(value.replace(',', '')) === 0) {\n errors[z.temporaryId]['szacunkowaWartosc'] = 'Ta wartość powinna być większa od 0.';\n stepErrors['czesciKryteria'] = true;\n }\n if (value.length > 27) {\n errors[z.temporaryId]['szacunkowaWartosc'] = 'Ta wartość nie może być większa od 999999999999999999999999,99.';\n stepErrors['czesciKryteria'] = true;\n }\n }\n }\n return [errors, stepErrors]\n}\n\n\nconst validateKryteriumOcenyAttributes = (kryteriumOceny) => {\n return validateFieldAttributes(kryteriumOceny, kryteriumOcenyValidators, 'czesciKryteria')\n}\n\n\nconst validatePrzedmiotZamowieniaBaseAttributes = (przedmiotZamowienia, isAlreadyPublished) => {\n return validateFieldAttributes(\n przedmiotZamowienia,\n isAlreadyPublished ? publishedPrzedmiotZamowieniaValidators : przedmiotZamowieniaValidators,\n 'przedmiot'\n )\n};\n\n\nconst validateHarmonogramAttributes = (harmonogram) => {\n return validateFieldAttributes(harmonogram, harmonogramValidators, 'terminy')\n}\n\n\nconst validateWarunekUdzialuAttributes = (warunekUdzialu) => {\n return validateFieldAttributes(warunekUdzialu, warunekUdzialuValidators, 'warunki')\n}\n\n\nconst validateZalacznikAttributes = (zalacznik) => {\n return validateFieldAttributes(zalacznik, zalacznikValidators, 'zalaczniki')\n}\n\n\nconst validateFieldAttributes = (objectList, fieldValidators, stepName) => {\n let errors = {};\n let stepErrors = {};\n for (let attr of objectList) {\n errors[attr.temporaryId] = {};\n for (let [attrName, validators] of Object.entries(fieldValidators)) {\n if (attrName === 'dependent') {\n for (let v of validators) {\n let error = v[0](...v[1].map((name) => attr[name]));\n if (error.length > 0) {\n errors[attr.temporaryId][v[2]] = error;\n stepErrors[stepName] = true;\n break\n }\n }\n continue\n }\n if (attrName === 'nested') {\n for (let v of validators) {\n let error = v[0](attr[v[2]][v[1]]);\n if (error.length > 0) {\n errors[attr.temporaryId][v[2]] = error;\n stepErrors[stepName] = true;\n break\n }\n }\n continue\n }\n const value = attr[attrName];\n for (let v of validators) {\n let error;\n if ([checkSimilarValueOnList, checkSimilarTitleValueOnList].includes(v)) {\n error = v(value, objectList.map(o => o[attrName]));\n } else {\n error = v(value);\n }\n if (error.length > 0) {\n errors[attr.temporaryId][attrName] = stepName === 'zalaczniki' ? [error] : error;\n stepErrors[stepName] = true;\n break\n }\n }\n }\n }\n return [errors, stepErrors]\n}\n\n\nconst validateWysiwygEditor = (content) => {\n return checkWysiwygEditorRequired(content);\n};\n\n// search validators\n\nconst validateSearchFilters = (filters) => {\n let errors = {};\n let isValid = true;\n\n // validate status - at least one check has to be checked\n if (!filters.status.length) {\n errors['status'] = 'Wybierz przynajmniej jeden status ogłoszenia.';\n isValid = false;\n }\n\n // validate dates\n for (let name of ['publicationDateRange', 'submissionDeadlineRange']) {\n if (filters[name].type === SEARCH_CUSTOM_NAME) {\n if (!filters[name].from && !filters[name].to) {\n errors[name] = 'Wybierz przynajmniej jedną z dat.'\n isValid = false;\n }\n }\n }\n\n return [isValid, errors]\n}\n\n// user validators\n\nconst validatePersonalData = (data) => {\n let errors = {\n adres: {},\n };\n let isValid = true;\n let error = '';\n\n // check required\n for (let [name, isAdresPart] of [\n ['nazwa', false], ['miejscowosc', true], ['kodPocztowy', true],\n ['numerIdentyfikacyjny', false], ['numerDomu', true]]\n ) {\n error = checkRequired(isAdresPart ? data.adres[name] : data[name]);\n if (error.length) {\n isValid = false;\n if (isAdresPart) {\n errors['adres'][name] = [error, ];\n } else {\n errors[name] = [error, ];\n }\n }\n }\n\n if (data.rodzajAdresu === 'poland') {\n // check NIP and PESEL sum control\n if (data.typNumeruIdentyfikacyjnego === 'nip') {\n error = checkNip(data.numerIdentyfikacyjny);\n } else if (data.typNumeruIdentyfikacyjnego === 'pesel') {\n error = checkPesel(data.numerIdentyfikacyjny);\n }\n if (error.length) {\n isValid = false;\n errors['numerIdentyfikacyjny'] = [error, ];\n }\n\n // check kod pocztowy\n error = checkKodPocztowy(data.adres.kodPocztowy);\n if (error.length) {\n isValid = false;\n errors['adres']['kodPocztowy'] = [error, ];\n }\n } else {\n // check kraj\n error = checkRequired(data.adres.kraj);\n if (error.length) {\n isValid = false;\n errors['adres']['kraj'] = [error, ];\n }\n }\n\n return [isValid, errors]\n};\n\n\nconst validateOsobaDoKontaktu = (data) => {\n let errors = {};\n let isValid = true;\n let error = '';\n\n // check required fields\n for (let name of ['imie', 'nazwisko', 'email']) {\n const value = data[name];\n error = checkRequired(value);\n if (error.length) {\n isValid = false;\n errors[name] = error;\n } else if (name === 'email') {\n // validate email structure\n error = checkEmail(value);\n if (error.length) {\n isValid = false;\n errors[name] = error;\n }\n }\n }\n\n return [isValid, errors]\n};\n\n\n///////////////////////////////////////////////////////////////////////////////\n// exports //\n///////////////////////////////////////////////////////////////////////////////\n\nexport {\n advertisementValidators,\n ogloszeniePrzedmiotZamowieniaRequiredValidators,\n publishedAdvertisementAdminValidators,\n publishedAdvertisementOwnerValidators,\n validateHarmonogramAttributes,\n validateKryteriumOcenyAttributes,\n validateAdvertisementBaseAttributes,\n validateOsobaDoKontaktu,\n validatePersonalData,\n validatePrzedmiotZamowieniaBaseAttributes,\n validateSearchFilters,\n validateWarunekUdzialuAttributes,\n validateWysiwygEditor,\n validateZalacznikAttributes,\n validateZamowienieAttributes\n}\n\n\nif (typeof module === 'object' && module.exports) {\n module.exports = {\n checkDatesDependency,\n checkListRequired,\n checkNabor,\n checkRequired,\n checkRequiredPrzedmiotZamowienia,\n checkSelectRequired,\n checkSimilarValueOnList,\n publishedAdvertisementOwnerValidators,\n validateAdvertisementBaseAttributes,\n };\n}\n","\nconst ADVERTISEMENTS_SORTING_VALUES = [\n ['terminOfert_asc', 'termin składania ofert rosnąco'],\n ['terminOfert_desc', 'termin składania ofert malejąco'],\n ['ogloszenie_numer_asc', 'numer rosnąco'],\n ['ogloszenie_numer_desc', 'numer malejąco'],\n ['tytul_asc', 'tytuł rosnąco'],\n ['tytul_desc', 'tytuł malejąco'],\n ['ogloszenie_status_nazwa_asc', 'status rosnąco'],\n ['ogloszenie_status_nazwa_desc', 'status malejąco'],\n];\n\nconst PROJECTS_SORTING_VALUES = [\n ['calyNumer_asc', 'numer rosnąco'],\n ['calyNumer_desc', 'numer malejąco'],\n ['nazwa_asc', 'nazwa rosnąco'],\n ['nazwa_desc', 'nazwa malejąco'],\n];\n\nconst sortByAdvertisementNumber = (order, nr1, nr2) => {\n // if number mask will change, sort in other way\n const [year1, userId1, announcementId1] = nr1.split('-');\n const [year2, userId2, announcementId2] = nr2.split('-');\n if (year1 !== year2) {\n if (order === 'asc') {\n return year2 < year1 ? 1 : -1\n } else {\n return year2 > year1 ? 1 : -1\n }\n }\n if (userId1 !== userId2) {\n if (order === 'asc') {\n return parseInt(userId2) < parseInt(userId1) ? 1 : -1\n } else {\n return parseInt(userId2) > parseInt(userId1) ? 1 : -1\n }\n }\n if (order === 'asc') {\n return parseInt(announcementId2) < parseInt(announcementId1) ? 1 : -1\n } else {\n return parseInt(announcementId2) > parseInt(announcementId1) ? 1 : -1\n }\n}\n\nconst sortAdvertisements = (advertisementList, sortingValue) => {\n return advertisementList.slice().sort((o1, o2) => {\n const splittingValue = sortingValue.split('_');\n let value1, value2, order, attribbuteName;\n if (splittingValue.length === 4) {\n attribbuteName = splittingValue[2];\n value1 = o1[splittingValue[0]][splittingValue[1]][attribbuteName];\n value2 = o2[splittingValue[0]][splittingValue[1]][attribbuteName];\n order = splittingValue[3];\n } else if (splittingValue.length === 3) {\n attribbuteName = splittingValue[1];\n value1 = o1[splittingValue[0]][attribbuteName];\n value2 = o2[splittingValue[0]][attribbuteName];\n order = splittingValue[2];\n } else {\n attribbuteName = splittingValue[0];\n value1 = o1[attribbuteName];\n value2 = o2[attribbuteName];\n order = splittingValue[1];\n }\n if ([null, ''].includes(value1)) {return 1}\n if ([null, ''].includes(value2)) {return -1}\n if (attribbuteName === 'numer') {\n return sortByAdvertisementNumber(order, value1, value2)\n }\n if (attribbuteName === 'tytul') {\n if (order === 'asc') {\n return value1.toLowerCase().localeCompare(value2.toLowerCase(), 'pl')\n }\n return value2.toLowerCase().localeCompare(value1.toLowerCase(), 'pl')\n }\n if (order === 'asc') {\n return value2 < value1 ? 1 : -1\n }\n return value2 > value1 ? 1 : -1\n })\n};\n\nconst sortProjects = (projectList, sortingValue) => {\n const p = projectList.slice().sort((p1, p2) => {\n const [attribbuteName, order] = sortingValue.split('_');\n const value1 = p1[attribbuteName];\n const value2 = p2[attribbuteName];\n if ([null, ''].includes(value1)) {return 1}\n if ([null, ''].includes(value2)) {return -1}\n if (order === 'asc') {\n return value1.toLowerCase().localeCompare(value2.toLowerCase(), 'pl')\n }\n return value2.toLowerCase().localeCompare(value1.toLowerCase(), 'pl')\n })\n return p\n};\n\n// search filters\nconst sortProgrammeFilter = (value1, value2) => {\n return value1[1].toLowerCase().localeCompare(value2[1].toLowerCase(), 'pl')\n};\nconst sortMiejsceRealizacjiFilter = (mr1, mr2) => {\n const v1 = mr1[0], v2 = mr2[0];\n if (v1 === 'abroad') {\n return 1\n }\n if (v2 === 'abroad') {\n return -1\n }\n if (v1 === 'poland') {\n return 1\n }\n if (v2 === 'poland') {\n return -1\n }\n return v1.toLowerCase().localeCompare(v2.toLowerCase(), 'pl')\n};\n\n\nconst setInitialSorterByUrlParam = (urlParams, sorters, defaultSorter) => {\n let sort = urlParams.get('sort');\n if (!Object.keys(sorters).includes(sort)) {\n sort = defaultSorter;\n }\n const sorter = sorters[sort];\n return {value: sorter[0], label: sorter[1]}\n}\n\n\nexport {\n ADVERTISEMENTS_SORTING_VALUES,\n PROJECTS_SORTING_VALUES,\n setInitialSorterByUrlParam,\n sortAdvertisements,\n sortMiejsceRealizacjiFilter,\n sortProgrammeFilter,\n sortProjects,\n};\n\n\nif (typeof module === 'object' && module.exports) {\n module.exports = {\n sortProjects,\n };\n}\n","import jp from 'jsonpath';\n\n// from server\nconst mapServerFront = {\n account_disabled: 'kontoZablokowane',\n account_disabled_at: 'dataZablokowaniaKonta',\n accountDisabled: 'kontoZablokowane',\n active: 'czyAktywny',\n activities: 'dzialania',\n activity: 'dzialanie',\n added_at: 'dataDodania',\n address: 'adres',\n address_type: 'rodzajAdresu',\n addressType: 'rodzajAdresu',\n advertisement: 'ogloszenie',\n advertisements: 'ogloszenia',\n advertiser_address_details: 'daneAdresoweOgloszeniodawcy',\n advertiser_name: 'nazwaOgloszeniodawcy',\n answer: 'odpowiedz',\n attached_advertisements_amount: 'attachedAdvertisementsAmount',\n attachments: 'zalaczniki',\n category: 'kategoria',\n children: 'dzieci',\n chosen_offer_variant: 'wybranyWariant',\n chosenOfferVariant: 'wybranyWariant',\n code: 'kod',\n comment: 'komentarz',\n commune: 'gmina',\n contact_persons: 'osobyDoKontaktu',\n content: 'tresc',\n country: 'kraj',\n cpv_items: 'kodyCPV',\n created_by: 'ktoUtworzyl',\n created_at: 'dataUtworzenia',\n current_exists: 'aktualnyIstnieje',\n description: 'opis',\n dictionaries: 'slowniki',\n economic_subject: 'danePodmiotu',\n economicSubject: 'danePodmiotu',\n email: 'email',\n end_at: 'koniecRealizacji',\n enrollment: 'nabor',\n enrollment_number: 'numerNaboru',\n estimated_value: 'szacunkowaWartosc',\n evaluation_criteria: 'kryteriaOceny',\n expiration_date: 'dataWaznosci',\n file: 'plik',\n file_to_load: 'plikDoWgrania',\n for_publication_exists: 'doPublikacjiIstnieje',\n forename: 'imie',\n fulfillment_place: 'miejsceRealizacji',\n fulfillment_places: 'miejscaRealizacji',\n full_number: 'calyNumer',\n general_content: 'trescOgolna',\n general_content_items: 'tresciOgolne',\n has_advertisements: 'maOgloszenia',\n has_draft: 'czyMaKopieRobocza',\n has_draft_advertisements: 'maRoboczeOgloszenia',\n has_published_advertisements: 'maOpublikowaneOgloszenia',\n headline: 'naglowek',\n help: 'pomoc',\n helps: 'pomoce',\n id: 'id',\n identification_number: 'numerIdentyfikacyjny',\n identification_number_type: 'typNumeruIdentyfikacyjnego',\n identifier: 'identyfikator',\n institution: 'instytucja',\n institutionNumber: 'numerInstytucji',\n is_admin: 'isAdmin',\n is_author: 'jestAutorem',\n is_created_by_advertiser: 'isCreatedByAdvertiser',\n is_mine: 'moje',\n isAdmin: 'isAdmin',\n is_protocol: 'jestProtokolem',\n isProtocol: 'jestProtokolem',\n is_refused: 'isRefused',\n is_variant: 'czyWariantowe',\n isVariant: 'czyWariantowe',\n last_publicated_version_id: 'ostatniaOpublikowanaWersjaId',\n label: 'label',\n last_version: 'ostatniaWersja',\n locality: 'miejscowosc',\n modified_at: 'dataModyfikacji',\n modified_by: 'ktoModyfikowal',\n name: 'nazwa',\n no_offer_selected: 'zadnaOfertaWybrana',\n noOfferSelected: 'zadnaOfertaWybrana',\n number: 'numer',\n number_description: 'numerDomu',\n order_node: 'zamowienieNode',\n order_nodes: 'zamowieniaNodes',\n order: 'zamowienie',\n orderNode: 'zamowienieNode',\n orderNodes: 'zamowieniaNodes',\n orders: 'zamowienia',\n offers: 'oferty',\n offerset: 'pakietOfert',\n offersets: 'pakietyOfert',\n order_id: 'zamowienieId',\n order_items: 'przedmiotyZamowienia',\n order_temporary_id: 'zamowienieTemporaryId',\n orders_amount: 'liczbaZamowien',\n original_content: 'trescOryginalna',\n page: 'strona',\n parent: 'rozdzialNadrzedny',\n partial_offer_allowed: 'czyDopuszczalnaOfertaCzesciowa',\n partial_payment: 'czyWystepujePlatnoscCzesciowa',\n participation_conditions: 'warunkiUdzialu',\n perspective: 'perspektywa',\n phone_number: 'numerTelefonu',\n planned_sign_date: 'planowanyTerminPodpisaniaUmowy',\n postcode: 'kodPocztowy',\n poviat: 'powiat',\n price: 'cena',\n price_criterion: 'czyKryteriumCenowe',\n priorities: 'osiePriorytetowe',\n priority: 'osPriorytetowa',\n programme: 'programOperacyjny',\n programmes: 'programyOperacyjne',\n project: 'projekt',\n projects: 'projekty',\n projects_enrollments: 'projektyNabory',\n publication_date: 'dataOpublikowania',\n question: 'pytanie',\n questions: 'pytania',\n refusedOfferSets: 'ofertyDoUsuniecia',\n region: 'region',\n regulations: 'regulaminy',\n relatives: 'powiazane',\n relatives_pointing_to_current: 'powiazaneDlaObecnego',\n screen: 'ekran',\n settlement: 'rozstrzygniecie',\n slug: 'slug',\n start_at: 'poczatekRealizacji',\n statement: 'komunikat',\n statements: 'komunikaty',\n status: 'status',\n street: 'ulica',\n subcategories: 'podkategorie',\n subcategory: 'podkategoria',\n submission_deadline: 'terminOfert',\n supplementary_orders: 'zamowieniaUzupelniajace',\n surname: 'nazwisko',\n tax_identification_number: 'nip',\n temporary_id: 'temporaryId',\n timetable_items: 'harmonogramy',\n title: 'tytul',\n terms_of_contract_change: 'warunkiZmianyUmowy',\n teryt_items: 'teryty',\n type: 'typ',\n user: 'uzytkownik',\n userEmail: 'emailUzytkownika',\n userForename: 'imieUzytkownika',\n userSurname: 'nazwiskoUzytkownika',\n users: 'uzytkownicy',\n warranty_period: 'okresGwarancji',\n variants: 'warianty',\n version: 'wersja',\n voivodeship: 'wojewodztwo',\n yellow_stripe: 'czyZoltyPasek',\n osoba: 'osoba',\n account_type: 'accountType',\n}\n\n// to server\nconst mapFrontServer = {\n adres: 'address',\n aktualnyIstnieje: 'currentExists',\n cena: 'price',\n czyAktywny: 'active',\n czyDopuszczalnaOfertaCzesciowa: 'partialOfferAllowed',\n czyKryteriumCenowe: 'priceCriterion',\n czyMaKopieRobocza: 'hasDraft',\n czyWariantowe: 'isVariant',\n czyWystepujePlatnoscCzesciowa: 'partialPayment',\n czyZoltyPasek: 'yellowStripe',\n daneAdresoweOgloszeniodawcy: 'advertiserAddressDetails',\n danePodmiotu: 'economicSubject',\n dataDodania: 'addedAt',\n dataModyfikacji: 'modifiedAt',\n dataOpublikowania: 'publicationDate',\n dataUtworzenia: 'createdAt',\n dataWaznosci: 'expirationDate',\n dataZablokowaniaKonta: 'accountDisabledAt',\n doPublikacjiIstnieje: 'forPublicationExists',\n dzialania: 'activities',\n dzialanie: 'activity',\n dzieci: 'children',\n ekran: 'screen',\n email: 'email',\n emailUzytkownika: 'userEmail',\n gmina: 'commune',\n harmonogramy: 'timetableItems',\n id: 'id',\n identyfikator: 'identifier',\n imie: 'forename',\n imieUzytkownika: 'userForename',\n instytucja: 'institution',\n isAdmin: 'isAdmin',\n jestAutorem: 'isAuthor',\n jestProtokolem: 'isProtocol',\n kategoria: 'category',\n kod: 'code',\n kodyCPV: 'cpvItems',\n kodPocztowy: 'postcode',\n komentarz: 'comment',\n komunikat: 'statement',\n komunikaty: 'statements',\n koniecRealizacji: 'endAt',\n kontoZablokowane: 'accountDisabled',\n kraj: 'country',\n kryteriaOceny: 'evaluationCriteria',\n ktoModyfikowal: 'modifiedBy',\n ktoUtworzyl: 'createdBy',\n label: 'label',\n liczbaZamowien: 'ordersAmount',\n miejscaRealizacji: 'fulfillmentPlaces',\n miejscowosc: 'locality',\n nabor: 'enrollment',\n naglowek: 'headline',\n nazwa: 'name',\n nazwisko: 'surname',\n nazwiskoUzytkownika: 'userSurname',\n nip: 'taxIdentificationNumber',\n numer: 'number',\n numerDomu: 'numberDescription',\n numerIdentyfikacyjny: 'identificationNumber',\n numerNaboru: 'enrollmentNumber',\n odpowiedz: 'answer',\n oferty: 'offers',\n ofertyDoUsuniecia: 'refusedOfferSets',\n ogloszenia: 'advertisements',\n ogloszenie: 'advertisement',\n okresGwarancji: 'warrantyPeriod',\n opis: 'description',\n osiePriorytetowe: 'priorities',\n osPriorytetowa: 'priority',\n osoba: 'osoba',\n osobyDoKontaktu: 'contactPersons',\n pakietOfert: 'offerset',\n perspektywa: 'perspective',\n planowanyTerminPodpisaniaUmowy: 'plannedSignDate',\n plik: 'file',\n plikDoWgrania: 'fileToLoad',\n poczatekRealizacji: 'startAt',\n podkategoria: 'subcategory',\n podkategorie: 'subcategories',\n pomoc: 'help',\n pomoce: 'helps',\n powiat: 'poviat',\n powiazane: 'relatives',\n powiazaneDlaObecnego: 'relativesPointingToCurrent',\n programOperacyjny: 'programme',\n programyOperacyjne: 'programmes',\n projekt: 'project',\n projekty: 'projects',\n przedmiotyZamowienia: 'orderItems',\n pytania: 'questions',\n pytanie: 'question',\n region: 'region',\n regulaminy: 'regulations',\n rodzajAdresu: 'addressType',\n rozdzialNadrzedny: 'parent',\n slug: 'slug',\n slowniki: 'dictionaries',\n status: 'status',\n strona: 'page',\n szacunkowaWartosc: 'estimatedValue',\n numerInstytucji: 'institutionNumber',\n numerTelefonu: 'phoneNumber',\n temporaryId: 'temporaryId',\n terminOfert: 'submissionDeadline',\n teryty: 'terytItems',\n tresc: 'content',\n trescOgolna: 'generalContent',\n tresciOgolne: 'generalContentItems',\n trescOryginalna: 'originalContent',\n typ: 'type',\n typNumeruIdentyfikacyjnego: 'identificationNumberType',\n tytul: 'title',\n ulica: 'street',\n uzytkownicy: 'users',\n warianty: 'variants',\n warunkiUdzialu: 'participationConditions',\n warunkiZmianyUmowy: 'termsOfContractChange',\n wojewodztwo: 'voivodeship',\n wybranyWariant: 'chosenOfferVariant',\n zadnaOfertaWybrana: 'noOfferSelected',\n zamowieniaUzupelniajace: 'supplementaryOrders',\n zamowienia: 'orders',\n zamowieniaNodes: 'orderNodes',\n zamowienie: 'order',\n zamowienieId: 'orderId',\n zamowienieNode: 'orderNode',\n zamowienieTemporaryId: 'orderTemporaryId',\n zalaczniki: 'attachments',\n accountType: 'account_type',\n}\n\n\nconst serializeObject = (object, toServer=false, nonRecursiveKeys=[], dateWithTime=false) => {\n // old serializer; don't use it with a new functionality\n const serializationDct = toServer ? mapFrontServer : mapServerFront;\n let serializedObject = {};\n for (let attrName of Object.keys(object)) {\n const value = object[attrName];\n const serializedName = serializationDct[attrName] || attrName;\n if (nonRecursiveKeys && nonRecursiveKeys.includes(toServer ? attrName : serializedName)) {\n serializedObject[serializedName] = value || (value === false ? value : (toServer ? null : ''));\n } else if (Array.isArray(value)) {\n let serializedObjectList = serializeObjectList(value, toServer, nonRecursiveKeys, dateWithTime);\n serializedObject[serializedName] = serializedObjectList;\n } else if ((!toServer && ['created_at', 'end_at', 'modified_at',\n 'planned_sign_date', 'publication_date', 'start_at',\n 'submission_deadline'].includes(attrName))\n || (toServer && ['dataUtworzenia', 'dataModyfikacji',\n 'dataOpublikowania', 'koniecRealizacji', 'poczatekRealizacji',\n 'planowanyTerminPodpisaniaUmowy', 'terminOfert'].includes(attrName))) {\n // serialize date\n if (['terminOfert', 'submission_deadline'].includes(attrName)) {\n let date_ = serializeDate(value, toServer, true);\n if (attrName === 'submission_deadline' && !!date_) {\n date_ = date_.replace(' 23:59:59', '');\n }\n serializedObject[serializedName] = date_;\n } else {\n serializedObject[serializedName] = serializeDate(value, toServer, dateWithTime);\n }\n } else if (typeof value === 'object' && value !== null) {\n serializedObject[serializedName] = serializeObject(value, toServer, nonRecursiveKeys, dateWithTime);\n } else {\n serializedObject[serializedName] = value || (value === false ? value : (toServer ? null : ''));\n }\n }\n return serializedObject\n};\n\nconst getSerializedObject = (object, config=null) => {\n config = config || {};\n const toServer = config['toServer'] || false;\n const mapToCamelCaseName = config['mapToCamelCaseName'] || false;\n const doNotTranslateNames = config['doNotTranslateNames'] || false;\n const serializationDct = toServer ? mapFrontServer : mapServerFront;\n const nonRecursiveKeys = config['nonRecursiveKeys'] || [];\n // all date (and datetime) fields add here:\n const dateAttributes = config['dateAttributes'] || [];\n // only datetime fields add here:\n const dateTimeAttributes = config['dateTimeAttributes'] || [];\n // add here datetime attributes if you want to cut 23:59:59:\n const dateTimeToLastMinuteAttributes = config['dateTimeToLastMinuteAttributes'] || [];\n const removeTemporaryId = config['removeTemporaryId'] || false;\n\n let serializedObject = {};\n for (let attrName of Object.keys(object)) {\n if (removeTemporaryId && attrName === 'temporaryId') {\n continue\n }\n const value = object[attrName];\n let serializedName;\n if (doNotTranslateNames) {\n serializedName = attrName;\n } else if (mapToCamelCaseName) {\n serializedName = mapToCamelCase(attrName);\n } else {\n serializedName = serializationDct[attrName] || attrName;\n }\n if (nonRecursiveKeys.length && nonRecursiveKeys.includes(toServer ? attrName : serializedName)) {\n serializedObject[serializedName] = value || (value === false ? value : (toServer ? null : ''));\n } else if (Array.isArray(value)) {\n serializedObject[serializedName] = getSerializedList(value, config);\n } else if (dateAttributes.includes(attrName) || dateAttributes.includes(serializedName)) {\n // serialize date\n if (dateTimeAttributes.includes(attrName) || dateTimeAttributes.includes(serializedName)) {\n let date_ = getSerializedDate(value, toServer, true);\n if ((dateTimeToLastMinuteAttributes.includes(attrName) || dateTimeToLastMinuteAttributes.includes(serializedName)) && !!date_) {\n date_ = date_.replace(' 23:59:59', '');\n }\n serializedObject[serializedName] = date_;\n } else {\n serializedObject[serializedName] = getSerializedDate(value, toServer, false);\n }\n } else if (typeof value === 'object' && value !== null) {\n serializedObject[serializedName] = getSerializedObject(value, config);\n } else {\n serializedObject[serializedName] = value || (value === false ? value : (toServer ? null : ''));\n }\n }\n return serializedObject\n}\n\nconst mapToCamelCase = (value) => {\n return value.split('_').map((part, index) => index > 0 ? part.charAt(0).toUpperCase() + part.slice(1) : part).join('')\n};\n\nconst getSerializedDate = (value, toServer, withTime=false) => {\n if (toServer) {\n if (value === '') { return null }\n } else if (value === null) { return '' }\n return withTime ? value : value.slice(0, 10)\n}\n\nconst getSerializedList = (objectList, config) => {\n if (!objectList.length) {return []}\n\n if (typeof objectList[0] !== 'object') {return objectList}\n\n if ((config || {})['addTemporaryId'] || false) {\n return objectList.map(object => Object.assign(\n getSerializedObject(object, config),\n {temporaryId: object.id}\n ))\n }\n return objectList.map(object => getSerializedObject(object, config))\n}\n\n\nconst serializeJsonPathList = (list) => {\n let serializedList = [];\n for (let element of list) {\n if (element === undefined) {\n serializedList.push({});\n } else if (typeof element !== 'object') {\n serializedList.push(element);\n } else {\n serializedList.push(serializeJsonPathObject(element));\n }\n }\n return serializedList\n};\n\nconst serializeJsonPathObject = (object) => {\n let serializedObject = {};\n for (let attrName of Object.keys(object)) {\n const value = object[attrName];\n if (Array.isArray(value)) {\n serializedObject[attrName] = serializeJsonPathList(value);\n } else {\n serializedObject[attrName] = value;\n }\n }\n return serializedObject\n};\n\n\nconst findJsonPathErrors = (errors, path) => {\n for (let e of errors) {\n if (e.path === path) {\n return e.errors\n }\n }\n return []\n};\n\nconst getSerializedNestedErrorsFromServer = (errors, data, attrName, pathPrefix, nestedFields) => {\n const attrBasePathPrefix = `${pathPrefix}${mapFrontServer[attrName]}`;\n let errors_ = {};\n const baseAttrErrors = findJsonPathErrors(errors, attrBasePathPrefix);\n if (baseAttrErrors.length) {\n errors_['errors'] = baseAttrErrors;\n }\n\n // iterate objects on list\n for (let i=0; i < data[attrName].length; i++) {\n const obj = data[attrName][i];\n let objectErrors = {}\n for (let subAttrName of Object.keys(obj)) {\n if (nestedFields.includes(subAttrName)) {\n objectErrors[subAttrName] = getSerializedNestedErrorsFromServer(\n errors, obj, subAttrName, `${attrBasePathPrefix}.${i}.`, nestedFields);\n } else {\n const subAttrPathPrefix = `${attrBasePathPrefix}.${i}.${mapFrontServer[subAttrName]}`;\n const subAttrErrors = findJsonPathErrors(errors, subAttrPathPrefix);\n if (subAttrErrors.length) {\n objectErrors[subAttrName] = subAttrErrors;\n }\n }\n }\n errors_[obj.temporaryId] = objectErrors;\n }\n return errors_\n}\n\nconst getSerializedObjectErrorsFormServer = (errors, data, nestedFields=[], pathPrefix='$.') => {\n let serializedErrors = {};\n for (let attrName of Object.keys(data)) {\n if (nestedFields.includes(attrName)) {\n serializedErrors[attrName] = getSerializedNestedErrorsFromServer(\n errors, data, attrName, pathPrefix, nestedFields);\n } else if (typeof data[attrName] === 'object' && data[attrName] !== null) {\n serializedErrors[attrName] = getSerializedObjectErrorsFormServer(\n errors, data[attrName], nestedFields, `${pathPrefix}${mapFrontServer[attrName]}.`);\n } else {\n const attrPathPrefix = `${pathPrefix}${mapFrontServer[attrName]}`;\n const attrErrors = findJsonPathErrors(errors, attrPathPrefix);\n if (attrErrors.length) {\n serializedErrors[attrName] = attrErrors;\n }\n }\n }\n return serializedErrors\n};\n\nconst getSerializedErrorsFromServer = (errors, config={}) => {\n // set config according to config in getSerializedObject function\n let serializedErrors = {};\n errors.forEach(error => jp.value(serializedErrors, error.path, error.errors));\n return getSerializedObject(serializeJsonPathObject(serializedErrors), config)\n};\n\nconst serializeDate = (value, toServer, withTime=false) => {\n if (toServer) {\n if (value === '') { return null }\n } else if (value === null) { return '' }\n return withTime ? value : value.slice(0, 10)\n}\n\nconst serializeObjectList = (objectList, toServer=false, nonRecursiveKeys=[], dateWithTime=false) => {\n if (!objectList.length) {return []}\n if (typeof objectList[0] !== 'object') {return objectList}\n return objectList.map(object => Object.assign(\n serializeObject(object, toServer, nonRecursiveKeys, dateWithTime),\n {temporaryId: object.id}\n ))\n}\n\n\nconst ERRORS_SERVER_FRONT = {\n 'credentials (mail and password) are required.': 'credentials (mail and password) are required.',\n 'DateTime::__construct(): Failed to parse time string (some-bad-format) at position 0 (s): The timezone could not be found in the database': 'DateTime::__construct(): Failed to parse time string (some-bad-format) at position 0 (s): The timezone could not be found in the database', // new advertisement\n 'email is not unique': 'email is not unique', // new user\n 'missing parameters': 'missing parameters', // new advertisement\n 'missing params': 'missing params', // new user\n 'no results': 'no results', // delete project\n 'Number is not unique.': 'Istnieje w bazie projekt o takim numerze.', // add project\n 'Project not found': 'Nie ma takiego projektu.', // delete project\n 'Session ID is required': 'Session ID is required',\n 'Session invalid.': 'Session invalid.',\n 'User not found.': 'Nie ma takiego użytkownika.',\n 'An empty file is not allowed.': 'Nie udało się wgrać pliku, ponieważ jest on pusty.',\n 'Internal Server Error': 'Wystąpił błąd serwera.',\n 'Unauthorized': 'Wystąpił problem z uwierzytelnieniem użytkownika.',\n}\n\n\nconst translateErrorMessage = (message) => {\n return ERRORS_SERVER_FRONT[message] || message\n}\n\n\nconst serializeOrderItemCategories = (categoriesList) => {\n let categories = {}, subcategories = {};\n for (let cat of categoriesList) {\n categories[cat.id] = cat.name;\n for (let subcat of cat.subcategories) {\n subcategories[subcat.id] = subcat.name;\n }\n }\n return [categories, subcategories]\n}\n\nfunction serializeUrlParams(params, serializationDict) {\n let serializedDict = {};\n for (let [key, val] of Object.entries(params)) {\n serializedDict[serializationDict[key] || key] = val;\n }\n return serializedDict\n}\n\n\nexport {\n getSerializedObjectErrorsFormServer,\n getSerializedErrorsFromServer,\n getSerializedList,\n getSerializedObject,\n mapServerFront,\n serializeObject,\n serializeObjectList,\n serializeOrderItemCategories,\n serializeUrlParams,\n translateErrorMessage,\n};\n\n\nif (typeof module === 'object' && module.exports) {\n module.exports = {\n getSerializedObjectErrorsFormServer,\n };\n}\n","import React, { createContext } from 'react';\n\n/*\n What is this for?\n This one is updated after link in menu was clicked. If it changes some\n components will be rerendered - in Routes.js define them th key as\n menuLinkKey and that's all what you need to refresh page content.\n*/\n\nconst MenuContext = createContext({\n menuLinkKey: 0,\n refreshBadgesCount: 0,\n updateMenuKey: () => {},\n refreshBadges: () => {}\n});\n\n\nexport class MenuProvider extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n menuLinkKey: 0,\n updateMenuKey: this.updateMenuKey,\n refreshBadges: this.refreshBadges\n }\n }\n\n refreshBadges = () => {\n this.setState(prevState => ({refreshBadgesCount: prevState.refreshBadgesCount + 1}))\n }\n\n updateMenuKey = () => {\n this.setState(prevState => ({menuLinkKey: prevState.menuLinkKey + 1}));\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\nexport const MenuConsumer = MenuContext.Consumer;\nexport { MenuContext };\n","import React, { createContext } from 'react';\n\nimport { getSerializedObject } from '../serializers';\n\n\nconst EMPTY_USER = {\n accountType: 'USER',\n email: '',\n forename: '',\n id: null,\n identifier: null,\n surname: '',\n advertisementManagerType: {\n isAuthor: false,\n isAdmin: false,\n },\n};\nconst EMPTY_AUTH = { expire: null };\n\n\nconst UserContext = createContext({\n // errors\n user: {...EMPTY_USER},\n auth: {...EMPTY_AUTH},\n permissions: {},\n set: () => {},\n setAdvertisementManagerType: () => {},\n refresh: () => {},\n refreshTimer: () => {},\n logout: () => {},\n removePermission: () => {},\n});\n\n\nexport class UserProvider extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n user: {...EMPTY_USER},\n auth: {...EMPTY_AUTH},\n permissions: {},\n set: this.set,\n setAdvertisementManagerType: this.setAdvertisementManagerType,\n refresh: this.refresh,\n refreshTimer: this.refreshTimer,\n logout: this.logout,\n removePermission: this.removePermission,\n };\n }\n\n set = (data, callback=null) => {\n // from backend, at the beginning of application life or after login\n this.setState(\n prevState => ({\n user: Object.assign({}, prevState.user, getSerializedObject(data.user || {}, {mapToCamelCaseName: true})),\n auth: Object.assign(\n {}, prevState.auth, (data.meta || {}).auth || {}),\n permissions: this.serializePermission(data.permissions || {}),\n }),\n () => {\n if (callback) {\n callback();\n }\n }\n );\n }\n\n setAdvertisementManagerType = (data, callback=null) => {\n this.setState(\n prevState => ({\n user: {...prevState.user, advertisementManagerType: data},\n }),\n () => {\n if (callback) { callback() }\n }\n );\n }\n\n serializePermission = (permissions) => {\n /*\n Full expected permissions is a dict like that:\n {\n adProjectEnrollments: {\n advertisementAdministration: {\n searchNPreviewData: true,\n blocking: true,\n editData: true\n },\n projectsEnrollmentsAdministration: {\n searchNPreviewData: true,\n editData: true\n },\n permissionsAdministration: {\n previewListUsersAuthorized: true,\n functionalityManagement: true,\n permissionsManagement: true\n }\n },\n contentAdministration: {\n contentAdministration: {\n help: true,\n generalContentCookiesRegulation: true,\n statements: true\n },\n permissionsAdministration: {\n previewListUsersAuthorized: true,\n functionalityManagement: true,\n permissionsManagement: true\n }\n },\n implementationLevelsDictionaryAdministration: {\n implementationLevelsDictionaryAdministration: {\n previewData: true,\n editData: true\n },\n permissionsAdministration: {\n previewListUsersAuthorized: true,\n functionalityManagement: true,\n permissionsManagement: true\n }\n },\n usersAdministration: {\n usersAdministration: {\n previewListUsers: true,\n blockingUsers: true\n },\n permissionsAdministration: {\n previewListUsersAuthorized: true,\n functionalityManagement: true,\n permissionsManagement: true\n }\n }\n }\n */\n permissions = permissions || {};\n const adProjEnrAdm = permissions.adProjectEnrollments || {};\n\n const usersAdm = permissions.usersAdministration || {};\n const usersAdmUsersAdministration =\n usersAdm.usersAdministration || {};\n const usersAndPermissionsPreviewListUsers =\n usersAdmUsersAdministration.previewListUsers || false;\n const usersAdmPermissionsAdministration =\n usersAdm.permissionsAdministration || {}\n const usersAndPermissionsPreviewListUsersAuthorized =\n usersAdmPermissionsAdministration.previewListUsersAuthorized ||\n false;\n\n const contentAdm = permissions.contentAdministration || {};\n const contentAdmContentAdministration =\n contentAdm.contentAdministration || {};\n const contentAdmPermissionsAdministration =\n contentAdm.permissionsAdministration || {};\n const implementationLevelsDictionaryAdm =\n permissions.implementationLevelsDictionaryAdministration || {};\n const implementationLevelsDictionaryAdmPermissionsAdministration =\n implementationLevelsDictionaryAdm.permissionsAdministration || {};\n const implementationLevelsDictionaryAdmImplementationLevelsDictionaryAdministration =\n implementationLevelsDictionaryAdm.implementationLevelsDictionaryAdministration || {};\n\n return {\n // used in menu\n fullUsersAndPermissions: usersAndPermissionsPreviewListUsers ||\n usersAndPermissionsPreviewListUsersAuthorized,\n usersAndPermissionsPreviewListUsers,\n usersAndPermissionsPreviewListUsersAuthorized,\n // used in add/edit permissions forms\n usersPermissionsManagement: {\n functionality:\n usersAdmPermissionsAdministration.functionalityManagement ||\n false,\n permissions:\n usersAdmPermissionsAdministration.permissionsManagement ||\n false,\n },\n blockingUsers:\n usersAdmUsersAdministration.blockingUsers || false,\n // used in menu\n projectsEnrollments: (adProjEnrAdm\n .projectsEnrollmentsAdministration || {})\n .searchNPreviewData || false,\n // used in menu\n advertisements: (adProjEnrAdm\n .advertisementAdministration || {})\n .searchNPreviewData || false,\n // used in menu\n fullContent: Object.values(contentAdmContentAdministration).filter(\n value => value === true).length > 0,\n help: contentAdmContentAdministration.help || false,\n generalContentCookiesRegulation:\n contentAdmContentAdministration.generalContentCookiesRegulation\n || false,\n statements: contentAdmContentAdministration.statements || false,\n // used in add/edit permissions forms\n contentPermissionsManagement: {\n functionality:\n contentAdmPermissionsAdministration.functionalityManagement,\n permissions:\n contentAdmPermissionsAdministration.permissionsManagement,\n },\n addImplementationLevelPermission:\n (adProjEnrAdm.permissionsAdministration || {}).functionalityManagement ||\n (adProjEnrAdm.permissionsAdministration || {}).permissionsManagement ||\n false\n ,\n // used in add/edit permissions forms\n implementationLevelsDictionaryPermissionsManagement: {\n functionality:\n implementationLevelsDictionaryAdmPermissionsAdministration.functionalityManagement,\n permissions:\n implementationLevelsDictionaryAdmPermissionsAdministration.permissionsManagement,\n },\n previewDictionaries:\n implementationLevelsDictionaryAdmImplementationLevelsDictionaryAdministration\n .previewData || false,\n editingDictionaries:\n implementationLevelsDictionaryAdmImplementationLevelsDictionaryAdministration\n .editData || false,\n }\n }\n\n refresh = (data) => {\n // from sativa\n this.setState(\n prevState => {\n // if identifier is null, user has logged out in the meantime, do nothing\n if (prevState.user.identifier === null) {\n return {}\n }\n const user = data.data;\n return {\n user: Object.assign(\n {},\n prevState.user,\n {\n email: user.email,\n forename: user.first_name,\n identifier: user.id,\n surname: user.last_name,\n }\n ),\n auth: Object.assign(\n {},\n prevState.auth,\n {expire: data.meta.expire}\n ),\n }\n },\n );\n }\n\n refreshTimer = (expire, callback) => {\n this.setState(\n prevState => {\n // if identifier is null, user has logged out in the meantime, do nothing\n if (prevState.user.identifier === null) { return {} }\n return {\n auth: Object.assign(\n {},\n prevState.auth,\n {expire}\n ),\n }\n },\n () => {\n // run callback only if authenticated\n if (this.state.user.identifier !== null) { callback() }\n }\n );\n }\n\n logout = (callback=null) => {\n this.setState(\n {\n user: EMPTY_USER,\n auth: EMPTY_AUTH,\n permissions: {},\n },\n () => {\n if (callback) {\n callback();\n }\n }\n );\n }\n\n removePermission = (permissionName) => {\n /*\n Possible permission's names:\n fullUsersAndPermissions, usersAndPermissionsPreviewListUsers,\n usersAndPermissionsPreviewListUsersAuthorized,\n blockingUsers,\n projectsEnrollments,\n advertisements,\n fullContent, help, generalContentCookiesRegulation, statements,\n previewDictionaries, editingDictionaries\n */\n this.setState(prevState => {\n let permissions = {\n ...prevState.permissions,\n [permissionName]: false\n };\n if ([\n 'help', 'generalContentCookiesRegulation', 'statements'\n ].includes(permissionName)) {\n permissions['fullContent'] = permissions.help ||\n permissions.generalContentCookiesRegulation ||\n permissions.statements;\n } else if ([\n 'usersAndPermissionsPreviewListUsers',\n 'usersAndPermissionsPreviewListUsersAuthorized'\n ].includes(permissionName)) {\n permissions['fullUsersAndPermissions'] =\n permissions.usersAndPermissionsPreviewListUsers ||\n permissions.usersAndPermissionsPreviewListUsersAuthorized\n }\n return {permissions}\n });\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\n\nexport const UserConsumer = UserContext.Consumer;\nexport { UserContext };\n","import { TOKEN_COOKIE_NAME } from './const';\nimport {\n getAuthTokenCookieValue,\n getCookieValue,\n refreshTimerAfterRequest\n} from './helpers';\n\n\nconst fetchApi = (url, method, headers, body, callbackSuccess,\n callbackError, callbackIncorrectStatus, callbackShowErrors=null) => {\n\n const xhr = new XMLHttpRequest();\n if (!['POST', 'PUT'].includes(method)) {\n if (Object.keys(body).length) {\n let urlParamsPart = '';\n for (let [k, v] of Object.entries(body)) {\n if (Array.isArray(v)) {\n let i = 0;\n for (let subvalue of v) {\n urlParamsPart += `&${k}[${i++}]=${subvalue}`;\n }\n } else {\n urlParamsPart += `&${k}=${v}`;\n }\n }\n if (urlParamsPart.length) {\n url += `?${urlParamsPart.substring(1)}`;\n }\n }\n }\n xhr.open(method, encodeURI(url));\n\n // headers\n xhr.setRequestHeader('Content-type','application/json; charset=utf-8');\n const authTokenCookieValue = getAuthTokenCookieValue();\n if (authTokenCookieValue) {\n xhr.setRequestHeader('X-Auth-Token', authTokenCookieValue);\n }\n if (headers || null) {\n for (let [name, value] of Object.entries(headers)) {\n xhr.setRequestHeader(name, value);\n }\n }\n\n // define values and callbacks\n xhr.timeout = 40000;\n xhr.ontimeout = () => {\n callbackError({message: 'Serwer zbyt długo nie odpowiada.'})\n }\n xhr.onerror = () => {callbackIncorrectStatus(xhr.status)};\n xhr.onload = () => {\n if ([403, 404].includes(xhr.status)) {\n callbackIncorrectStatus(xhr.status);\n return\n }\n\n let success = true;\n let jsonData = {};\n try {\n jsonData = JSON.parse(xhr.responseText);\n } catch(error) {\n success = false;\n }\n if (!success) {\n callbackError({message: 'Wystąpił nieoczekiwany błąd.'});\n } else {\n refreshTimerAfterRequest(authTokenCookieValue, xhr.status);\n if (jsonData.status === 'OK') {\n callbackSuccess(jsonData.data);\n } else if (jsonData.status === 'Error') {\n if (callbackShowErrors && jsonData.errors && Object.keys(jsonData.errors).length > 0) {\n callbackShowErrors(jsonData.errors)\n } else {\n callbackError(jsonData);\n }\n } else {\n callbackIncorrectStatus(xhr.status);\n }\n }\n };\n\n xhr.send(JSON.stringify(body));\n return xhr\n};\n\n\nconst fetchSativaApi = (url, callbackSuccess, callbackError, callbackIncorrectStatus) => {\n\n const xhr = new XMLHttpRequest();\n xhr.open('GET', encodeURI('/konto' + url));\n\n // headers\n xhr.setRequestHeader('Content-Type', 'application/json');\n const authTokenCookieValue = getAuthTokenCookieValue();\n if (authTokenCookieValue) {\n xhr.setRequestHeader('ACCESS-TOKEN', decodeURIComponent(\n getCookieValue(TOKEN_COOKIE_NAME)));\n }\n\n // define values and callbacks\n xhr.timeout = 15000;\n xhr.ontimeout = () => {\n callbackError({message: 'Serwer zbyt długo nie odpowiada.'})\n }\n xhr.onerror = () => {callbackIncorrectStatus(xhr.status)};\n xhr.onload = () => {\n if (xhr.status === 200) {\n let success = true;\n let jsonData = {};\n try {\n jsonData = JSON.parse(xhr.responseText);\n } catch(error) {\n success = false;\n }\n if (!success) {\n callbackError({message: 'Wystąpił nieoczekiwany błąd.'});\n } else {\n callbackSuccess(jsonData);\n }\n return\n }\n callbackIncorrectStatus(xhr.status);\n };\n xhr.send();\n return xhr\n}\n\n\nexport { fetchApi, fetchSativaApi }\n","// Notice! Remember to set double '\\' in regex if needed, e.g. (\\\\d+),\n// otherwise regex won't work\nexport const URLS = {\n home: {\n path: '/',\n pattern: /^\\/$/\n },\n login: {\n path: '/logowanie',\n pattern: /^\\/logowanie$/\n },\n loginError: {\n path: '/blad-logowania',\n pattern: /^\\/blad-logowania$/\n },\n projects: {\n path: '/projekty',\n pattern: /^\\/projekty$/,\n },\n advertisements: {\n path: '/ogloszenia',\n pattern: /^\\/ogloszenia$/,\n },\n advertisementsSearch: {\n path: '/ogloszenia/szukaj',\n pattern: /^\\/ogloszenia\\/szukaj$/,\n },\n advertisementsNew: {\n path: '/ogloszenia/nowe',\n pattern: /^\\/ogloszenia\\/nowe$/,\n },\n advertisementsDetails: {\n path: '/ogloszenia/:id(\\\\d+)',\n pattern: /^\\/ogloszenia\\/\\d+$/,\n getUrl: (advertisementId) => `/ogloszenia/${advertisementId}`,\n },\n advertisementsDetailsDraft: {\n path: '/ogloszenia/:id(\\\\d+)/robocza',\n pattern: /^\\/ogloszenia\\/\\d+\\/robocza$/,\n },\n advertisementsDetailsVersion: {\n path: '/ogloszenia/:id(\\\\d+)/wersja:versionId(\\\\d+)',\n pattern: /^\\/ogloszenia\\/\\d+\\/wersja\\d+$/,\n },\n advertisementsEdit: {\n path: '/ogloszenia/:id(\\\\d+)/edytuj',\n pattern: /^\\/ogloszenia\\/\\d+\\/edytuj$/,\n getUrl: (advertisementId) => `/ogloszenia/${advertisementId}/edytuj`,\n },\n offers: {\n path: '/oferty',\n pattern: /^\\/oferty$/,\n },\n newsletter: {\n path: '/newsletter',\n pattern: /^\\/newsletter$/,\n },\n accessibility: {\n path: '/deklaracja-dostepnosci',\n pattern: /^\\/deklaracja-dostepnosci$/,\n },\n users: {\n path: '/uzytkownicy',\n pattern: /^\\/uzytkownicy$/,\n },\n usersDetails: {\n path: '/uzytkownicy/:id(\\\\d+)',\n pattern: /^\\/uzytkownicy\\/\\d+$/,\n getUrl: (userId) => `/uzytkownicy/${userId}`\n },\n usersMyProfile: {\n path: '/uzytkownicy/moj-profil',\n pattern: /^\\/uzytkownicy\\/moj-profil$/,\n },\n managementProjects: {\n path: '/administracja/projekty',\n pattern: /^\\/administracja\\/projekty$/,\n },\n managementAdvertisements: {\n path: '/administracja/ogloszenia',\n pattern: /^\\/administracja\\/ogloszenia$/,\n },\n managementContents: {\n path: '/zarzadzanie-trescia',\n pattern: /^\\/zarzadzanie-trescia$/,\n },\n managementContentsHelps: {\n path: '/zarzadzanie-trescia/pomoc',\n pattern: /^\\/zarzadzanie-trescia\\/pomoc$/,\n },\n managementContentsHelpsNew: {\n path: '/zarzadzanie-trescia/pomoc/nowa',\n pattern: /^\\/zarzadzanie-trescia\\/pomoc\\/nowa$/,\n },\n managementContentsHelpsEdit: {\n path: '/zarzadzanie-trescia/pomoc/:id(\\\\d+)-:slug([\\\\w-]+)/edytuj',\n pattern: /^\\/zarzadzanie-trescia\\/pomoc\\/\\d+-[\\w-]+\\/edytuj$/,\n },\n managementContentsHelpsDetails: {\n path: '/zarzadzanie-trescia/pomoc/:id(\\\\d+)-:slug([\\\\w-]+)',\n pattern: /^\\/zarzadzanie-trescia\\/pomoc\\/\\d+-[\\w-]+$/,\n },\n managementContentsRegulations: {\n path: '/zarzadzanie-trescia/regulaminy',\n pattern: /^\\/zarzadzanie-trescia\\/regulaminy$/,\n },\n managementContentsRegulationsCurrent: {\n path: '/zarzadzanie-trescia/regulaminy/aktualny',\n pattern: /^\\/zarzadzanie-trescia\\/regulaminy\\/aktualny$/,\n },\n managementContentsRegulationsForPublishing: {\n path: '/zarzadzanie-trescia/regulaminy/do-opublikowania',\n pattern: /^\\/zarzadzanie-trescia\\/regulaminy\\/do-opublikowania$/,\n },\n managementContentsRegulationsNew: {\n path: '/zarzadzanie-trescia/regulaminy/nowy',\n pattern: /^\\/zarzadzanie-trescia\\/regulaminy\\/nowy$/,\n },\n managementContentsRegulationsEdit: {\n path: '/zarzadzanie-trescia/regulaminy/edytuj',\n pattern: /^\\/zarzadzanie-trescia\\/regulaminy\\/edytuj$/,\n },\n managementContentsCookies: {\n path: '/zarzadzanie-trescia/ciasteczka',\n pattern: /^\\/zarzadzanie-trescia\\/ciasteczka$/,\n },\n managementContentsCookiesNew: {\n path: '/zarzadzanie-trescia/ciasteczka/nowe',\n pattern: /^\\/zarzadzanie-trescia\\/ciasteczka\\/nowe$/,\n },\n managementContentsCookiesEdit: {\n path: '/zarzadzanie-trescia/ciasteczka/edytuj',\n pattern: /^\\/zarzadzanie-trescia\\/ciasteczka\\/edytuj$/,\n },\n managementContentsGeneralContents: {\n path: '/zarzadzanie-trescia/tresci-ogolne',\n pattern: /^\\/zarzadzanie-trescia\\/tresci-ogolne$/,\n },\n managementContentsGeneralContentsEdit: {\n path: '/zarzadzanie-trescia/tresci-ogolne/:id(\\\\d+)/edytuj',\n pattern: /^\\/zarzadzanie-trescia\\/tresci-ogolne\\/\\d+\\/edytuj$/,\n },\n managementContentsGeneralContentsDetails: {\n path: '/zarzadzanie-trescia/tresci-ogolne/:id(\\\\d+)',\n pattern: /^\\/zarzadzanie-trescia\\/tresci-ogolne\\/\\d+$/\n },\n managementContentsStatements: {\n path: '/zarzadzanie-trescia/komunikaty',\n pattern: /^\\/zarzadzanie-trescia\\/komunikaty$/,\n },\n managementContentsStatementsNew: {\n path: '/zarzadzanie-trescia/komunikaty/nowy',\n pattern: /^\\/zarzadzanie-trescia\\/komunikaty\\/nowy$/,\n },\n managementContentsStatementsEdit: {\n path: '/zarzadzanie-trescia/komunikaty/:id(\\\\d+)-:slug([\\\\w-]+)/edytuj',\n pattern: /^\\/zarzadzanie-trescia\\/komunikaty\\/\\d+-[\\w-]+\\/edytuj$/,\n },\n managementContentsStatementsDetails: {\n path: '/zarzadzanie-trescia/komunikaty/:id(\\\\d+)-:slug([\\\\w-]+)',\n pattern: /^\\/zarzadzanie-trescia\\/komunikaty\\/\\d+-[\\w-]+$/,\n },\n managementPerspectives: {\n path: '/administracja/perspektywy',\n pattern: /^\\/administracja\\/perspektywy$/,\n },\n managementProgrammesForPerspective: {\n path: '/administracja/perspektywy/:perspectiveId(\\\\d+)/programy',\n pattern: /^\\/administracja\\/perspektywy\\/\\d+\\/programy$/,\n getUrl: (perspectiveId) => `/administracja/perspektywy/${perspectiveId}/programy`,\n },\n managementPrioritiesForProgramme: {\n path: '/administracja/programy/:programmeId(\\\\d+)/osie',\n pattern: /^\\/administracja\\/programy\\/\\d+\\/osie$/,\n getUrl: (programmeId) =>\n `/administracja/programy/${programmeId}/osie`,\n },\n managementSubactivitiesForPriority: {\n path: '/administracja/osie/:priorityId(\\\\d+)/dzialania-i-poddzialania',\n pattern: /^\\/administracja\\/osie\\/\\d+\\/dzialania-i-poddzialania$/,\n getUrl: (priorityId) =>\n `/administracja/osie/${priorityId}/dzialania-i-poddzialania`,\n },\n managementActivitiesForPriority: {\n path: '/administracja/osie/:priorityId(\\\\d+)/dzialania',\n pattern: /^\\/administracja\\/osie\\/\\d+\\/dzialania$/,\n getUrl: (priorityId) => `/administracja/osie/${priorityId}/dzialania`,\n },\n managementRegionsForSubactivity: {\n path: '/administracja/dzialania-i-poddzialania/:activityId(\\\\d+)/regiony',\n pattern: /^\\/dzialania-i-poddzialania\\/osie\\/\\d+\\/regiony$/,\n getUrl: (activityId) => `/administracja/dzialania-i-poddzialania/${activityId}/regiony`,\n },\n managementInstitutionsForActivity: {\n path: '/administracja/dzialania/:activityId(\\\\d+)/instytucje',\n pattern: /^\\/administracja\\/dzialania\\/\\d+\\/instytucje$/,\n getUrl: (activityId) => `/administracja/dzialania/${activityId}/instytucje`,\n },\n helps: {\n path: '/pomoc',\n pattern: /^\\/pomoc$/,\n },\n helpsDetails: {\n path: '/pomoc/:id(\\\\d+)-:slug([\\\\w-]+)',\n pattern: /^\\/pomoc\\/\\d+-[\\w-]+$/,\n },\n regulations: {\n path: '/regulamin',\n pattern: /^\\/regulamin$/,\n },\n subscriptions: {\n path: '/subskrypcje',\n pattern: /^\\/subskrypcje$/,\n },\n statements: {\n path: '/komunikaty',\n pattern: /^\\/komunikaty$/,\n },\n statementsDetails: {\n path: '/komunikaty/:id(\\\\d+)-:slug([\\\\w-]+)',\n pattern: /^\\/komunikaty\\/\\d+-[\\w-]+$/,\n },\n // sativa\n sativaUsersDetails: {\n getUrl: (userIdentifier) => `/konto/panel/uzytkownicy/${userIdentifier}`\n },\n};\n","const colors = {\n primary: '#0d47a1',\n secondary: '#5eb96a',\n warn: '#fff2b2',\n error: '#eb0000',\n background: '#fff',\n disabled: '#f2f2f2',\n surface: '#fff',\n onPrimary: '#fff',\n onSecondary: 'rgba(0, 0, 0, 0.87)',\n onSurface: 'rgba(0, 0, 0, 0.87)',\n onError: '#fff',\n darkBg: '#757575',\n textPrimaryOnBackground: 'rgba(0, 0, 0, 0.87)',\n textSecondaryOnBackground: 'rgba(0, 0, 0, 0.7)',\n textHintOnBackground: 'rgba(0, 0, 0, 0.7)',\n textDisabledOnBackground: 'rgba(0, 0, 0, 0.7)',\n textIconOnBackground: 'rgb(0, 0, 0)',\n textPrimaryOnLight: 'rgba(0, 0, 0, 0.87)',\n textSecondaryOnLight: 'rgba(0, 0, 0, 0.7)',\n textHintOnLight: '#757575',\n textDisabledOnLight: 'rgba(0, 0, 0, 0.7)',\n textIconOnLight: 'rgba(0, 0, 0, 0.7)',\n textPrimaryOnDark: 'white',\n textSecondaryOnDark: 'rgba(255, 255, 255, 0.7)',\n textHintOnDark: 'rgba(255, 255, 255, 0.5)',\n textDisabledOnDark: 'rgba(255, 255, 255, 0.5)',\n textIconOnDark: 'rgba(255, 255, 255, 0.5)',\n};\n\nconst customSelectStyles = {\n input: (styles, state) => {\n return {\n ...styles,\n color: '#000',\n minWidth: 200,\n fontSize: 16,\n }\n },\n option: (provided, state) => ({\n ...provided,\n color: state.isFocused ? '#fff' : (state.isSelected ? colors.primary : '#000'),\n backgroundColor: state.isFocused ? colors.primary : (state.isSelected ? 'rgba(0, 0, 0, .04)' : '#fff'),\n fontWeight: state.isSelected && '900',\n fontSize: 16,\n borderWidth: state.isSelected && 1,\n ':active': {\n backgroundColor: colors.primary,\n color: '#fff',\n },\n }),\n singleValue: (provided, state) => ({\n ...provided,\n color: '#000'\n }),\n placeholder: (styles) => ({\n ...styles,\n color: 'rgba(0, 0, 0, 0.7)'\n }),\n multiValue: (styles) => {\n return {\n ...styles,\n color: '#fff',\n backgroundColor: colors.primary,\n }\n },\n multiValueLabel: (styles) => {\n return {\n ...styles,\n color: '#fff'\n }\n },\n multiValueRemove: (styles) => {\n return {\n ...styles,\n ':hover': {\n backgroundColor: colors.primary,\n color: '#fff',\n cursor: 'pointer'\n }\n }\n },\n}\n\n\nexport { colors, customSelectStyles };\n","// USAGE:\n// text - black text\n// text - grey uppercase text, label for component\n// text - primary (blue) color\n// text - red color\n// text - bigger (18px) blue (primary) text\n// text - bigger (28px) blue (primary) text for section title\n// text - bigger (28px) without margin-bottom\n\n\nimport React from 'react';\nimport { Typography } from '@rmwc/typography';\n\nimport { colors } from '../vars/vars'\n\n\nconst Text = (props) => {\n const {\n accentHeader,\n children,\n className,\n error,\n errorColorReverse,\n htmlFor,\n info,\n label,\n labelFor,\n mainHeader,\n sectionHeader,\n tag,\n use,\n ...otherProps\n } = props;\n\n const {\n errorTextStyle,\n errorColorReverseStyle,\n headerTextStyle,\n infoTextStyle,\n } = styles;\n\n return (\n \n {children}\n \n );\n}\n\nconst styles = {\n errorTextStyle: {\n color: colors.error,\n },\n errorColorReverseStyle: {\n color: '#fff',\n },\n infoTextStyle: {\n color: colors.primary,\n fontWeight: '400',\n },\n headerTextStyle: {\n fontSize: 18,\n fontWeight: 700,\n marginTop: 0,\n marginBottom: 10,\n color: colors.primary,\n },\n}\n\n\nexport { Text };\n","import React from 'react';\n\nimport { Text } from '../Text';\n\n\nexport const Loader = (props) => {\n return Trwa inicjalizacja danych...\n}\n","export default __webpack_public_path__ + \"static/media/loading.96f909e5.svg\";","import React from 'react';\nimport loaderIcon from '../../../static/img/loading.svg';\n\nexport const LoaderIcon = (props) => \"Trwa;\n","import React from 'react';\nimport { Button } from '@rmwc/button';\nimport { Elevation } from '@rmwc/elevation';\nimport { Icon } from '@rmwc/icon';\nimport { Toolbar, ToolbarRow, ToolbarSection, ToolbarTitle } from '@rmwc/toolbar';\nimport { ThemeProvider } from '@rmwc/theme';\nimport { Typography } from '@rmwc/typography';\nimport { MenuSurfaceAnchor, MenuSurface } from '@rmwc/menu';\nimport '@material/menu/dist/mdc.menu.css';\nimport '@material/menu-surface/dist/mdc.menu-surface.css';\nimport '@material/list/dist/mdc.list.css';\nimport '@material/button/dist/mdc.button.css';\nimport '@rmwc/icon/icon.css';\n\nimport { colors } from '../vars/vars';\nimport { Text } from './Text';\n\n\nconst Box = (props) => {\n const {\n ariaLabelMoreOptions,\n boxTag,\n boxWithMenu,\n className,\n children,\n flexiblewidth,\n fullwidth,\n headerTag,\n invalid,\n selected,\n subtitle,\n titleOneRow,\n titleTwoRows,\n titleWithSubtitle,\n ...otherProps\n } = props;\n\n const colorsToolbar = {\n primary: colors.primary\n };\n\n const [open, setOpen] = React.useState(false);\n\n let menuSection = (\n \n \n {\n setOpen(!open);\n e.currentTarget.blur();\n }}\n unelevated\n className=\"btn--icon-only btn--primary\" >\n \n {ariaLabelMoreOptions}\n {invalid && '. Uwaga, edytuj, aby poprawić błędy!'}\n \n \n \n setOpen(false)} role=\"dialog\" >\n \n \n \n \n );\n\n let toolbar;\n if (![null, undefined].includes(titleOneRow)) {\n toolbar = (\n \n \n \n {titleOneRow}\n \n {boxWithMenu && menuSection}\n \n \n )\n }\n\n if (![null, undefined].includes(titleTwoRows)) {\n toolbar = (\n \n \n \n {subtitle}\n \n {boxWithMenu && menuSection}\n \n \n {titleTwoRows}\n \n \n )\n }\n\n if (![null, undefined].includes(titleWithSubtitle)) {\n toolbar = (\n \n \n \n {titleWithSubtitle}\n \n {boxWithMenu && menuSection}\n \n \n {subtitle}\n {invalid ? Błędy! : ''}\n \n \n )\n }\n\n let boxClassName = 'box ';\n fullwidth && (boxClassName += 'box--long-content ');\n flexiblewidth && (boxClassName += 'box--flexible ');\n selected && (boxClassName += 'box--selected ')\n className && (boxClassName += className);\n\n return (\n \n \n {toolbar}\n \n
\n {children}\n
\n
\n );\n}\n\nexport { Box };\n","// USAGE\n// \n//
  • Link to upper content
  • \n//
  • Inactive text of current content
  • \n//
    \n\nimport React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\n\n\nconst Breadcrumps = (props) => {\n const {\n className,\n children,\n isFront,\n notZarzadzanieTrescia,\n } = props;\n\n let breadcrumpsClassName = 'breadcrumps ';\n className && (breadcrumpsClassName += className);\n\n return (\n \n );\n}\n\nexport { Breadcrumps };\n","// without props gives you container with:\n// display: flex\n// flex-wrap: wrap\n// justify-content: flex-start\n\n// center prop makes the container content centered\n// centerHorizontal prop makes the container content centered horizontaly\n// centerVertical prop makes the container content centered verticaly\n// flexS prop makes the container displayed: flex from 600px up\n// flexM prop makes the container displayed: flex from 800px up\n// flexL prop makes the container displayed: flex from 1150px up\n// fullwidth prop gives justify-content: space-between\n// flexTop prop makes the container content justify-content: flex-start\n// flexEnd prop gives justify-content: flex-end\n// noWrap prop gives flex-wrap: nowrap\n\n// - places button container always on bottom right\n\n\n\nimport React from 'react';\n\nconst GridCustom = (props) => {\n const {\n center,\n centerHorizontal,\n centerVertical,\n className,\n flexBottom,\n flexEnd,\n flexS,\n flexM,\n flexL,\n flexTop,\n fullheight,\n fullwidth,\n keyName,\n noWrap,\n tag,\n } = props;\n\n let gridClassName = 'grid-custom ';\n\n if (flexS) {\n gridClassName += 'grid-custom--flex-s '\n } else if (flexM) {\n gridClassName += 'grid-custom--flex-m '\n } else if (flexL) {\n gridClassName += 'grid-custom--flex-l '\n };\n\n fullheight && (gridClassName += 'grid-custom--full-height ');\n fullwidth && (gridClassName += 'grid-custom--full-width ');\n noWrap && (gridClassName += 'grid-custom--one-row ');\n center && (gridClassName += 'grid-custom--center ');\n centerHorizontal && (gridClassName += 'grid-custom--center-h ');\n centerVertical && (gridClassName += 'grid-custom--center-v ');\n flexEnd && (gridClassName += 'grid-custom--end ');\n flexTop && (gridClassName += 'grid-custom--top ');\n flexBottom && (gridClassName += 'grid-custom--bottom ');\n className && (gridClassName += className);\n\n const GridTag = tag ? tag : 'section';\n\n return (\n \n {props.children}\n \n );\n}\n\nexport { GridCustom };\n","// Possible button variants:\n// No props - blue text, no bg, no icon\n// lite - blue text, blue border, no icon\n// cancel - gray text, gray border, no icon\n// next - white text, blue bg, arrow_forward icon\n// prev - white text, gray bg, arrow_back icon\n// save - white text, green bg, done icon\n// add - white text, blue bg, add icon\n// remove - red text, red border, no icon\n// removeFull - white text, red bg, no icon\n// noMargin - removes site margin, gives: margin: .5em 0\n\n\nimport React from 'react';\nimport { Button } from '@rmwc/button';\nimport { Icon } from '@rmwc/icon';\nimport '@material/button/dist/mdc.button.css';\nimport { GridCustom } from './GridCustom';\n\nimport { colors } from '../vars/vars';\n\n\nconst ButtonStyled = (props) => {\n const {\n add,\n cancel,\n children,\n className,\n disabled,\n icon,\n id,\n lite,\n next,\n noMargin,\n onClick,\n prev,\n primary,\n print,\n remove,\n removeFull,\n save,\n tag,\n to,\n ...otherProps\n } = props;\n\n const {\n buttonIconStyle,\n cancelBtnStyle,\n disabledBtnStyle,\n prevBgStyle,\n primaryBtnStyle,\n outlineBtnStyle,\n removeFullBgStyle\n } = styles;\n\n return (\n \n \n {(add || cancel || icon || next || prev || print || save) && (\n \n )}\n {children}\n \n\n \n );\n}\n\nconst styles = {\n cancelBtnStyle: {\n backgroundColor: colors.darkBg\n },\n disabledBtnStyle: {\n backgroundColor: colors.disabled,\n color: '#000',\n borderWidth: 0\n },\n primaryBtnStyle: {\n backgroundColor: colors.primary\n },\n prevBgStyle: {\n backgroundColor: colors.darkBg\n },\n removeFullBgStyle: {\n backgroundColor: colors.error\n },\n outlineBtnStyle: {\n borderWidth: 2,\n backgroundColor: '#fff',\n },\n buttonIconStyle: {\n marginRight: 10\n }\n}\n\nexport { ButtonStyled };\n","import React from 'react';\nimport { ButtonStyled } from './ButtonStyled';\n\nconst ButtonCreatePdf = (props) => {\n const {\n children,\n onClick,\n pdfCreatingOn\n } = props;\n\n let pdfCreatingButtonLabel;\n\n if (pdfCreatingOn) {\n pdfCreatingButtonLabel = 'Tworzenie pliku pdf...'\n } else {\n pdfCreatingButtonLabel = 'Pobierz plik pdf'\n }\n\n return (\n \n {children || pdfCreatingButtonLabel}\n Generowanie pliku PDF może potrwać kilka sekund.\n \n )\n}\n\n\nexport { ButtonCreatePdf };\n","import React from 'react';\nimport { Elevation } from '@rmwc/elevation';\nimport { ThemeProvider } from '@rmwc/theme';\nimport { Toolbar, ToolbarRow, ToolbarTitle } from '@rmwc/toolbar';\nimport '@material/toolbar/dist/mdc.toolbar.css';\n\nimport { colors } from '../vars/vars';\n\n\nconst Container = (props) => {\n const {\n containerTag,\n children,\n className,\n style,\n titleTag,\n title\n } = props;\n\n const colorsToolbar = {\n primary: colors.primary,\n }\n\n\n let toolbar;\n if (title) {\n toolbar = (\n \n \n \n {title}\n \n \n \n )\n }\n\n let containerClassName = 'container ';\n className && (containerClassName += className);\n\n return (\n \n {toolbar}\n
    \n {children}\n
    \n \n );\n}\n\nexport { Container };\n","// https://reactdatepicker.com/\n// https://www.npmjs.com/package/react-datepicker\n\nimport React, { Component } from 'react';\nimport dfIsSameDay from 'date-fns/isSameDay';\nimport DatePicker, { registerLocale } from \"react-datepicker\";\nimport { TextField } from '@rmwc/textfield';\nimport \"react-datepicker/dist/react-datepicker.css\";\n\nimport { fillWithLeadingZero } from '../../helpers';\n\nimport pl from 'date-fns/locale/pl';\nregisterLocale('pl', pl)\n\n\nconst WEEKDAYS = {\n Monday: 'poniedziałek',\n Tuesday: 'wtorek',\n Wednesday: 'środa',\n Thursday: 'czwartek',\n Friday: 'piątek',\n Saturday: 'sobota',\n Sunday: 'niedziela',\n};\nconst MONTHS = {\n January: 'styczeń',\n February: 'luty',\n March: 'marzec',\n April: 'kwiecień',\n May: 'maj',\n June: 'czerwiec',\n July: 'lipiec',\n August: 'sierpień',\n September: 'wrzesień',\n October: 'październik',\n November: 'listopad',\n December: 'grudzień',\n};\n\n\nconst isSameDay = (date1, date2) => {\n if (date1 && date2) {\n return dfIsSameDay(date1, date2);\n } else {\n return !date1 && !date2;\n }\n}\n\n\nclass ExtendedDatePicker extends DatePicker {\n\n componentDidUpdate(prevProps, prevState) {\n super.componentDidUpdate(prevProps, prevState);\n if (this.calendar) {\n const this_ = this;\n this.calendar.componentDidUpdate = function(prevProps) {\n this_.props.replaceDays();\n if (this.props.preSelection && !isSameDay(this.props.preSelection, prevProps.preSelection)) {\n this.setState({\n date: this.props.preSelection\n });\n } else if (this.props.openToDate && !isSameDay(this.props.openToDate, prevProps.openToDate)) {\n this.setState({\n date: this.props.openToDate\n });\n }\n };\n }\n }\n}\n\n\nclass DateCalendar extends Component {\n\n // handlers\n\n handleCalendarOpen = () => {\n if (this.props.onCalendarOpen) {\n this.props.onCalendarOpen();\n }\n this.handleTranslateCalendar();\n }\n\n handleMonthChange = () => {\n // this method is needed for calendar with limited days\n this.handleTranslateCalendar();\n this.replaceDays();\n }\n\n handleTranslateCalendar() {\n if (this.props.showMonthYearPicker) {\n this.translateCalendarFields('button.react-datepicker__navigation--previous', 'Poprzedni rok');\n this.translateCalendarFields('button.react-datepicker__navigation--next', 'Kolejny rok');\n } else {\n this.translateCalendarFields('button.react-datepicker__navigation--previous', 'Poprzedni miesiąc');\n this.translateCalendarFields('button.react-datepicker__navigation--next', 'Kolejny miesiąc');\n }\n }\n\n handleChange = (value) => {\n if (value !== null) {\n this.translateCalendarFields(\n '.react-datepicker__month',\n `Miesiąc-${value.getFullYear()}-${fillWithLeadingZero(value.getMonth() + 1)}`\n );\n }\n this.props.onChange(value);\n }\n\n // helpers\n\n // Translate .react-datepicker-popper fields to Polish\n translateCalendarFields(querySelector, ariaLabel) {\n if (!this.props.parentRef.current) { return }\n const calendarField = this.props.parentRef.current.querySelector(querySelector);\n\n if (calendarField) {\n calendarField.setAttribute('aria-label', ariaLabel);\n }\n }\n\n replacePartOfAriaLabel = (querySelector, englishPhrase, polishPhrase) => {\n if (!this.props.parentRef.current) { return }\n this.props.parentRef.current.querySelectorAll(querySelector).forEach(calendarField => {\n const newAriaLabel = calendarField.getAttribute('aria-label').replace(\n englishPhrase, polishPhrase);\n calendarField.setAttribute('aria-label', newAriaLabel);\n });\n }\n\n replaceDays = () => {\n if (this.props.showMonthYearPicker) { return }\n if (this.props.parentRef.current) {\n this.replacePartOfAriaLabel('.react-datepicker__month', 'month', 'Miesiąc')\n this.props.parentRef.current.querySelectorAll('.react-datepicker__day').forEach(calendarField => {\n // 'Choose Sunday, March 1st, 2020'\n const [weekDay, month, day, year] = calendarField.getAttribute('aria-label').replace(/,/g, '').split(' ').slice(1);\n let day_, month_;\n if (Object.keys(WEEKDAYS).includes(weekDay)) {\n day_ = day.replace('st', '').replace('nd', '').replace('rd', '').replace('th', '');\n month_ = MONTHS[month];\n } else {\n day_ = month;\n month_ = day;\n }\n calendarField.setAttribute(\n 'aria-label',\n `Wybierz ${WEEKDAYS[weekDay] || weekDay} ${day_} ${month_} ${year}`\n );\n });\n }\n }\n\n render() {\n const {\n ariaDescribedby,\n dateCalendarId,\n dateFormatCustom,\n dateFormat,\n dateName,\n disabled,\n fullwidth,\n invalid,\n maxDate,\n minDate,\n showMonthYearPicker,\n showTimeSelect,\n showTimeSelectOnly,\n timeIntervals,\n timeCaption,\n value,\n } = this.props;\n\n // NOTE! Don't set onFocus, because it destroy translation\n return (\n \n }\n dateFormat={dateFormatCustom ? dateFormatCustom : \"yyyy-MM-dd\"}\n disabled={disabled}\n isClearable={![NaN, null, ''].includes(value)}\n locale=\"pl\"\n maxDate={maxDate}\n minDate={minDate}\n placeholderText=\"\"\n replaceDays={this.replaceDays}\n replacePartOfAriaLabel={this.replacePartOfAriaLabel}\n selected={value}\n showTimeSelect={showTimeSelect}\n showTimeSelectOnly={showTimeSelectOnly}\n timeIntervals={timeIntervals}\n timeCaption={timeCaption}\n onChange={this.handleChange}\n onCalendarClose={this.props.onCalendarClose}\n onCalendarOpen={this.handleCalendarOpen}\n onMonthChange={this.handleMonthChange}\n showMonthYearPicker={showMonthYearPicker}\n />\n );\n }\n}\n\nexport { DateCalendar };\n","import React, { useEffect } from 'react';\n\nimport { setCustomInputAttributes, setCustomSelectAttributes } from '../../helpers';\nimport { Text } from './Text';\n\nconst FieldWithLabel = (props) => {\n const {\n className,\n children,\n inputRef,\n labelFor,\n label,\n selectRef,\n tag,\n ...otherProps\n } = props;\n\n let fieldWithLabelClassName = 'field-with-label ';\n className && (fieldWithLabelClassName += className);\n\n // Add selectRef={React.createRef()} to with select and inputRef={React.createRef()} to dateTime input.\n // Adding inputRef to text input forces proper reading of aria-label of input trailing icon (for cleaning text input value).\n useEffect(() => {\n if (selectRef && selectRef.current !== null) {\n setCustomSelectAttributes(selectRef);\n }\n\n if (inputRef && inputRef.current !== null) {\n setCustomInputAttributes(inputRef);\n }\n });\n\n return (\n \n {label}\n {children}\n \n );\n}\n\nexport { FieldWithLabel };\n","import React from 'react';\nimport ReactSelect from 'react-select';\nimport { Icon } from '@rmwc/icon';\n\n\nconst instructionsAriaMessage = (event, context) => {\n const { isSearchable, isMulti, label, isDisabled } = context;\n switch (event) {\n case 'menu':\n return `Użyj strzałek góra, dół, aby wybrać opcję ${isDisabled ? '' : ', wciśnij Enter, aby wybrać aktualnie zaznaczoną opcję'}, wciśnij Escape żeby wyjść z menu, wciśnij Tab żeby wybrać opcję i wyjść z menu.`;\n case 'input':\n return `${label ? label : 'Select'} jest zaznaczona ${\n isSearchable ? ', wpisz, żeby odświeżyć listę. Lista opcji zawęzi się po wpisaniu kolejnych znaków.' : ''\n }, wciśnij strzałkę w dół, aby otworzyć menu, ${\n isMulti ? ' wciśnij strzałkę w lewo, żeby zaznaczyć wybraną wartość.' : ''\n }`;\n case 'value':\n return 'Użyj strzałek w lewo i w prawo aby przełączać się między zaznaczonymi wartościami, wciśnij Backspace, aby nie zaznaczyć wartości.';\n default:\n return null;\n }\n};\n\n\nconst valueEventAriaMessage = (event, context) => {\n const { value, isDisabled } = context;\n if (!value) return;\n switch (event) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return `opcja ${value}, niewybrana.`;\n case 'select-option':\n return isDisabled ? `opcja ${value} jest nieaktywna. Wybierz inną opcję.` : `Wybrano opcję ${value}.`;\n default:\n return null;\n }\n};\n\n\nconst valueFocusAriaMessage = ({focusedValue, getOptionLabel, selectValue}) => {\n return `wartość ${getOptionLabel(focusedValue)} jest zaznaczona, ${selectValue.indexOf(focusedValue) + 1} z ${selectValue.length}.`\n}\n\n\nexport const optionFocusAriaMessage = ({focusedOption, getOptionLabel, options}) => {\n return `Opcja ${getOptionLabel(focusedOption)}, zaznaczona ${focusedOption.isDisabled ? ' jest nieakywna' : ''}, ${options.indexOf(\n focusedOption) + 1} z ${options.length}.`\n}\n\n\nexport const resultsAriaMessage = ({inputValue, screenReaderMessage}) => {\n return `${screenReaderMessage}${inputValue ? ' dla szukanej frazy ' + inputValue : ''}.`\n}\n\n\nclass Select extends ReactSelect {\n\n componentDidMount() {\n const this_ = this.select;\n this_.announceAriaLiveContext = ({event, context}) => {\n this_.setState({\n ariaLiveContext: instructionsAriaMessage(event, {\n ...context,\n label: this_.props['aria-label'],\n }),\n });\n };\n this_.announceAriaLiveSelection = ({event, context}) => {\n this_.setState({\n ariaLiveSelection: valueEventAriaMessage(event, context),\n });\n };\n this_.constructAriaLiveMessage = () => {\n const {\n ariaLiveContext,\n selectValue,\n focusedValue,\n focusedOption,\n } = this_.state;\n const { options, menuIsOpen, inputValue, screenReaderStatus } = this_.props;\n\n // An aria live message representing the currently focused value in the select.\n const focusedValueMsg = focusedValue ? valueFocusAriaMessage({focusedValue, getOptionLabel: this_.getOptionLabel, selectValue}) : '';\n // An aria live message representing the currently focused option in the select.\n const focusedOptionMsg = focusedOption && menuIsOpen ? optionFocusAriaMessage({focusedOption, getOptionLabel: this_.getOptionLabel, options}): '';\n // An aria live message representing the set of focusable results and current searchterm/inputvalue.\n const resultsMsg = resultsAriaMessage({inputValue, screenReaderMessage: screenReaderStatus({ count: this_.countOptions() })});\n\n return `${focusedValueMsg} ${focusedOptionMsg} ${resultsMsg} ${ariaLiveContext}`;\n };\n\n this_.renderDropdownIndicator = () => {\n const { DropdownIndicator } = this_.components;\n if (!DropdownIndicator) return null;\n\n const innerProps = {\n onMouseDown: this_.onDropdownIndicatorMouseDown,\n onTouchEnd: this_.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true',\n id: this.props.indicatorId,\n };\n\n return (\n \n );\n };\n\n this_.renderClearIndicator = () => {\n const { ClearIndicator } = this_.components;\n const { isDisabled, isLoading } = this_.props;\n\n if (\n !this_.isClearable() ||\n !ClearIndicator ||\n isDisabled ||\n !this_.hasValue() ||\n isLoading\n ) {\n return null;\n }\n\n return (\n { this_.clearValue()} }\n >\n \n \n );\n }\n }\n}\n\n\nexport { Select };\n","import React from 'react';\n\nimport { customSelectStyles } from '../vars/vars';\nimport { DateCalendar } from './DateCalendar';\nimport { FieldWithLabel } from './FieldWithLabel';\nimport { Select } from './Select';\n\nimport { SEARCH_DATE_CHOICES } from '../../const';\nimport { dateToString } from '../../helpers';\n\n\nconst CHOICES_DICT = {};\nfor (let ch of SEARCH_DATE_CHOICES) {\n CHOICES_DICT[ch[0]] = ch[1];\n}\n\n\nconst DateSelect = (props) => {\n const type = props.value.type || '0';\n const selectValue = {value: type, label: CHOICES_DICT[type]};\n\n const from = !!props.value.from ? new Date(props.value.from) : '';\n const to = !!props.value.to ? new Date(props.value.to) : '';\n const odInputRef = React.createRef();\n const doInputRef = React.createRef();\n\n return (\n <>\n {return ''}}\n className=\"select-custom\"\n options={SEARCH_DATE_CHOICES.map(choice => ({value: choice[0], label: choice[1], data: {from: choice[2], to: choice[3]}}))}\n value={selectValue}\n onChange={selectedOption => props.updateDate(\n {type: selectedOption.value, ...selectedOption.data})}\n styles={customSelectStyles}\n aria-describedby={props.ariaDescribedby}\n aria-label={props.selectAriaLabel || ''}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n {selectValue.value === 'custom' && (\n <>\n \n props.updateDate({from: dateToString(date)})} />\n \n \n props.updateDate({to: dateToString(date)})} />\n \n \n )}\n \n )\n}\n\n\nexport { DateSelect };\n","import React from 'react';\nimport FocusTrap from 'focus-trap-react';\nimport { Dialog, DialogContent, DialogTitle } from '@rmwc/dialog';\n\nconst DialogCustom = (props) => {\n const {\n ariaLabelledby,\n children,\n dialogRef,\n dialogTitle,\n dialogTitleError,\n onClose,\n onKeyDown,\n ...otherProps\n } = props;\n\n let title = null;\n\n if (dialogTitle) {\n title = {dialogTitle};\n }\n\n if (dialogTitleError) {\n title = {dialogTitleError};\n }\n\n function handleKeyDown(ev) {\n if (onKeyDown) {\n onKeyDown(ev);\n } else if (ev.key === 'Escape') {\n onClose();\n }\n }\n\n return (\n <>\n \n \n
    \n
    {title}
    \n \n {children}\n \n
    \n
    \n \n \n )\n}\n\n\nexport { DialogCustom };\n","// USAGE:\n// Do not provide any props if you use to normal text paragraph,\n// which line-height = 25px (font-size = 16px).\n// If font-size is bigger, provide `lineHeight` prop.\n// To set lineHeight use number of px, but do not add px unit ex.: lineHeight={10}.\n// There are 4 lines by default.\n// If you want to show different number of lines, put it in `lines` prop\n\nimport React, { useEffect, useState } from 'react';\nimport { Button } from '@rmwc/button';\nimport { Icon } from '@rmwc/icon';\n\nconst Ellipsis = (props) => {\n const {\n children,\n lineHeight,\n lines,\n } = props;\n\n let ellipsisRef = React.createRef();\n let ellipsisMaxHeight = (lines || 4) * (lineHeight || 25);\n\n const [ellipsis, setEllipsisContainer] = useState(true);\n const [longText, setLongText] = useState(true);\n\n useEffect(() => {\n // If text is short (height of text is smaller than ellipsis container height (ellipsisMaxHeight), dont set the ellipsis container.\n if (ellipsisRef.current.querySelector('.text').clientHeight <= ellipsisMaxHeight) {\n setLongText(false);\n }\n }, [ellipsisRef, ellipsisMaxHeight]);\n\n return (\n <>\n \n {children}\n \n {longText && (\n
    \n {ellipsis &&\n \n }\n setEllipsisContainer(!ellipsis)}\n style={!ellipsis && { marginTop: (lineHeight || 25) }}\n >\n \n {ellipsis ? 'Czytaj więcej' : 'Ukryj tekst'}\n \n
    \n )}\n \n );\n}\n\nexport { Ellipsis };\n","import React from 'react';\n\n\nconst GridCellCustom = (props) => {\n const {\n className,\n children,\n fill,\n customRef,\n ...otherProps\n } = props;\n\n let gridCellClassName = 'grid-custom__cell ';\n className && (gridCellClassName += className);\n\n return (\n \n {children}\n \n );\n}\n\nexport { GridCellCustom };\n","import React from 'react';\nimport { LinearProgress } from '@rmwc/linear-progress';\nimport '@material/linear-progress/dist/mdc.linear-progress.css';\n\n\nconst LinearProgressCustom = (props) => {\n const {\n className,\n classNameInfo,\n progress\n } = props;\n\n let progressBarClassName = 'progress-bar ';\n className && (progressBarClassName += className);\n\n let progressBarInfoClassName = 'progress-bar__progress-info ';\n className && (progressBarInfoClassName += classNameInfo);\n\n return (\n
    \n

    \n 0%\n 100%\n

    \n \n
    \n );\n}\n\nexport { LinearProgressCustom };\n","import React from 'react';\n\nimport { ListItem, ListItemGraphic } from '@rmwc/list';\nimport { Theme } from '@rmwc/theme';\nimport { Typography } from '@rmwc/typography';\n\nimport '@material/theme/dist/mdc.theme.css';\nimport '@material/list/dist/mdc.list.css';\nimport '@material/typography/dist/mdc.typography.css';\n\n\nconst MenuBasic = React.forwardRef((props, ref) => {\n return (\n \n {props.title && props.title.length > 0 && (\n {props.title}\n )}\n
      \n {props.children.map((link) =>\n
    • \n (props.disabled || (props.disabledFrom && props.disabledFrom <= link.id)) ? {} : link.onClick(link.id)}\n >\n \n \n \n {link.label}\n \n {\n (\n (props.currentMenuLink !== null && link.id < props.currentMenuLink)\n ? ' Wypełnione.'\n : (\n props.currentMenuLink !== null && link.id === props.currentMenuLink\n ? ' W trakcie wypełniania.' : ' Przyszły etap.'\n )\n ) + (\n props.errors[link.name] === true\n ? ' Wymaga uwagi.'\n : (props.errors[link.name] === false ? ' Poprawna walidacja.' : '')\n )\n }\n \n \n \n
    • \n )}\n
    \n
    \n )\n})\n\nconst styles = {\n iconStyle: {\n color: '#fff'\n }\n}\n\n\nexport { MenuBasic };\n","// Don't forget to add menu button trigger in component where is placed\n// e.g. {this.setState(prevState => ({openMenu: !prevState.openMenu}))}} icon=\"menu\" />\n\nimport React, { useContext, useEffect, useState } from 'react';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { Drawer, DrawerContent } from '@rmwc/drawer';\nimport { ListDivider, ListItem, ListItemGraphic, ListItemText } from '@rmwc/list';\nimport '@material/drawer/dist/mdc.drawer.css';\nimport '@material/icon-button/dist/mdc.icon-button.css';\nimport '@material/list/dist/mdc.list.css';\n\nimport { MenuContext } from '../../context/menuContext';\nimport { UserContext } from '../../context/user-context';\n\nimport ueLogo from '../../static/img/fe_ue_logos.png'\nimport { Badge } from '@rmwc/badge';\nimport '@rmwc/badge/badge.css';\nimport { fetchApi } from '../../fetch';\n\nconst MenuDrawer = (props) => {\n const {\n currentMenuLink,\n mobile,\n openMenu,\n onMenuClose,\n } = props;\n\n const { updateMenuKey, refreshBadgesCount } = useContext(MenuContext);\n\n const location = useLocation();\n\n const [badges, setBadges] = useState();\n\n const { user } = useContext(UserContext);\n\n useEffect(() => {\n if(user?.id !== null) {\n fetchApi(\n '/api/badge/menu',\n 'GET',\n {},\n {},\n (response) => {\n setBadges(response);\n },\n () => {},\n () => {})\n }\n\n }, [user, refreshBadgesCount]);\n\n function renderUeLogo() {\n if (location.pathname != '/') {\n return (\n
    \n Zestawienie znaków: Fundusze Europejskie, Barwy Rzeczypospolitej Polskiej, Unia Europejska\n
    \n )\n }\n }\n\n const renderBadge = (linkName) => {\n\n const map = {\n advertisements: badges?.my_advertisement_badge_count,\n offers: badges?.my_offer_set_badge_count,\n newsletter: badges?.favorite_advertisement_badge_count\n };\n\n const value = map[linkName];\n\n return value > 0 ? : <>\n }\n\n return (\n \n \n \n {renderUeLogo()}\n \n \n )\n}\n\n\nexport { MenuDrawer };\n","export default \"data:image/png;base64,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\"","import React from 'react';\nimport { Icon } from '@rmwc/icon';\n\nimport { Text } from './Text'\n\nconst Message = (props) => {\n const {\n className,\n children,\n error,\n id,\n messageIcon,\n messageTitle,\n role,\n success\n } = props;\n\n let basicClassName = 'message'\n\n if (error) {\n basicClassName += ' message--error'\n } else if (success) {\n basicClassName += ' message--success'\n }\n\n return (\n
    \n \n \n {messageTitle}\n \n {children && {children}}\n
    \n )\n}\n\nexport { Message };\n","import React, { useContext } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { Box } from '../Box';\nimport { FieldWithLabel } from '../FieldWithLabel';\nimport { Text } from '../Text';\n\n\nconst EMPTY_VALUE = 'Brak danych';\n\n\nexport const AuditData = ({\n createdAt,\n createdBy,\n modifiedAt,\n modifiedBy,\n titleOneRow,\n ...boxProps\n}) => {\n const { user } = useContext(UserContext);\n if (!user.identifier) { return null }\n return (\n \n
    \n <>\n \n {createdBy || EMPTY_VALUE}\n \n \n {createdAt || EMPTY_VALUE}\n \n \n <>\n \n {modifiedBy || EMPTY_VALUE}\n \n \n {modifiedAt || EMPTY_VALUE}\n \n \n
    \n \n )\n};\n","import React from 'react';\n\nimport { ButtonStyled, GridCustom } from'../../common';\n\n\nexport const CancelSaveButtonsRow = ({\n disabled, disabledSave, cancelText, saveText, onCancel, onSave\n}) => {\n return (\n \n \n {cancelText || 'Anuluj'}\n \n \n {saveText || 'Zapisz'}\n \n \n )\n}\n","import React from 'react';\n\nimport { Text } from '../Text';\n\n\nexport const ErrorList = ({containerId, errorList}) => {\n return (\n
      \n {errorList.map((e, i) => {e})}\n
    \n )\n}\n","import React from 'react';\n\nimport { GridCustom, Text } from'../../common';\n\n\nexport const FetchErrorWithOkayButton = ({\n buttonLabel,\n infoMsg,\n message,\n onClickOkay,\n}) => {\n return (\n \n {message}\n \n \n )\n}\n","import React from 'react';\n\nimport { ButtonStyled } from'../ButtonStyled';\n\n\nexport const FiltersButton = ({filtersCounter: counter, filteringLabel, onOpenFilters}) => {\n return (\n {\n onOpenFilters();\n e.currentTarget.blur();\n }}>\n {filteringLabel || 'Filtruj listę'}\n Liczba aktywnych filtrów: \n {counter}\n \n )\n}\n","import React from 'react';\nimport { Icon } from '@rmwc/icon';\nimport { Text } from'../../common';\n\n\nexport const InfoTextWithIcon = ({message, icon, ...props}) => {\n return (\n \n \n {message}\n \n )\n}\n","import React from 'react';\n\nimport { Message } from '../Message';\n\n\nexport const NotPermittedPage = ({ message }) => {\n return (\n \n {message || 'Nie masz uprawnień do przeglądania tej strony.'}\n \n );\n}\n","import React from 'react';\n\nimport { Text } from '../Text';\n\n\nexport const PaginatedListHeader = ({title, total}) => {\n return (\n
    \n {title}\n Liczba wyników: {total}\n
    \n )\n}\n","import React from 'react';\n\nimport { customSelectStyles } from '../../vars/vars';\nimport { FieldWithLabel, Select } from '../../common';\n\n\nexport const SortersSelect = ({selectedSort, sortingLabel, sortingValues, onChangeSort}) => {\n // sortingValues as a list [[value1, label1], [value2, label2]]\n return (\n \n ({value: value[0], label: value[1]}))}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n screenReaderStatus={() => {return ''}}\n styles={customSelectStyles}\n value={selectedSort}\n onChange={onChangeSort}\n />\n
    \n )\n}\n","import React, {useRef, useState} from 'react';\nimport { Button } from '@rmwc/button';\nimport { Icon } from '@rmwc/icon';\nimport { MenuSurfaceAnchor, MenuSurface } from '@rmwc/menu';\n\nconst MoreOptionsButton = (props) => {\n const [open, setOpen] = useState(false); \n const menuContentRef = useRef();\n const {\n children,\n className,\n menuAriaLabel,\n ...otherProps\n } = props;\n\n const handleOpen = () => {\n menuContentRef.current.focus();\n }\n\n return (\n \n {\n setOpen(!open);\n e.currentTarget.blur();\n }}\n unelevated\n className=\"more-options__btn\" >\n \n \n setOpen(false)}\n onOpen={handleOpen}\n open={open}\n >\n <>\n
    \n \n \n \n \n );\n}\n\nexport { MoreOptionsButton };\n","import React from 'react';\nimport { Typography } from '@rmwc/typography';\nimport { ButtonStyled } from '.';\n\n\nconst NextStep = (props) => {\n const {\n className,\n disabled,\n onClick,\n prevStep,\n stepTitle\n } = props;\n\n let nextStepClassName = 'next-step ';\n className && (nextStepClassName += className);\n\n return (\n \n );\n}\n\nexport { NextStep };\n","// TextFieldCustom adds clear field (onClear) function to text field\n\nimport React, { Component } from 'react';\nimport { Icon } from '@rmwc/icon';\nimport { TextField } from '@rmwc/textfield';\n\n\nclass TextFieldCustom extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isInputFocused: false,\n isIconClicked: false,\n };\n this.blurInputTimeout = null;\n\n this.handleBlurInput = this.handleBlurInput.bind(this);\n this.handleClickIcon = this.handleClickIcon.bind(this);\n this.handleFocusInput = this.handleFocusInput.bind(this);\n }\n\n // basic functions\n\n componentWillUnmount() {\n if (this.blurInputTimeout !== null) {\n clearTimeout(this.blurInputTimeout);\n this.blurInputTimeout = null;\n }\n }\n\n // handlers\n\n handleClickIcon(ev) {\n this.setState({isIconClicked: true}, () => {\n if (this.props.onClear) {\n this.props.onClear(ev);\n }\n this.setState({isIconClicked: false});\n });\n }\n\n // TODO: if icon to clear text field is visible always when the field is not empty, handleBlurInput(ev) and handleFocusInput(ev) should be deleted.\n handleBlurInput(ev) {\n if (this.props.onBlur) {\n this.props.onBlur(ev);\n }\n this.blurInputTimeout = setTimeout(() => {\n if (!this.state.isIconClicked) {\n this.setState({isInputFocused: false});\n }\n }, 150);\n }\n\n handleFocusInput(ev) {\n if (this.props.onFocus) {\n this.props.onFocus(ev);\n }\n this.setState({isInputFocused: true});\n }\n\n // rendering\n\n render() {\n const props_ = Object.assign({}, this.props, {\n onBlur: this.handleBlurInput,\n onFocus: this.handleFocusInput,\n });\n // this is not a basic component prop, it throws error if declared and not used\n delete props_['onClear'];\n // this is not a basic component prop, it should be deleted not to propagate when not used\n delete props_['clearFieldContext'];\n\n return (\n
    \n \n {props_.value.length ? (\n \n Wyczyść pole {this.props.clearFieldContext}\n \n \n ) : null}\n
    \n )\n }\n};\n\n\nexport { TextFieldCustom };\n","import React, { Component } from 'react';\n\nimport { roundStringTo } from '../../helpers';\nimport { FieldWithLabel } from './FieldWithLabel';\nimport { Text } from './Text';\nimport { TextFieldCustom } from './TextFieldCustom';\n\n\nclass NumberTextField extends Component {\n\n constructor(props) {\n super(props);\n this.state = {value: props.value || ''};\n }\n\n // handlers\n\n handleBlur = (ev) => {\n let value = roundStringTo(ev.target.value);\n this.setState(\n {value},\n () => this.props.onChange(value)\n );\n }\n\n handleChange = (ev) => {\n let value = ev.target.value;\n this.setState(\n prevState => {\n if (value.indexOf(',') === -1 && value.length > 24) {\n value = prevState.szacunkowaWartosc;\n }\n return {value: value}\n },\n () => this.props.onChange(value)\n );\n }\n\n handleKeyPress = (ev) => {\n const value = this.state.value;\n const valueLenth = value.length;\n const key = ev.key;\n const keyIndex = ev.target.selectionStart;\n if (!/[\\d,]/.test(key)) {\n ev.preventDefault();\n return\n }\n if (key === ',') {\n if (value.indexOf(',') > -1 || valueLenth === 0) {\n ev.preventDefault();\n return\n }\n if (keyIndex < valueLenth - 2) {\n ev.preventDefault();\n return\n }\n } else {\n // it's digit\n\n const comaIndex = value.indexOf(',');\n\n if (comaIndex === -1 && valueLenth === 24) {\n ev.preventDefault();\n return\n }\n\n if (comaIndex === 24 && keyIndex <= 24) {\n ev.preventDefault();\n return\n }\n\n if (comaIndex > -1 && valueLenth === comaIndex + 3 && keyIndex > comaIndex) {\n ev.preventDefault();\n }\n }\n }\n handlePaste = (ev) => {\n // stop data actually being pasted into input\n ev.preventDefault();\n // set pasted data via clipboard API\n const clipboardData = ev.clipboardData || window.clipboardData;\n const pastedData = clipboardData.getData('Text');\n if (/^\\d{1,24}(,\\d{2})?$/.test(pastedData)) {\n this.setState({value: pastedData});\n }\n }\n\n // rendering\n\n render() {\n const { errors, label } = this.props;\n\n const isFieldInvalid = (errors || []).length > 0\n const fieldId = `${this.props.attrName}_id_${this.props.parentTemporaryId}`;\n\n return (\n \n this.setState({value: ''}, () => {\n this.props.onChange('')\n })}\n onKeyPress={this.handleKeyPress}\n onPaste={this.handlePaste}\n />\n {isFieldInvalid &&
      {errors.map((e, i) => {e})}
    }\n Wpisz wartość zgodnie ze wzorem: 1000000,00\n
    \n )\n }\n}\n\nexport { NumberTextField };\n","import React from 'react';\n\nimport { Message } from './Message';\n\n\nconst NotFoundPage = (props) => {\n return (\n \n Strona nie istnieje\n \n );\n}\n\nexport { NotFoundPage };\n","import React from 'react';\nimport { Icon } from '@rmwc/icon';\n\nimport { GridCustom } from './GridCustom';\nimport { Text } from './Text';\n\nconst OfferStatus = (props) => {\n const {\n className,\n statusIcon,\n statusName,\n } = props;\n\n return (\n
    \n Status oferty\n \n \n Status oferty: {statusName}\n \n
    \n )\n}\n\nexport { OfferStatus };\n","export const API_URLS = {\n // users\n users: {\n path: '/api/admin/users',\n },\n usersDetails: {\n getUrl: (userId) => `/api/admin/users/${userId}`,\n },\n usersFindUser: {\n url: '/api/admin/users/find',\n },\n /* watch modes for this url\n modeUserCurrent - needs 'authorized' as current user id - current user's permissions\n modeUserCustom - needs 'authorized' as requested user id - requested user's permissions\n modeContext - don't add 'authorized' to GET parameters - all permissions\n */\n usersPermissionsAdvertisementsProjectsEnrollments: {\n path: '/api/admin/permissions_ads_projects_enrollments',\n },\n usersPermissionsAdvertisementsProjectsEnrollmentsDetails: {\n path: '/api/admin/permissions_ads_projects_enrollments/package',\n description: 'used for single permission details',\n },\n /* watch modes for this url\n modeUserCurrent - needs 'authorized' as current user id - current user's permissions\n modeUserCustom - needs 'authorized' as requested user id - requested user's permissions\n modeContext - don't add 'authorized' to GET parameters - all permissions\n */\n usersPermissionsDictionaries: {\n path: '/api/admin/permissions_dictionary',\n },\n usersPermissionsDictionariesDetails: {\n path: '/api/admin/permissions_dictionary/package',\n description: 'used for single permission details',\n },\n /* watch modes for this url\n modeUserCurrent - needs 'authorized' as current user id - current user's permissions\n modeUserCustom - needs 'authorized' as requested user id - requested user's permissions\n modeContext - don't add 'authorized' to GET parameters - all permissions\n */\n usersPermissionsContent: {\n path: '/api/admin/permissions_content',\n },\n usersPermissionsContentDetails: {\n path: '/api/admin/permissions_content/package',\n description: 'used for single permission details',\n },\n /* watch modes for this url\n modeUserCurrent - needs 'authorized' as current user id - current user's permissions\n modeUserCustom - needs 'authorized' as requested user id - requested user's permissions\n modeContext - don't add 'authorized' to GET parameters - all permissions\n */\n usersPermissionsUsers: {\n path: '/api/admin/permissions_users',\n },\n usersPermissionsUsersDetails: {\n path: '/api/admin/permissions_users/package',\n description: 'used for single permission details',\n },\n usersPermissionsContentDictionariesUsers: {\n path: '/api/admin/permissions_cont_dict_users',\n },\n usersPermissionsHistoryAdvertisementsProjectsEnrollments: {\n path: '/api/admin/permissions_history_ads_projects_enrollments',\n },\n usersPermissionsHistoryContentDictionariesUsers: {\n path: '/api/admin/permissions_history_cont_dict_users',\n },\n usersPermissionsHistoryContent: {\n path: '/api/admin/permissions_history_content',\n },\n usersPermissionsHistoryDictionaries: {\n path: '/api/admin/permissions_history_dictionaries',\n },\n usersPermissionsHistoryUsers: {\n path: '/api/admin/permissions_history_users',\n },\n // content administration\n helpAdmin: {\n path: '/api/admin/help'\n },\n helpAdminDictionaries: {\n path: '/api/admin/help/dictionaries',\n },\n helpAdminDetails: {\n getUrl: (helpId) => `/api/admin/help/${helpId}`\n },\n statementsAdmin: {\n path: '/api/admin/statements'\n },\n statementsAdminDetails: {\n getUrl: (statementId) => `/api/admin/statements/${statementId}`\n },\n cookiesAdmin: {\n path: '/api/admin/cookies',\n },\n generalContentAdmin: {\n path: '/api/admin/general-content',\n },\n generalContentAdminDetails: {\n getUrl: (generalContentId) => `/api/admin/general-content/${\n generalContentId}`,\n },\n regulations: {\n path: '/api/regulations',\n },\n regulationsAdmin: {\n path: '/api/admin/regulations',\n },\n regulationsAdminDetails: {\n // Attention! It doesn't return a single regulation details\n path: '/api/admin/regulations/details',\n },\n // implementation levels\n perspectives: {\n path: '/api/perspectives',\n },\n perspectivesAdmin: {\n path: '/api/admin/dictionaries_perspective',\n },\n programmes: {\n getUrl: (perspectiveId = 0) =>\n `/api/programme/perspective/${perspectiveId}`,\n },\n programmesAdmin: {\n getUrl: (perspectiveId = 0) =>\n `/api/admin/dictionaries_programme/perspective/${perspectiveId}`,\n },\n programmesAdd: {\n path: '/api/admin/dictionaries_programme',\n },\n programmesEdit: {\n getUrl: (programmeId) => `/api/admin/dictionaries_programme/${programmeId}`,\n },\n priorities: {\n getUrl: (programmeId) => `/api/priority/programme/${programmeId}`\n },\n prioritiesAdmin: {\n getUrl: (programmeId) =>\n `/api/admin/dictionaries_priority/programme/${programmeId}`\n },\n prioritiesAdd: {\n path: '/api/admin/dictionaries_priority',\n },\n prioritiesEdit: {\n getUrl: (priorityId) => `/api/admin/dictionaries_priority/${priorityId}`,\n },\n activities: {\n getUrl: (priorityId) => `/api/activity/priority/${priorityId}`\n },\n activitiesAdmin: {\n getUrl: (priorityId) =>\n `/api/admin/dictionaries_activity/priority/${priorityId}`\n },\n activitiesAdd: {\n path: '/api/admin/dictionaries_activity',\n },\n activitiesEdit: {\n getUrl: (activityId) => `/api/admin/dictionaries_activity/${activityId}`,\n },\n regions: {\n getUrl: (activityId) => `/api/region/activity/${activityId}`\n },\n regionsAdmin: {\n getUrl: (activityId) =>\n `/api/admin/dictionaries_region/activity/${activityId}`\n },\n regionsAdd: {\n path: '/api/admin/dictionaries_region',\n },\n regionsEdit: {\n getUrl: (regionId) => `/api/admin/dictionaries_region/${regionId}`,\n },\n institutions: {\n getUrl: (activityId) => `/api/institution/activity/${activityId}`\n },\n institutionsAdmin: {\n getUrl: (activityId) =>\n `/api/admin/dictionaries_institution/activity/${activityId}`\n },\n institutionsAdd: {\n path: '/api/admin/dictionaries_institution',\n },\n institutionsEdit: {\n getUrl: (institutionId) =>\n `/api/admin/dictionaries_institution/${institutionId}`,\n },\n}\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { API_URLS } from '../../../urls/api';\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedErrorsFromServer,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled,\n CancelSaveButtonsRow,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\n\n\nexport const DeleteImplementationLevel = ({\n apiUrlName,\n item,\n parentFormLabel,\n perspectiveData,\n RelatedObjectsExistInfoComponent,\n titleFormLabel,\n onCancel,\n onDelete\n}) => {\n const [deletingOn, setDeletingOn] = useState(false);\n const [fetchError, setFetchError] = useState(null);\n const [\n objectRelatedWithOthers, setObjectRelatedWithOthers\n ] = useState(false);\n\n const { removePermission } = useContext(UserContext);\n\n useEffect(() => {\n if (!deletingOn) { return }\n\n setFetchError(null);\n let xhrFetch = null;\n\n function callbackSuccess(responseData) {\n xhrFetch = null;\n onDelete();\n }\n\n function callbackError(responseData) {\n xhrFetch = null;\n setFetchError(translateErrorMessage(responseData.message));\n setDeletingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n setFetchError(\n status === 403\n ? 'Nie masz uprawnień do usuwania elementów słownika poziomów wdrożenia.'\n : `Wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n setDeletingOn(false);\n if (status === 403) {\n removePermission('editingDictionaries');\n }\n }\n\n function callbackShowErrors(responseErrors) {\n xhrFetch = null;\n const errors = getSerializedErrorsFromServer(\n responseErrors, {doNotTranslateNames: true});\n if (((errors || {}).allFields || {}).id) {\n setObjectRelatedWithOthers(true);\n }\n setDeletingOn(false);\n }\n\n xhrFetch = fetchApi(\n API_URLS[apiUrlName].getUrl(item.id),\n 'DELETE', {}, {},\n callbackSuccess,\n callbackError,\n callbackIncorrectStatus,\n callbackShowErrors\n );\n\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }, [deletingOn]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n \n

    \n {objectRelatedWithOthers\n ? 'Niemożliwe usunięcie'\n : 'Potwierdzenie usunięcia'\n } {titleFormLabel}\n

    \n \n \n {parentFormLabel && {parentFormLabel}}\n {item.code}\n \n \n \n {item.name}\n \n\n {objectRelatedWithOthers\n ? (\n <>\n \n \n OK\n \n \n )\n : (\n <>\n setDeletingOn(true)} />\n {!!fetchError && {fetchError}}\n \n )\n }\n\n \n )\n};\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedErrorsFromServer,\n translateErrorMessage\n} from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n CancelSaveButtonsRow,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom\n} from '../../common';\n\n\nconst DEFAULT_DATA = {\n code: '',\n name: '',\n};\n\n\nexport const ImplementationLevelForm = ({\n addApiUrlName,\n additionalSaveData,\n codeMaxLength = 2,\n editApiUrlName,\n originalData, // original if exists\n parentFormLabel,\n titleFormLabel,\n onCancel,\n onSave\n}) => {\n const isNew = originalData === null;\n const [data, setData] = useState(\n {...(isNew ? DEFAULT_DATA : originalData)});\n const [savingOn, setSavingOn] = useState(false);\n const [errors, setErrors] = useState({});\n const [fetchError, setFetchError] = useState(null);\n\n function handleChangeAttribute(name, value) {\n setData(prevValue => ({\n ...prevValue,\n [name]: value,\n }));\n }\n\n const { removePermission } = useContext(UserContext);\n\n useEffect(() => {\n if (!savingOn) { return }\n setErrors({});\n setFetchError(null);\n let xhrFetch = null;\n\n function callbackSuccess(responseData) {\n xhrFetch = null;\n onSave();\n }\n\n function callbackError(responseData) {\n xhrFetch = null;\n setFetchError(translateErrorMessage(responseData.message));\n setSavingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n setFetchError(\n status === 403\n ? 'Nie masz uprawnień do zapisu elementów słownika poziomów wdrożenia.'\n : `Wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n setSavingOn(false);\n if (status === 403) {\n removePermission('editingDictionaries');\n }\n }\n\n function callbackShowErrors(errors) {\n xhrFetch = null;\n setErrors(getSerializedErrorsFromServer(\n errors, {doNotTranslateNames: true}));\n setSavingOn(false);\n }\n\n xhrFetch = fetchApi(\n isNew ? API_URLS[addApiUrlName].path : API_URLS[editApiUrlName].getUrl(data.id),\n isNew ? 'POST' : 'PUT',\n {},\n {\n ...(isNew ? {...additionalSaveData, code: data.code} : {}),\n name: data.name,\n },\n callbackSuccess,\n callbackError,\n callbackIncorrectStatus,\n callbackShowErrors\n );\n\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }, [savingOn]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const isCodeInvalid = (errors.code || []).length > 0;\n const isNameInvalid = (errors.name || []).length > 0;\n return (\n \n

    \n {isNew ? 'Dodawanie' : 'Edycja'} {titleFormLabel}\n

    \n\n {isNew\n ? (\n <>\n \n \n {parentFormLabel && {parentFormLabel}}\n handleChangeAttribute(\n 'code', ev.target.value\n )}\n onClear={ev => handleChangeAttribute('code', '')}\n />\n \n {isCodeInvalid && (\n
      \n {errors.code.map((e, i) =>\n {e}\n )}\n
    \n )}\n \n \n )\n : (\n \n \n {parentFormLabel && {parentFormLabel}}\n {data.code}\n \n \n )\n }\n \n handleChangeAttribute(\n 'name', ev.target.value\n )}\n onClear={ev => handleChangeAttribute('name', '')}\n />\n {isNameInvalid && (\n
      \n {errors.name.map((e, i) =>\n {e}\n )}\n
    \n )}\n \n\n setSavingOn(true)} />\n {!!fetchError && {fetchError}}\n \n )\n};\n","import { useEffect, useState } from 'react';\n\nimport { fetchApi } from '../fetch';\n\n\nexport const useCheckPermissionExists = (\n checkingExistedPermissionOn, setCheckingExistedPermissionOn, url,\n fetchDataDict, setExistsErrorOn, setPermissions403errorOn, userId\n) => {\n const [existingPermissionData, setExistedPermissionData] = useState(null);\n\n function checkPermission() {\n if (!checkingExistedPermissionOn || !url.length) { return }\n\n let xhrFetch = null;\n\n function callbackPermissionExists(data) {\n xhrFetch = null;\n setExistedPermissionData(data.permission);\n setCheckingExistedPermissionOn(false);\n setExistsErrorOn(true);\n }\n\n function callbackPermissionDoesNotExists() {\n xhrFetch = null;\n setCheckingExistedPermissionOn(false);\n }\n\n function callbackPermissionIncorrectStatus(statusCode) {\n if (statusCode === 403) {\n setPermissions403errorOn(true);\n }\n callbackPermissionDoesNotExists();\n }\n\n xhrFetch = fetchApi(\n url, 'GET', {},\n {authorized: userId, ...fetchDataDict},\n callbackPermissionExists, callbackPermissionDoesNotExists,\n callbackPermissionIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {\n xhrFetch.abort();\n }\n }\n }\n useEffect(checkPermission, [checkingExistedPermissionOn]);\n\n return {existingPermissionData}\n};\n","import { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { fetchApi } from '../fetch';\nimport {\n getSerializedErrorsFromServer,\n getSerializedObject,\n serializeUrlParams,\n translateErrorMessage\n} from '../serializers';\n\n\nexport const useOneTimeFetchApi = (config) => {\n const url = config.url || '';\n const fetchData = config.fetchData || {};\n const serializeFetchDataFunction = config.serializeFetchDataFunction ||\n (data => data);\n const updatedData = config.updatedData || null;\n const message403error = config.message403error || '';\n const callback403 = config.callback403 || (() => {});\n const requestId = config.requestId || 1;\n\n const [loadingOn, setLoadingOn] = useState(true);\n const [fetchError, setFetchError] = useState(null);\n const [data, setData] = useState(null);\n\n function getDataFromServer() {\n setLoadingOn(true);\n setFetchError(null);\n\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n setData(serializeFetchDataFunction(data));\n setLoadingOn(false);\n }\n\n function callbackError(data) {\n xhrFetch = null;\n setFetchError(translateErrorMessage(data.message));\n setLoadingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n if (status === 403) {\n if (message403error.length) {\n setFetchError(message403error);\n }\n callback403();\n } else {\n setFetchError(`Wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n }\n setLoadingOn(false);\n }\n\n xhrFetch = fetchApi(\n url, 'GET', {}, fetchData,\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(getDataFromServer, [requestId]);\n\n useEffect(() => {\n if (updatedData === null) { return }\n setData(prevData =>\n ({...prevData, ...{uzytkownik: {...prevData.uzytkownik, ...updatedData}}})\n );\n }, [updatedData])\n\n return {data, loadingOn, fetchError}\n};\n\nconst sortUrlParams = (param1, param2) => {\n return param1[0].localeCompare(param2[0], 'pl')\n};\n\nexport const usePaginatedFetchApi = (\n pageNumber, selectedSort, filters, getFiltersFetchData, paginatedBy,\n objectsAttrName, baseApiUrl, serializationUrlDictToPolish,\n serializerConfig={}) => {\n let history = useHistory();\n const [permissionsCheckingOn, setPermissionsCheckingOn] = useState(true);\n const [notPermitted, setNotPermitted] = useState(false);\n const [loadingOn, setLoadingOn] = useState(true);\n const [fetchError, setFetchError] = useState(null);\n const [data, setData] = useState(null);\n\n function getDataFromServer() {\n if (selectedSort === null) { return }\n setLoadingOn(true);\n setFetchError(null);\n let data = {\n page: pageNumber,\n sort: selectedSort.value,\n ...(filters !== null ? getFiltersFetchData(filters) : {}),\n };\n\n let urlParams = '?';\n const serializedUrlData = serializeUrlParams(\n data, serializationUrlDictToPolish);\n for (let [index, [k, v]] of Object.entries(\n serializedUrlData).sort(sortUrlParams).entries()) {\n urlParams += `${index > 0 ? '&' : ''}${k}=${v}`;\n }\n\n // it looks odd, but it's necessary, because some filters have to be set\n // as all and backend doesn't like \"all\"\n const dataWithoutAll = {};\n for (let [name, value] of Object.entries(data)) {\n if (value !== 'all') {\n dataWithoutAll[name] = value;\n }\n }\n\n const urlWithParams = `${window.location.pathname}${urlParams}`;\n if (window.location.pathname + window.location.search !== urlWithParams) {\n history.replace(urlWithParams);\n }\n\n function checkHasPrev() {\n return pageNumber > 1\n }\n\n function checkHasNext(total) {\n return Math.ceil(total / paginatedBy) > pageNumber\n }\n\n let xhrFetch = null;\n\n function callbackSuccess(data_) {\n xhrFetch = null;\n const { total } = data_.meta;\n setData({\n objects: getSerializedObject(\n data_, {mapToCamelCaseName: true, ...serializerConfig})[objectsAttrName] || [],\n total: total,\n hasPrev: checkHasPrev(),\n hasNext: checkHasNext(total),\n });\n if (permissionsCheckingOn) {\n setPermissionsCheckingOn(false);\n }\n setLoadingOn(false);\n }\n\n function callbackError(data_) {\n xhrFetch = null;\n setFetchError(data_.message);\n if (permissionsCheckingOn) {\n setPermissionsCheckingOn(false);\n }\n setLoadingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n if (status === 403) {\n setNotPermitted(true);\n if (permissionsCheckingOn) {\n setPermissionsCheckingOn(false);\n }\n setLoadingOn(false);\n return\n }\n setFetchError(`Wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n setLoadingOn(false);\n }\n\n xhrFetch = fetchApi(\n baseApiUrl, 'GET', {}, {...dataWithoutAll, limit: paginatedBy},\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(getDataFromServer, [pageNumber, selectedSort, filters])\n\n function updateData(objectId, data_) {\n setData(prevData => ({\n objects: prevData.objects.map(obj => {\n if (obj.id === objectId) {\n obj = {...obj, ...data_};\n }\n return obj\n }),\n }));\n }\n\n return {\n data, fetchError, loadingOn, notPermitted, permissionsCheckingOn,\n updateData\n }\n}\n\nexport const usePutFetchApi = ({\n callbackPutSuccess,\n fetchData = {},\n loadingOn,\n message403error = null,\n setLoadingOn,\n setFetchError,\n url\n}) => {\n\n function save() {\n if (!loadingOn) { return }\n setLoadingOn(true);\n setFetchError(null);\n\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n callbackPutSuccess(data);\n setLoadingOn(false);\n }\n\n function callbackError(data) {\n xhrFetch = null;\n setFetchError(data.message);\n setLoadingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n setFetchError(\n status === 403 && message403error\n ? message403error\n : `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n setLoadingOn(false);\n }\n\n xhrFetch = fetchApi(\n url, 'PUT', {}, fetchData,\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(save, [loadingOn]);\n\n return {}\n};\n\n\nexport const usePutFormFetchApi = (config) => {\n\n const url = config.url || '';\n const fetchData = config.fetchData || {};\n const callbackPutSuccess = config.callbackSuccess || (() => {});\n const callbackObjectExists = config.callbackObjectExists || null;\n const loadingOn = config.loadingOn || false;\n const setLoadingOn = config.setLoadingOn || (() => {});\n const method = config.method || 'PUT';\n const defaultSaveBtnText = config.defaultSaveBtnText || 'Zapisz zmiany';\n const doNotTranslateNames = config.doNotTranslateNames || false;\n const message403error = config.message403error || '';\n const callback403 = config.callback403 || (() => {});\n\n const [fetchError, setFetchError] = useState(null);\n const [errors, setErrors] = useState({});\n const [saveBtnText, setSaveBtnText] = useState(defaultSaveBtnText);\n\n function save() {\n if (!loadingOn) { return }\n setLoadingOn(true);\n setFetchError(null);\n setErrors({});\n setSaveBtnText('Trwa zapisywanie zmian...');\n\n let xhrFetch = null;\n let saveMsgTimeout = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n setSaveBtnText('Zapisano');\n saveMsgTimeout = setTimeout(() => {\n setSaveBtnText(defaultSaveBtnText);\n }, 5000);\n setLoadingOn(false);\n callbackPutSuccess(data);\n }\n\n function callbackError(data) {\n xhrFetch = null;\n if (data.message === 'permissions.store.set_exists' &&\n callbackObjectExists !== null) {\n callbackObjectExists();\n } else {\n setFetchError(translateErrorMessage(data.message));\n }\n setSaveBtnText(defaultSaveBtnText);\n setLoadingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n if (method === 'PUT' && status === 404 && callbackObjectExists !== null) {\n callbackObjectExists();\n } else {\n let message;\n if (status === 403) {\n message = message403error;\n callback403();\n }\n setFetchError(\n message || `Wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n }\n setSaveBtnText(defaultSaveBtnText);\n setLoadingOn(false);\n }\n\n function callbackShowErrors(errors) {\n xhrFetch = null;\n setErrors(getSerializedErrorsFromServer(errors, {doNotTranslateNames}));\n setSaveBtnText(defaultSaveBtnText);\n setLoadingOn(false);\n }\n\n xhrFetch = fetchApi(\n url, method, {}, fetchData,\n callbackSuccess, callbackError, callbackIncorrectStatus,\n callbackShowErrors\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n if (saveMsgTimeout !== null) {\n // TODO: it cleans timeout every time function ends, not as is expected\n clearTimeout(saveMsgTimeout);\n setSaveBtnText(defaultSaveBtnText);\n }\n }\n }\n useEffect(save, [loadingOn]);\n\n return {fetchError, errors, saveBtnText}\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { API_URLS } from '../../../urls/api';\nimport { URLS } from '../../../urls/frontend';\nimport { ImplementationLevelManagement, Text } from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = (props) => (\n <>\n Nie można usunąć działania, ponieważ jest ono powiązane z innym obiektem.\n Upewnij się, że działanie nie ma instytucji, nie istnieją projekty lub nabory oparte o to działanie oraz nie są przyznane uprawnienia do tego działania, a następnie spróbuj ponownie.\n \n);\n\n\nexport const Activities = (props) => {\n const { priorityId } = useParams();\n\n function getItemLinkUrl(item) {\n return URLS.managementInstitutionsForActivity.getUrl(item.id)\n }\n\n function getParentFormLabel(programmeCode, priorityCode, activityCode) {\n return `${programmeCode}.${priorityCode}.`\n }\n\n return (\n \n )\n};\n","import React, { useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\n\nimport { UserContext } from '../../../context/user-context';\nimport { ButtonStyled, MoreOptionsButton, Text } from '../../common';\n\n\nexport const ImplementationLevelTableRow = ({\n getItemLinkFunction = (() => '/'),\n item,\n perspectiveData = {},\n withLink = false,\n onDelete,\n onEdit\n}) => {\n const { permissions } = useContext(UserContext);\n return (\n \n \n {item.code}\n \n \n {withLink\n ? (\n \n {item.name}\n \n )\n : {item.name}\n }\n \n {permissions.editingDictionaries && (\n \n \n
      \n
    • \n onEdit(item)}>\n Zmień nazwę\n \n
    • \n
    • \n onDelete(item)}>\n Usuń\n \n
    • \n
    \n \n
    \n )}\n\n
    \n )\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { API_URLS } from '../../../urls/api';\nimport { ImplementationLevelManagement, Text } from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = (props) => (\n <>\n Nie można usunąć instytucji, ponieważ jest ona powiązana z innym obiektem.\n Upewnij się, że nie istnieją projekty lub nabory oparte o tę instytucję oraz nie są przyznane uprawnienia do tej instytucji, a następnie spróbuj ponownie.\n \n);\n\n\nexport const Institutions = (props) => {\n const { activityId } = useParams();\n\n function getParentFormLabel(programmeCode, priorityCode, activityCode) {\n return `${programmeCode}.${priorityCode}.${activityCode}-`\n }\n\n return (\n \n )\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\n\nimport { URLS } from '../../../urls/frontend';\n\n\nexport const PerspectivesTableRow = ({item}) => {\n return (\n \n \n \n {item.name}\n \n \n \n )\n};\n","import React from 'react';\n\nimport { API_URLS } from '../../../urls/api';\nimport { ImplementationLevelManagement } from '../../common';\nimport { PerspectivesTableRow } from './PerspectivesTableRow';\n\n\nexport const Perspectives = (props) => {\n return (\n \n )\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport {\n getActivityUrlByPerspectiveData,\n hasSubactivities\n} from '../../../helpers';\nimport { URLS } from '../../../urls/frontend';\nimport { API_URLS } from '../../../urls/api';\nimport {ImplementationLevelManagement, Text} from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = ({perspectiveData}) => {\n const hasSubactivities_ = hasSubactivities(perspectiveData);\n return (\n <>\n \n Nie można usunąć osi priorytetowej, ponieważ jest ona\n powiązana z innym obiektem.\n \n \n Upewnij się, że oś priorytetowa nie ma działań\n {hasSubactivities_ && ' i poddziałań'}, nie istnieją projekty\n lub nabory oparte o tę oś priorytetową oraz nie są przyznane\n uprawnienia do tej osi priorytetowej, a następnie spróbuj ponownie.\n \n \n )\n};\n\n\nexport const Priorities = (props) => {\n const { programmeId } = useParams();\n\n function getItemLinkUrl(item, perspectiveData) {\n return URLS[getActivityUrlByPerspectiveData(perspectiveData)]\n .getUrl(item.id)\n }\n\n function getParentFormLabel(programmeCode, priorityCode, activityCode) {\n return `${programmeCode}.`\n }\n\n return (\n \n )\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { API_URLS } from '../../../urls/api';\nimport { URLS } from '../../../urls/frontend';\nimport { sortProgrammes } from '../../../helpers';\nimport { ImplementationLevelManagement, Text } from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = (props) => (\n <>\n Nie można usunąć programu operacyjnego, ponieważ jest on powiązany z innym obiektem.\n Upewnij się, że program operacyjny nie ma osi priorytetowych, nie istnieją projekty lub nabory oparte o ten program operacyjny oraz nie są przyznane uprawnienia do tego programu operacyjnego, a następnie spróbuj ponownie.\n \n);\n\n\nexport const Programmes = (props) => {\n const { perspectiveId } = useParams();\n\n function getItemLinkUrl(item) {\n return URLS.managementPrioritiesForProgramme.getUrl(item.id)\n }\n\n return (\n \n )\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { API_URLS } from '../../../urls/api';\nimport { ImplementationLevelManagement, Text } from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = (props) => (\n <>\n Nie można usunąć regionu, ponieważ jest on powiązany z innym obiektem.\n Upewnij się, że nie istnieją projekty lub nabory oparte o ten region oraz nie są przyznane uprawnienia do tego regionu, a następnie spróbuj ponownie.\n \n);\n\n\nexport const Regions = (props) => {\n const { activityId } = useParams();\n\n function getParentFormLabel(programmeCode, priorityCode, activityCode) {\n return `${programmeCode}.${priorityCode}.${activityCode}.`\n }\n\n return (\n \n )\n};\n","import React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { API_URLS } from '../../../urls/api';\nimport { URLS } from '../../../urls/frontend';\nimport { ImplementationLevelManagement, Text } from '../../common';\n\n\nconst RelatedObjectsExistInfoComponent = (props) => (\n <>\n Nie można usunąć działania i poddziałania, ponieważ jest ono powiązane z innym obiektem.\n Upewnij się, że działanie i poddziałanie nie ma regionów, nie istnieją projekty lub nabory oparte o to działanie i poddziałanie oraz nie są przyznane uprawnienia do tego działania i poddziałania, a następnie spróbuj ponownie.\n \n);\n\n\nexport const Subactivities = (props) => {\n const { priorityId } = useParams();\n\n function getItemLinkUrl(item) {\n return URLS.managementRegionsForSubactivity.getUrl(item.id)\n }\n\n function getParentFormLabel(programmeCode, priorityCode, activityCode) {\n return `${programmeCode}.${priorityCode}.`\n }\n\n return (\n \n )\n};\n","import React, { useContext, useMemo, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport {\n getActivityChildUrlByPerspectiveData,\n getActivityUrlByPerspectiveData,\n serializeAuditData,\n sortImplementationLevelByNumberCode\n} from '../../../helpers';\nimport { useOneTimeFetchApi } from '../../../hooks';\nimport { URLS } from '../../../urls/frontend';\nimport {\n AuditData,\n Breadcrumps,\n ButtonStyled,\n Container,\n GridCustom,\n Loader,\n PaginatedListHeader,\n TableCustom,\n Text\n} from '../../common';\nimport {\n ImplementationLevelTableRow\n} from '../../layoutElements/implementationLevelsManagement';\nimport { DeleteImplementationLevel } from './DeleteImplementationLevel';\nimport { ImplementationLevelForm } from './ImplementationLevelForm';\n\n\nexport const ImplementationLevelManagement = ({\n addApiUrlName,\n addItemButtonLabel,\n addItemButtonVisible = true,\n additionalSaveData = {},\n apiUrl,\n auditDataBoxTitle,\n auditDataObjectName,\n codeMaxLength,\n editApiUrlName,\n getParentFormLabel = null,\n listObjectName,\n RelatedObjectsExistInfoComponent,\n RowComponent = ImplementationLevelTableRow,\n rowComponentProps = {},\n showAuditData = false,\n sortItemsFunction = sortImplementationLevelByNumberCode,\n tableHeaderList,\n tableName,\n titleFormLabel\n}) => {\n const [formOn, setFormOn] = useState(false);\n const [editedItem, setEditedItem] = useState(null);\n const [requestId, setRequestId] = useState(1);\n const [deletedItem, setDeletedItem] = useState(null);\n\n const { permissions, removePermission } = useContext(UserContext);\n\n const {data, loadingOn, fetchError} = useOneTimeFetchApi({\n url: apiUrl,\n message403error: 'Nie masz uprawnień do przeglądania elementów słownika poziomów wdrożenia.',\n callback403: () => removePermission('previewDictionaries'),\n requestId,\n });\n\n const items = useMemo(\n () => {\n if (!data) { return [] }\n\n let items_ = [];\n if (data[listObjectName]) {\n items_ = data[listObjectName] || [];\n }\n if (sortItemsFunction) {\n items_.sort(sortItemsFunction);\n }\n\n return items_\n }, [data] // eslint-disable-line react-hooks/exhaustive-deps\n );\n\n function handleCancelFormOn() {\n setFormOn(false);\n setEditedItem(null);\n }\n\n function handleSetEditedItem(item) {\n setDeletedItem(null);\n setEditedItem(item);\n setFormOn(true);\n }\n\n function handleUpdateRequestId() {\n setRequestId(prevValue => prevValue + 1);\n }\n\n function handleSetDeletedItem(item) {\n setFormOn(false);\n setEditedItem(null);\n setDeletedItem(item);\n }\n\n function handleCancelDeleting() {\n setDeletedItem(null);\n }\n\n let parentFormLabel = '';\n let perspectiveId, programmeId, priorityId, activityId;\n if (data) {\n perspectiveId = (data.perspective || {}).id;\n programmeId = (data.programme || {}).id;\n priorityId = (data.priority || {}).id;\n activityId = (data.activity || {}).id;\n if (getParentFormLabel) {\n parentFormLabel = getParentFormLabel(\n (data.programme || {}).code,\n (data.priority || {}).code,\n (data.activity || {}).code\n );\n }\n }\n\n const { editingDictionaries: editingDictionariesPermission } = permissions;\n if (!tableHeaderList) {\n tableHeaderList = ['Kod', 'Nazwa'];\n if (editingDictionariesPermission) {\n tableHeaderList.push('');\n }\n }\n\n return (\n <>\n \n
  • \n Administracja słownikiem poziomów wdrażania\n
  • \n
    \n {loadingOn\n ? \n : !!fetchError\n ? {fetchError}\n : (\n \n
    \n {data.perspective && (\n \n {data.perspective.name}\n \n )}\n {[\n ['programme', programmeId ? URLS.managementPrioritiesForProgramme.getUrl(programmeId) : null],\n ['priority', priorityId ? URLS[getActivityUrlByPerspectiveData(data.perspective)].getUrl(priorityId) : null],\n ['activity', activityId ? URLS[getActivityChildUrlByPerspectiveData(data.perspective)].getUrl(activityId) : null]\n ].map(([levelName, levelUrl]) => {\n if (levelUrl && data[levelName]) {\n const levelData = data[levelName] || {};\n return (\n

    \n {levelData.code}\n \n {levelData.name}\n \n

    \n )\n }\n return null\n })}\n
    \n \n \n {addItemButtonVisible && editingDictionariesPermission && (\n setFormOn(true)}>\n {addItemButtonLabel || 'Dodaj'}\n \n )}\n \n {items.length > 0 && (\n \n {items.map(item => (\n \n ))}\n \n )}\n {formOn && (\n \n )}\n {deletedItem !== null && (\n \n )}\n {showAuditData && auditDataObjectName &&\n \n }\n
    \n )\n }\n \n )\n};\n","import React from 'react';\n\nimport { DialogCustom, FiltersButton, GridCustom, SortersSelect } from '../../common';\n\n\nexport const SortersFiltersRow = ({\n filters, filtersAreOn, FiltersComponent, onCloseFilters, onUpdateFilters, ...props}) => {\n return (\n <>\n \n \n \n \n {filtersAreOn && (\n \n \n \n )}\n \n )\n}\n","import React from 'react';\n\nimport { ButtonStyled } from './ButtonStyled';\nimport { GridCustom } from './GridCustom';\n\n\nconst Pagination = (props) => {\n const {\n currentPage,\n disabled,\n handleChangePage,\n hasNext,\n hasPrev\n } = props;\n\n return (\n \n handleChangePage(false)} lite>Poprzednia strona\n {currentPage}\n handleChangePage(true)} lite>Następna strona\n \n )\n}\n\nexport { Pagination };\n","import React from 'react';\nimport { Text, View, StyleSheet } from '@react-pdf/renderer';\n\nimport { datetimeToString } from '../../helpers';\n\n\nconst PdfHeader = (props) => {\n\n const {\n flexContainerStyle,\n metaSectionStyle,\n textInfoStyle,\n } = styles;\n\n return (\n \n \n Wygenerowano: {datetimeToString(new Date())}\n (\n `Strona ${pageNumber} / ${totalPages}`\n )} fixed style={textInfoStyle} />\n \n Wygenerowano za pośrednictwem serwisu Baza Konkurencyjności.\n {props.title && props.title.length > 0 && {props.title}}\n \n );\n}\n\nconst styles = StyleSheet.create({\n metaSectionStyle: {\n paddingHorizontal: 20,\n paddingVertical: 5,\n paddingBottom: 0,\n marginHorizontal: -20,\n marginTop: -10,\n marginBottom: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#666A6D',\n borderBottomStyle: 'dashed',\n },\n flexContainerStyle: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n textInfoStyle: {\n marginBottom: 5,\n fontSize: 10,\n fontStyle: 'italic',\n color: '#666A6D'\n },\n});\n\n\nexport { PdfHeader };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { Typography } from '@rmwc/typography';\nimport '@material/list/dist/mdc.list.css';\n\n\nconst SkipLinks = (props) => {\n return (\n \n )\n}\n\n\nexport { SkipLinks };\n","import React from 'react';\nimport { setFocusOnElement } from '../../helpers';\nimport { NextStep } from '.';\n\n\nconst Steps = (props) => {\n const className = \"next-step-container\" + (!props.hasPrev ? ' next-step-container--one-item' : '');\n return (\n
    \n {props.hasPrev && {\n setFocusOnElement(props.elementToFocusRef)\n props.onPrevClick()\n }}\n stepTitle={props.prevLabel}\n prevStep\n />}\n {props.hasNext && {\n setFocusOnElement(props.elementToFocusRef)\n props.onNextClick()\n }}\n stepTitle={props.nextLabel}\n />}\n
    \n );\n}\n\nexport { Steps };\n","// USAGE:\n// This component renders \"outer\" part of the table: table layout, header and body wrapper.\n// It doesnt render content.\n// To fill in the table, please provide imports:\n// import { TableCustom } from '/common';\n// import { DataTableCell, DataTableRow } from '@rmwc/data-table';\n// and fill in the as needed.\n// Expample:\n// \n// \n// Col1 content\n// Col2 content\n// Col3 content\n// \n// \n\nimport React from 'react';\nimport {\n DataTable,\n DataTableBody,\n DataTableContent,\n DataTableHead,\n DataTableHeadCell,\n DataTableRow,\n} from '@rmwc/data-table';\nimport { Typography } from '@rmwc/typography';\n\nconst TableCustom = (props) => {\n const {\n children,\n tableHeaderList,\n ...otherProps\n } = props;\n\n return (\n \n \n \n \n {tableHeaderList.map(tableHeader => \n \n \n {tableHeader}\n \n \n )}\n \n \n \n {children}\n \n \n \n );\n}\n\nexport { TableCustom };\n","// https://jpuri.github.io/react-draft-wysiwyg/\n\nimport React, { Component } from 'react';\nimport { Editor } from 'react-draft-wysiwyg';\nimport 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css';\n\nimport { countWysiwygChars } from '../../helpers';\nimport { GridCustom } from './GridCustom';\nimport { Text } from './Text';\n\n\nclass WysiwygEditor extends Component {\n\n constructor(props) {\n super(props);\n this.state = {counter: countWysiwygChars(props.initialContentState)};\n\n this.handleContentStateChange = this.handleContentStateChange.bind(this);\n }\n\n // handlers\n\n handleContentStateChange(contentState) {\n this.props.onContentStateChange(contentState);\n this.setState({counter: countWysiwygChars(contentState)});\n }\n\n // rendering\n\n render() {\n\n const props_ = Object.assign({}, this.props, {\n onContentStateChange: this.handleContentStateChange\n });\n\n return (\n
    \n \n {this.state.counter}{!this.props.maxLength ? '' : ' / ' + this.props.maxLength}\n
    \n );\n }\n}\n\nexport { WysiwygEditor };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { Message } from '../../common';\n\n\nconst BladLogowania = (props) => {\n return (\n \n Przejdź na stronę główną.\n \n )\n}\n\n\nexport { BladLogowania };\n","import React, { Component } from 'react';\n\nimport { USER_STATUS_CHOICES } from '../../../const';\nimport {\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Select,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\nclass FiltryUzytkownikow extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n filters: props.filters,\n };\n\n this.handleApplyFilters = this.handleApplyFilters.bind(this);\n }\n\n //handlers\n\n handleChangeFilter(name, value) {\n this.setState(prevState => {\n return {filters: Object.assign({}, prevState.filters, {[name]: value})}\n });\n }\n\n handleApplyFilters() {\n this.props.updateFilters(this.state.filters);\n }\n\n // rendering\n\n render() {\n const filters = this.state.filters;\n return (\n <>\n
    \n \n \n this.handleChangeFilter('identifier', ev.target.value)}\n onClear={(ev) => this.handleChangeFilter('identifier', '')} />\n \n \n this.handleChangeFilter('email', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('email', '')}\n id=\"filters_email_id\"\n />\n \n \n \n \n this.handleChangeFilter('forename', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('forename', '')}\n id=\"filters_name_id\"\n />\n \n \n this.handleChangeFilter('surname', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('surname', '')}\n id=\"filters_surname_id\"\n />\n \n \n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n options={USER_STATUS_CHOICES.map(s => ({value: s[0], label: s[1]}))}\n value={{value: filters.status.value || USER_STATUS_CHOICES[0][0], label: filters.status.label || USER_STATUS_CHOICES[0][1]}}\n onChange={(selectedOption) => this.handleChangeFilter('status', selectedOption)}\n styles={customSelectStyles}\n />\n \n \n
    \n \n Anuluj\n Zastosuj kryteria\n \n \n )\n }\n}\n\n\nexport { FiltryUzytkownikow };\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedErrorsFromServer,\n getSerializedObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled, Container, DialogCustom, FieldWithLabel, GridCustom,\n NotFoundPage, NotPermittedPage, Pagination, Select, Text\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\nclass BaseComponent extends Component {\n message403 = null;\n\n constructor(props) {\n super(props);\n\n this.preState(props);\n this.formPreState(props);\n this.state = Object.assign(\n {\n initializingOn: true,\n pageNotFound: false,\n pageNotPermitted: false,\n fetchError: '',\n },\n this.getAdditionalState(props),\n this.getFormAdditionalState(props)\n );\n this.postState(props);\n this.formPostState(props);\n\n this.xhrFetch = null;\n\n this.handleFetchSuccess = this.handleFetchSuccess.bind(this);\n this.handleFetchError = this.handleFetchError.bind(this);\n this.handleFetchIncorrectStatus = this.handleFetchIncorrectStatus.bind(this);\n\n this.setAdditionalHandlers();\n }\n\n // basic functions\n\n componentDidMount() {\n window.scrollTo(0, 0);\n\n this.fetchInitialData();\n }\n\n componentWillUnmount() {\n // abort api request if exists\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n\n // clear timeouts if exist\n if (this.saveMsgTimeout !== null) {\n clearTimeout(this.saveMsgTimeout);\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n }\n\n handleFetchError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: this.getFetchError(data.message || ''),\n });\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else if (status === 403) {\n this.setState(\n {\n initializingOn: false,\n pageNotPermitted: true,\n },\n this.callback403\n );\n } else {\n this.setState({\n initializingOn: false,\n fetchError: this.getFetchIncorrectStatusError(status),\n });\n }\n }\n\n // helpers\n\n preState(props) {\n return\n }\n\n formPreState(props) {\n return\n }\n\n getAdditionalState(props) {\n return {}\n }\n\n getFormAdditionalState(props) {\n return {}\n }\n\n postState(props) {\n this.saveMsgTimeout = null;\n }\n\n formPostState(props) {\n return\n }\n\n setAdditionalHandlers() {\n return\n }\n\n fetchInitialData() {\n // get object(s) from server\n this.xhrFetch = fetchApi(\n this.getFetchUrl(),\n this.getFetchMethod(),\n {},\n this.getFetchData(),\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n\n getFetchUrl() {\n throw new Error('Not implemented fetch url!')\n }\n\n getFetchMethod() {\n return 'GET'\n }\n\n getFetchData() {\n return {}\n }\n\n getFetchError(message) {\n return translateErrorMessage(message)\n }\n\n getFetchIncorrectStatusError(status) {\n return `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => { return }\n\n // rendering\n\n render() {\n if (this.state.pageNotFound) { return }\n if (this.state.pageNotPermitted) {\n return \n }\n\n let content = null;\n if (this.state.initializingOn) {\n content = Trwa inicjalizacja danych...;\n } else if (this.state.fetchError.length) {\n content = this.renderFetchError();\n } else {\n content = this.renderElements();\n }\n\n return (\n <>\n {this.renderHeader()}\n {this.renderBeforeContent()}\n {content}\n \n )\n }\n\n renderFetchError() {\n return {this.state.fetchError}\n }\n\n renderHeader() {\n return null\n }\n\n renderBeforeContent() {\n return null\n }\n\n renderElements() {\n return this.renderContent()\n }\n\n renderContent() {\n return null\n }\n}\n\n\nclass FormBaseComponent extends BaseComponent {\n\n // basic functions\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n if (this.xhrFetchSave !== null) {\n this.xhrFetchSave.abort();\n }\n }\n\n // handlers\n\n handleSave = () => {\n this.setState(\n {savingOn: true, errors: {}, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n this.xhrFetchSave = fetchApi(\n this.getSaveUrl(),\n this.getSaveMethod(),\n {},\n this.getDataForSaving(),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n this.handleShowSaveErrors,\n );\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetchSave = null;\n }\n\n handleFetchSaveError = (data) => {\n this.xhrFetchSave = null;\n this.setState({\n fetchSaveError: this.getFetchSaveError(data.message),\n saveBtnText: this.saveBtnDefaultText,\n savingOn: false,\n });\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrFetchSave = null;\n this.setState({\n fetchSaveError: this.getFetchSaveIncorrectStatusError(status),\n saveBtnText: this.saveBtnDefaultText,\n savingOn: false,\n });\n }\n\n handleShowSaveErrors = (errors) => {\n this.xhrFetchSave = null;\n this.setState({\n errors: getSerializedErrorsFromServer(errors),\n saveBtnText: this.saveBtnDefaultText,\n savingOn: false,\n });\n }\n\n // helpers\n\n formPreState(props) {\n this.saveBtnDefaultText = 'Zapisz zmiany';\n }\n\n getFormAdditionalState(props) {\n return {\n savingOn: false,\n errors: {},\n fetchSaveError: '',\n saveBtnText: this.saveBtnDefaultText,\n }\n }\n\n formPostState(props) {\n this.xhrFetchSave = null;\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this)\n }\n\n getSaveUrl() {\n throw new Error('Not implemented save fetch url!')\n }\n\n getSaveMethod() {\n return 'POST'\n }\n\n getDataForSaving() {\n return {}\n }\n\n getFetchSaveError(message) {\n return translateErrorMessage(message)\n }\n\n getFetchSaveIncorrectStatusError(status) {\n return `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n}\n\n\nclass PaginatedBaseComponent extends BaseComponent {\n withUrlUpdating = false;\n mapToCamelCaseNameFromServer = false;\n\n componentDidUpdate(prevProps, prevState) {\n // it manages every url change, including back button\n // don't init again from handlers\n const prevParams = prevProps.location.search;\n const params = this.props.location.search;\n if (prevParams !== params) {\n this.setState(\n {initializingOn: true},\n this.fetchInitialData\n );\n }\n }\n\n // handlers\n\n handleFetchSuccess(data){\n super.handleFetchSuccess(data);\n\n const total = data.meta.total;\n const config = this.mapToCamelCaseNameFromServer ? {mapToCamelCaseName: true} : {}\n this.setState(prevState => ({\n initializingOn: false,\n objects: getSerializedObject(data, config)[this.objectsName] || [],\n total: total,\n hasPrev: this.checkHasPrev(),\n hasNext: this.checkHasNext(total, prevState.pageNumber),\n }));\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 403) {\n this.setState(\n {\n initializingOn: false,\n pageNotPermitted: true,\n },\n this.callback403\n );\n return\n }\n this.setState({\n initializingOn: false,\n fetchError: this.getFetchIncorrectStatusError(status),\n });\n }\n\n handleChangePage = (next=true) => {\n this.setState(\n prevState => ({\n pageNumber: next ? prevState.pageNumber + 1 : Math.max(prevState.pageNumber -1, 1)}),\n this.reinitializeData\n );\n }\n\n handleChangeSort = (selectedOption) => {\n this.setState(\n {selectedSort: selectedOption},\n this.reinitializeData\n )\n }\n\n handleApplyFilters = (filters) => {\n let data = {\n filters,\n filtersAreOn: false,\n fetchError: '',\n objects: [],\n pageNumber: 1, // reset pageNumber\n };\n if (!this.withUrlUpdating) {\n Object.assign(data, {\n initializingOn: true,\n });\n }\n this.setState(data, this.reinitializeData);\n }\n\n handleCloseFilters = () => {\n this.setState({filtersAreOn: false});\n }\n\n // helpers\n\n preState(props) {\n this.dialogComponent = null;\n\n // redefine these values in your class if needed\n this.objectsName = 'objects';\n this.paginateBy = 50;\n this.sortingValues = [];\n this.sortingLabel = 'Sortuj wyniki wyszukiwania';\n this.filteringLabel = 'Opcje zaawansowane';\n this.filtersComponentClass = null;\n\n this.getFiltersCount = (filters) => { return 0 };\n }\n\n getAdditionalState(props) {\n const params = new URLSearchParams(props.location.search);\n let pageNumber = parseInt(params.get('strona'));\n if (!(pageNumber > 0)) {\n pageNumber = 1;\n }\n\n return {\n pageNumber: pageNumber,\n total: 0,\n hasNext: false,\n hasPrev: false,\n selectedSort: {value: 0, label: ''},\n filtersAreOn: false,\n filters: {},\n objects: [],\n }\n }\n\n reinitializeData = () => {\n if (this.withUrlUpdating) {\n // only update url, it will fetch after url changing\n this.updateUrl();\n } else {\n this.fetchInitialData();\n }\n }\n \n updateUrl() {\n // remember to have an access to history\n this.props.history.push(\n `${window.location.pathname}?strona=${this.state.pageNumber}${this.getUrlParams()}`);\n }\n\n getUrlParams() {\n // define url params as string; page number is already applied\n return ''\n }\n\n getFetchData() {\n return {\n page: this.state.pageNumber,\n limit: this.paginateBy,\n sort: this.state.selectedSort.value,\n };\n }\n\n checkHasNext(total, pageNumber) {\n return Math.ceil(total / this.paginateBy) > (pageNumber || this.state.pageNumber)\n }\n\n checkHasPrev() {\n return this.state.pageNumber > 1\n }\n\n // rendering\n\n renderBeforeContent() {\n return (\n <>\n \n {this.renderSorters()}\n {this.renderFiltersButton()}\n \n {this.state.filtersAreOn && this.renderFilters()}\n \n )\n }\n\n renderElements() {\n return (\n <>\n \n {this.renderContent()}\n \n {this.renderAdditionalAfterBaseContent()}\n \n )\n }\n\n renderSorters() {\n return (\n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"selectClassName\"\n options={this.sortingValues.map(value => ({value: value[0], label: value[1]}))}\n value={this.state.selectedSort}\n onChange={this.handleChangeSort}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n )\n }\n\n renderFiltersButton() {\n return (\n {\n this.setState({filtersAreOn: true});\n e.currentTarget.blur();\n }}>\n {this.filteringLabel} \n Liczba aktywnych filtrów {this.renderFiltersCount()}\n \n \n )\n }\n\n renderFiltersCount() {\n return this.getFiltersCount(this.state.filters)\n }\n\n renderContent() {\n if (!this.state.objects.length) {\n return this.renderEmptyObjects()\n }\n return (\n <>\n {this.renderList()}\n \n \n )\n }\n\n renderEmptyObjects() { return null }\n\n renderList() { return null }\n\n renderFilters() {\n return (\n this.dialogComponent = c}\n onClose={this.handleCloseFilters}\n >\n {this.renderFiltersComponent()}\n \n )\n }\n\n renderFiltersComponent() {\n return \n }\n\n renderAdditionalAfterBaseContent() {\n return null\n }\n}\n\n\nexport { BaseComponent, FormBaseComponent, PaginatedBaseComponent };\n","import React from 'react';\nimport { Typography } from '@rmwc/typography';\n\nimport { FieldWithLabel, GridCustom, Text } from '../../common';\n\n\nconst DanePodmiotu = (props) => {\n const danePodmiotu = props.danePodmiotu;\n const adres = danePodmiotu.adres;\n return (\n <>\n {danePodmiotu.nazwa}\n \n \n {danePodmiotu.rodzajAdresu.label}\n \n \n {danePodmiotu.numerIdentyfikacyjny}\n \n {danePodmiotu.rodzajAdresu.value === 'abroad' && (\n \n {adres.kraj}\n \n )}\n \n {adres.kodPocztowy} {adres.miejscowosc}\n \n \n {adres.ulica || ''} {adres.numerDomu || ''}\n \n \n \n );\n}\n\n\nexport { DanePodmiotu };\n","import React, { Component } from 'react';\n\nimport {\n RODZAJ_ADRESU_CHOICES,\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES\n} from '../../../const';\nimport { FieldWithLabel, GridCustom, Select, Text, TextFieldCustom } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { FormKraj, FormMiejscowosc } from '../common';\n\n\nclass FormDanePodmiotuFields extends Component {\n\n // handlers\n handlePasteNumerIdentyfikacyjny = (ev, maxLength) => {\n // stop data actually being pasted into input\n ev.stopPropagation();\n ev.preventDefault();\n\n // set pasted data via clipboard API\n const clipboardData = ev.clipboardData || window.clipboardData;\n const pastedData = clipboardData.getData('Text');\n this.props.changeNumerIdentyfikacyjny(pastedData, true, maxLength);\n }\n\n // rendering\n\n render() {\n const {changeAttribute, data, errors, formLocked } = this.props;\n const adres = data.adres;\n const poland = data.rodzajAdresu.value === 'poland';\n\n const isNazwaInvalid = (errors.nazwa || []).length > 0;\n const adresErrors = errors.adres || {};\n const isKodPocztowyInvalid = (adresErrors.kodPocztowy || []).length > 0;\n const isUlicaInvalid = (adresErrors.ulica || []).length > 0;\n const isNumerDomuInvalid = (adresErrors.numerDomu || []).length > 0;\n const isFormInvalid = isNazwaInvalid || adresErrors.length > 0 || isKodPocztowyInvalid || isUlicaInvalid || isNumerDomuInvalid;\n\n return (\n <>\n \n \n changeAttribute('nazwa', ev.target.value)}\n onClear={(ev) => changeAttribute('nazwa', '')} />\n {isNazwaInvalid &&
      {errors.nazwa.map((e, i) => {e})}
    }\n
    \n
    \n \n \n {return 'Wybierz opcję z listy rozwijanej'}}\n className=\"select-custom\"\n isDisabled={formLocked}\n options={RODZAJ_ADRESU_CHOICES}\n value={data.rodzajAdresu}\n onChange={selectedOption => this.props.changeRodzajAdresu(selectedOption)}\n styles={customSelectStyles} />\n \n {this.renderIdentyfikator()}\n \n {this.renderKraj()}\n {this.renderMiejscowosc()}\n \n \n changeAttribute('kodPocztowy', ev.target.value, true)}\n onClear={(ev) => changeAttribute('kodPocztowy', '', true)} />\n {isKodPocztowyInvalid &&
      {adresErrors.kodPocztowy.map((e, i) => {e})}
    }\n
    \n \n changeAttribute('ulica', ev.target.value, true)}\n onClear={(ev) => changeAttribute('ulica', '', true)} />\n {isUlicaInvalid &&
      {adresErrors.ulica.map((e, i) => {e})}
    }\n
    \n \n changeAttribute('numerDomu', ev.target.value, true)}\n onClear={(ev) => changeAttribute('numerDomu', '', true)} />\n {isNumerDomuInvalid &&
      {adresErrors.numerDomu.map((e, i) => {e})}
    }\n
    \n
    \n {isFormInvalid && Formularz zawiera błędy.}\n \n )\n }\n\n renderKraj() {\n if (this.props.data.rodzajAdresu.value === 'poland') {\n return null\n }\n const krajErrors = (this.props.errors.adres || {}).kraj || [];\n const isKrajInvalid = krajErrors.length > 0;\n return (\n this.props.changeAttribute(\n 'kraj', selectedOption === null ? null : selectedOption.label, true\n )} />\n )\n }\n\n renderMiejscowosc() {\n const miejscowoscErrors = (this.props.errors.adres || {}).miejscowosc || [];\n const isMiejscowoscInvalid = miejscowoscErrors.length > 0;\n const { data, formLocked } = this.props;\n const adres = data.adres;\n if (data.rodzajAdresu.value === 'poland') {\n const miejscowosc = adres.miejscowosc.length > 0 ? {\n wojewodztwo: adres.wojewodztwo,\n powiat: adres.powiat,\n gmina: adres.gmina,\n miejscowosc: adres.miejscowosc,\n } : null;\n return (\n \n )\n }\n return (\n \n this.props.changeAttribute('miejscowosc', ev.target.value, true)}\n onClear={ev => this.props.changeAttribute('miejscowosc', '', true)} />\n {isMiejscowoscInvalid &&
      {miejscowoscErrors.map((e, i) => {e})}
    }\n
    \n )\n }\n\n renderIdentyfikator() {\n const { data, formLocked } = this.props;\n const numerIdentyfikacyjnyErrors = this.props.errors.numerIdentyfikacyjny || [];\n const isNumerIdentyfikacyjnyInvalid = numerIdentyfikacyjnyErrors.length > 0;\n\n if (data.rodzajAdresu.value !== 'poland') {\n return (\n \n this.props.changeNumerIdentyfikacyjny(ev.target.value)}\n onClear={ev => this.props.changeNumerIdentyfikacyjny('')} />\n (dla podmiotów zagranicznych)\n {isNumerIdentyfikacyjnyInvalid && (\n <>\n
      {numerIdentyfikacyjnyErrors.map((e, i) => {e})}
    \n Formularz zawiera błędy!\n \n )}\n
    \n )\n }\n const maxLength = data.typNumeruIdentyfikacyjnego.value === 'nip' ? 10 : 11;\n return (\n <>\n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n isDisabled={formLocked}\n options={TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES}\n value={this.props.data.typNumeruIdentyfikacyjnego}\n onChange={selectedOption => this.props.changeAttribute('typNumeruIdentyfikacyjnego', selectedOption)}\n styles={customSelectStyles}\n />\n \n \n this.props.changeNumerIdentyfikacyjny(ev.target.value, true)}\n onClear={(ev) => this.props.changeNumerIdentyfikacyjny('')}\n onKeyUp={(ev) => this.props.changeNumerIdentyfikacyjny(ev.target.value, true)}\n onPaste={(ev) => this.handlePasteNumerIdentyfikacyjny(ev, maxLength)} />\n (dla podmiotów z Polski)\n {isNumerIdentyfikacyjnyInvalid && (\n <>\n
      {numerIdentyfikacyjnyErrors.map((e, i) => {e})}
    \n Formularz zawiera błędy!\n \n )}\n
    \n \n )\n }\n}\n\n\nexport { FormDanePodmiotuFields };\n","const foreignCountries = {\n 1: 'Afganistan',\n 2: 'Albania',\n 3: 'Algieria',\n 4: 'Andora',\n 5: 'Angola',\n 6: 'Anguilla',\n 7: 'Antarktyda',\n 8: 'Antigua i Barbuda',\n 9: 'Arabia Saudyjska',\n 10: 'Argentyna',\n 11: 'Armenia',\n 12: 'Aruba',\n 13: 'Australia',\n 14: 'Austria',\n 15: 'Azerbejdżan',\n 16: 'Bahamy',\n 17: 'Bahrajn',\n 18: 'Bangladesz',\n 19: 'Barbados',\n 20: 'Belgia',\n 21: 'Belize',\n 22: 'Benin',\n 23: 'Bermudy',\n 24: 'Bhutan',\n 25: 'Białoruś',\n 26: 'Boliwia',\n 27: 'Bonaire, Sint Eustatius i Saba',\n 28: 'Botswana',\n 29: 'Bośnia i Hercegowina',\n 30: 'Brazylia',\n 31: 'Brunei Darussalam',\n 32: 'Brytyjskie Terytorium Oceanu Indyjskiego',\n 33: 'Brytyjskie Wyspy Dziewicze',\n 34: 'Bułgaria',\n 35: 'Burkina Faso',\n 36: 'Burundi',\n 37: 'Ceuta',\n 38: 'Chile',\n 39: 'Chiny',\n 40: 'Chorwacja',\n 41: 'Curaçao',\n 42: 'Cypr',\n 43: 'Czad',\n 44: 'Czarnogóra',\n 45: 'Dalekie Wyspy Mniejsze Stanów Zjednoczonych',\n 46: 'Dania',\n 47: 'Demokratyczna Republika Kongo',\n 48: 'Dominika',\n 49: 'Dominikana',\n 50: 'Dżibuti',\n 51: 'Egipt',\n 52: 'Ekwador',\n 53: 'Erytrea',\n 54: 'Estonia',\n 55: 'Etiopia',\n 56: 'Falklandy',\n 57: 'Fidżi',\n 58: 'Filipiny',\n 59: 'Finlandia',\n 60: 'Francja',\n 61: 'Francuskie Terytorium Południowe',\n 62: 'Gabon',\n 63: 'Gambia',\n 64: 'Ghana',\n 65: 'Gibraltar',\n 66: 'Grecja',\n 67: 'Grenada',\n 68: 'Grenlandia',\n 69: 'Gruzja',\n 70: 'Guam',\n 71: 'Gujana',\n 72: 'Gujana Francuska',\n 73: 'Gwadelupa',\n 74: 'Gwatemala',\n 75: 'Gwinea',\n 76: 'Gwinea Równikowa',\n 77: 'Gwinea-Bissau',\n 78: 'Haiti',\n 79: 'Hiszpania',\n 80: 'Holandia',\n 81: 'Honduras',\n 82: 'Hongkong',\n 83: 'Indie',\n 84: 'Indonezja',\n 85: 'Irak',\n 86: 'Iran',\n 87: 'Irlandia',\n 88: 'Islandia',\n 89: 'Izrael',\n 90: 'Jamajka',\n 91: 'Japonia',\n 92: 'Jemen',\n 93: 'Jordania',\n 94: 'Kajmany',\n 95: 'Kambodża',\n 96: 'Kamerun',\n 97: 'Kanada',\n 98: 'Katar',\n 99: 'Kazachstan',\n 100: 'Kenia',\n 101: 'Kirgistan',\n 102: 'Kiribati',\n 103: 'Kolumbia',\n 104: 'Komory',\n 105: 'Kongo',\n 106: 'Koreańska Republika Ludowo-Demokratyczna',\n 107: 'Kosowo',\n 108: 'Kostaryka',\n 109: 'Kuba',\n 110: 'Kuwejt',\n 111: 'Laos',\n 112: 'Lesotho',\n 113: 'Liban',\n 114: 'Liberia',\n 115: 'Libia',\n 116: 'Liechtenstein',\n 117: 'Litwa',\n 118: 'Luksemburg',\n 119: 'Łotwa',\n 120: 'Macedonia',\n 121: 'Madagaskar',\n 122: 'Majotta',\n 123: 'Makau',\n 124: 'Malawi',\n 125: 'Malediwy',\n 126: 'Malezja',\n 127: 'Mali',\n 128: 'Malta',\n 129: 'Mariany Północne',\n 130: 'Maroko',\n 131: 'Martynika',\n 132: 'Mauretania',\n 133: 'Mauritius',\n 134: 'Meksyk',\n 135: 'Melilla',\n 136: 'Mikronezja',\n 137: 'Mołdawia',\n 138: 'Monako',\n 139: 'Mongolia',\n 140: 'Montserrat',\n 141: 'Mozambik',\n 142: 'Myanmar (Burma)',\n 143: 'Namibia',\n 144: 'Nauru',\n 145: 'Nepal',\n 146: 'Niemcy',\n 147: 'Niger',\n 148: 'Nigeria',\n 149: 'Nikaragua',\n 150: 'Niue',\n 151: 'Norfolk',\n 152: 'Norwegia',\n 153: 'Nowa Kaledonia',\n 154: 'Nowa Zelandia',\n 155: 'Oman',\n 156: 'Pakistan',\n 157: 'Palau',\n 158: 'Palestyna',\n 159: 'Panama',\n 160: 'Papua Nowa Gwinea',\n 161: 'Paragwaj',\n 162: 'Peru',\n 163: 'Pitcairn',\n 164: 'Polinezja Francuska',\n 165: 'Południowa Georgia i Południowe Wyspy Sandwich',\n 166: 'Portoryko',\n 167: 'Portugalia',\n 168: 'Rep.Połud.Afryki',\n 169: 'Rep.Środkowoafryańska',\n 170: 'Republika Czeska',\n 171: 'Republika Korei',\n 172: 'Reunion',\n 173: 'Rosja',\n 174: 'Rumunia',\n 175: 'Rwanda',\n 176: 'Sahara Zachodnia',\n 177: 'Saint Barthelemy',\n 178: 'Saint Kitts i Nevis',\n 179: 'Saint Lucia',\n 180: 'Saint Vincent i Grenadyny',\n 181: 'Saint-Pierre i Miquelon',\n 182: 'Salwador',\n 183: 'Samoa',\n 184: 'Samoa Amerykańskie',\n 185: 'San Marino',\n 186: 'Senegal',\n 187: 'Serbia',\n 188: 'Seszele',\n 189: 'Sierra Leone',\n 190: 'Singapur',\n 191: 'Słowacja',\n 192: 'Słowenia',\n 193: 'Somalia',\n 194: 'Sri Lanka',\n 195: 'Stany Zjednoczone Ameryki',\n 196: 'Suazi',\n 197: 'Sudan',\n 198: 'Sudan Południowy',\n 199: 'Surinam',\n 200: 'Svalbard i Jan Mayen',\n 201: 'Syria',\n 202: 'Szwajcaria',\n 203: 'Szwecja',\n 204: 'Tadżykistan',\n 205: 'Tajlandia',\n 206: 'Tajwan',\n 207: 'Tanzania',\n 208: 'Togo',\n 209: 'Tokelau',\n 210: 'Tonga',\n 211: 'Trynidad i Tobago',\n 212: 'Tunezja',\n 213: 'Turcja',\n 214: 'Turkmenistan',\n 215: 'Tuvalu',\n 216: 'Uganda',\n 217: 'Ukraina',\n 218: 'Urugwaj',\n 219: 'Uzbekistan',\n 220: 'Vanuatu',\n 221: 'Wallis i Futuna',\n 222: 'Watykan',\n 223: 'Wenezuela',\n 224: 'Węgry',\n 225: 'Wielka Brytania',\n 226: 'Wietnam',\n 227: 'Włochy',\n 228: 'Wschodni Timor',\n 229: 'Wybrzeże Kości Słoniowej',\n 230: 'Wyspa Bouveta',\n 231: 'Wyspa Bożego Narodzenia',\n 232: 'Wyspa Sint Maarten',\n 233: 'Wyspa Świętej Heleny',\n 234: 'Wyspy Cooka',\n 235: 'Wyspy Dziewicze Stanów Zjednoczonych',\n 236: 'Wyspy Heard i McDonald',\n 237: 'Wyspy Kokosowe (Keelinga)',\n 238: 'Wyspy Marshalla',\n 239: 'Wyspy Owcze',\n 240: 'Wyspy Salomona',\n 241: 'Wyspy Turks i Caicos',\n 242: 'Wyspy Świętego Tomasza i Książęca',\n 243: 'Zambia',\n 244: 'Zielony Przylądek',\n 245: 'Zimbabwe',\n 246: 'Zjednoczone Emiraty Arabskie'}\n\n\nexport { foreignCountries }\n","import React, { Component } from 'react';\n\nimport { foreignCountries } from '../../../foreignCountries';\nimport { FieldWithLabel, Select, Text } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: 'Zacznij wpisywać...',\n};\nconst SELECT_CLASSNAME = 'select-custom';\nconst SELECT_INVALID_CLASSNAME = 'select-custom select-custom--invalid';\n\n\nclass FormKraj extends Component {\n\n constructor(props) {\n super(props);\n let kraj = null;\n if (props.krajName) {\n kraj = {\n value: props.krajName,\n label: props.krajName,\n }\n }\n this.state = {kraj};\n\n this.handleChangeKraj = this.handleChangeKraj.bind(this);\n }\n\n // handlers\n\n handleChangeKraj(selectedOption) {\n this.setState(\n {kraj: selectedOption},\n () => this.props.changeKraj(selectedOption)\n );\n }\n\n // rendering\n\n render() {\n const { kraj } = this.state;\n const { error, formLocked, invalid, isClearable } = this.props;\n\n let options = Object.values(foreignCountries).map(\n kraj_ => ({value: kraj_, label: kraj_}));\n let value;\n if (isClearable) {\n value = kraj;\n } else {\n options = [EMPTY_VALUE, ...options];\n value = {\n value: kraj ? kraj.value : EMPTY_VALUE.value,\n label: kraj ? kraj.label : EMPTY_VALUE.label\n };\n }\n\n return (\n \n 'Brak wybranej opcji'}\n options={options}\n placeholder={isClearable ? EMPTY_VALUE.label : ''}\n required={true}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={value}\n onChange={selectedOption => this.handleChangeKraj(selectedOption)}\n />\n {invalid && {error}}\n \n )\n }\n}\n\n\nexport { FormKraj };\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject } from '../../../serializers';\nimport { FieldWithLabel, Select, Text } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\nconst EMPTY_VALUE = {\n value: 0,\n label: 'Wpisz co najmniej 3 litery...',\n}\nconst SELECT_CLASSNAME = 'select-custom';\nconst SELECT_INVALID_CLASSNAME = 'select-custom select-custom--invalid';\n\n\nclass FormMiejscowosc extends Component {\n\n constructor(props) {\n super(props);\n this.state = Object.assign({\n miejscowosc: props.miejscowosc || null,\n selectMiejscowoscMenuIsOpen: false,\n inputOptions: [],\n moreOptionsAvailable: false,\n fetchError: '',\n });\n\n this.requestId = 0;\n\n this.xhrFetch = null;\n this.xhrTimeout = null;\n\n this.handleChangeInputMiejscowosc = this.handleChangeInputMiejscowosc.bind(this);\n this.handleFetchSuccess = this.handleFetchSuccess.bind(this);\n this.handleFetchError = this.handleFetchError.bind(this);\n this.handleFetchIncorrectStatus = this.handleFetchIncorrectStatus.bind(this);\n this.handleBlurMiejscowosc = this.handleBlurMiejscowosc.bind(this);\n this.handleChangeMiejscowosc = this.handleChangeMiejscowosc.bind(this);\n }\n\n // basic functions\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n // handlers\n\n handleChangeInputMiejscowosc(inputValue) {\n if (this.xhrTimeout !== null) {\n clearTimeout(this.xhrTimeout);\n this.xhrTimeout = null;\n }\n if (inputValue.length < 3) {\n this.setState({\n selectMiejscowoscMenuIsOpen: false,\n inputOptions: [],\n moreOptionsAvailable: false,\n fetchError: ''\n });\n } else {\n this.requestId++;\n this.xhrTimeout = setTimeout(() => {\n this.setState(\n {inputOptions: [], moreOptionsAvailable: false, fetchError: ''},\n () => {\n // get data from server\n this.xhrFetch = fetchApi(\n '/api/dictionaries/teryt',\n 'GET',\n {},\n {locality_search_key: inputValue, request_id: this.requestId},\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n );\n }, 500);\n };\n }\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n if (parseInt(data.request_id) < this.requestId) {\n // do nothing, there is another fetch on the fly\n return\n }\n this.setState({\n selectMiejscowoscMenuIsOpen: true,\n inputOptions: (getSerializedObject(data).teryty || []).sort(this.sortMiejscowosc).map(\n m => ({value: m, label: `${m.miejscowosc} (woj. ${m.wojewodztwo}, pow. ${m.powiat}, gm. ${m.gmina})`})),\n moreOptionsAvailable: data.meta.last_page > 1,\n });\n }\n\n handleFetchError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: `Nie udało się pobrać miejscowości. ${data.message}`,\n });\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: `Nie udało się pobrać miejscowości. Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n handleBlurMiejscowosc(ev) {\n this.setState({selectMiejscowoscMenuIsOpen: false});\n }\n\n handleChangeMiejscowosc(selectedOption) {\n const value = selectedOption === null ? null : selectedOption.value;\n this.setState(\n {\n selectMiejscowoscMenuIsOpen: false,\n miejscowosc: value,\n },\n () => this.props.changeMiejscowosc(value)\n );\n }\n\n // rendering\n\n render() {\n const { error, formLocked, isClearable, invalid } = this.props;\n const {\n fetchError,\n inputOptions,\n miejscowosc,\n moreOptionsAvailable,\n selectMiejscowoscMenuIsOpen,\n } = this.state;\n\n const moreOptionsAvailableText = 'Istnieje więcej pasujących wyników. Jeśli na liście nie ma szukanej miejscowości, wpisz dodatkowe litery.'\n\n return (\n \n {moreOptionsAvailable && {moreOptionsAvailableText}}\n 0 ? fetchError : ''}`}\n className={invalid ? SELECT_INVALID_CLASSNAME : SELECT_CLASSNAME}\n components={{\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null\n }}\n isClearable={isClearable}\n isDisabled={formLocked}\n menuIsOpen={selectMiejscowoscMenuIsOpen}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={inputOptions}\n placeholder={isClearable ? EMPTY_VALUE.label : ''}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={{\n ...customSelectStyles,\n menuPortal: (provided, state) => ({\n ...provided,\n maxHeight: \"160px\",\n }),\n menuList: (provided, state) => ({\n ...provided,\n maxHeight: \"160px\",\n }),\n }} \n value={miejscowosc\n ? {\n value: miejscowosc,\n label: `${miejscowosc.miejscowosc} (woj. ${miejscowosc.wojewodztwo}, pow. ${miejscowosc.powiat}, gm. ${miejscowosc.gmina})`\n } : isClearable ? null : EMPTY_VALUE}\n onBlur={this.handleBlurMiejscowosc}\n onChange={this.handleChangeMiejscowosc}\n onInputChange={this.handleChangeInputMiejscowosc}\n />\n {invalid && {error}}\n {fetchError.length > 0 && {fetchError}}\n \n )\n }\n}\n\n\nexport { FormMiejscowosc };\n","import React, { Component } from 'react';\nimport { Radio } from '@rmwc/radio';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n hasPerspectiveInstitutions,\n hasPerspectiveRegions,\n hasSubactivities,\n sortProgrammes\n} from '../../../helpers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n ErrorList,\n FieldWithLabel,\n GridCustom,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\nconst SELECT_CLASS_NAME = 'select-custom';\nconst SELECT_INVALID_CLASS_NAME = 'select-custom select-custom--invalid';\nexport const INSTITUTION_NUMBER_DEFAULT_DICT = {\n value: '',\n code: 'AA.00',\n label: 'AA.00',\n};\n\n\nexport class ProjectNumberSelectsWithPerspectives extends Component {\n\n constructor(props) {\n super(props);\n // please, don't change nulls into empty lists, otherwise you destroy\n // a mechanism for filling selects\n this.state = {\n programmes: null,\n priorities: null,\n activities: null,\n regions: null,\n institutions: null,\n activityFetchError: '',\n priorityFetchError: '',\n programmeFetchError: '',\n regionFetchError: '',\n institutionFetchError: '',\n }\n this.xhrFetch = null;\n }\n\n componentDidMount() {\n if (!this.props.perspectives.length) { return }\n\n if (this.props.perspectivesAsSelect) {\n const { perspective } = this.props;\n if (!(perspective && perspective.value)) { return }\n\n if (!perspective.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.props.perspectives, perspective, 'perspective',\n this.props.onChangePerspective\n );\n return\n }\n }\n this.fetchProgrammes();\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n if (this.state.programmeFetchError.length ||\n this.state.activityFetchError.length ||\n this.state.priorityFetchError.length ||\n this.xhrFetch !== null) { return }\n\n // set perspective, programme, priority, activity, institution, region\n if (!this.props.perspectives.length) { return }\n\n const { perspective } = this.props;\n if (!(perspective && perspective.value)) { return }\n\n if (perspective !== prevProps.perspective) {\n this.fetchProgrammes();\n return\n }\n\n const { programme } = this.props;\n if (!this.state.programmes || !(programme && programme.value)) {\n return\n }\n\n if (!programme.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.state.programmes, programme, 'programme',\n this.props.onChangeProgramme\n );\n } else if (\n programme !== prevProps.programme ||\n (programme && !this.state.priorities && !prevState.priorities)\n ) {\n this.fetchPriorities();\n } else {\n const { priority } = this.props;\n if (\n !this.state.priorities ||\n !(priority && priority.value)\n ) { return }\n\n if (!priority.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.state.priorities, priority, 'priority',\n this.props.onChangePriority\n );\n } else if (\n priority !== prevProps.priority ||\n (priority && !this.state.activities && !prevState.activities)\n ) {\n this.fetchActivities();\n } else {\n const { activity } = this.props;\n if (\n !this.state.activities ||\n !(activity && activity.value)\n ) { return }\n\n const hasRegions = hasPerspectiveRegions(perspective);\n const hasInstitutions = hasPerspectiveInstitutions(perspective);\n\n if (!activity.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.state.activities, activity, 'activity',\n this.props.onChangeActivity\n );\n } else if (\n activity !== prevProps.activity ||\n (hasRegions && !this.state.regions && !prevState.regions) ||\n (hasInstitutions && !this.state.institutions && !prevState.institutions)\n ) {\n if (hasRegions) {\n this.fetchRegions();\n } else if (hasInstitutions) {\n this.fetchInstitutions();\n }\n } else {\n if (hasRegions) {\n const {region} = this.props;\n if (\n !this.state.regions ||\n !(region && region.value)\n ) {\n return\n }\n\n if (!region.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.state.regions, region, 'region',\n this.props.onChangeActivity\n );\n }\n } else if (hasInstitutions) {\n const {institution} = this.props;\n if (\n !this.state.institutions ||\n !(institution && institution.value)\n ) {\n return\n }\n\n if (!institution.label) {\n this.setDefaultSelectValueLabelBasedOnId(\n this.state.institutions, institution,\n 'institution', this.props.onChangeActivity\n );\n }\n }\n }\n }\n }\n }\n\n componentWillUnmount() {\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n // handlers\n\n handleChangePerspectiveSelect = (selectedOption) => {\n selectedOption = selectedOption || null;\n // if user clicked the same option\n if (this.props.perspective === selectedOption) { return }\n this.setState(\n {\n programmes: null,\n priorities: null,\n activities: null,\n regions: null,\n institutions: null,\n priorityFetchError: '',\n activityFetchError: '',\n regionFetchError: '',\n institutionFetchError: '',\n },\n () => this.props.onChangePerspective(\n {\n perspective: selectedOption,\n programme: null,\n priority: null,\n activity: null,\n region: null,\n institution: null,\n }\n )\n );\n }\n\n handleChangePerspective = (ev) => {\n const value = ev.currentTarget.value;\n this.setState(\n {\n programmes: null,\n priorities: null,\n activities: null,\n regions: null,\n institutions: null,\n priorityFetchError: '',\n activityFetchError: '',\n programmeFetchError: '',\n regionFetchError: '',\n institutionFetchError: '',\n },\n () => {\n this.props.onChangePerspective(\n {\n perspective: this.props.perspectives.filter(\n perspective_ =>\n perspective_.value.toString() === value.toString()\n )[0],\n programme: null,\n priority: null,\n activity: null,\n ...(this.props.withInstitutionNumber\n ? {institutionNumber: {...INSTITUTION_NUMBER_DEFAULT_DICT}}\n : {}\n ),\n region: null,\n institution: null,\n }\n )\n }\n );\n };\n\n handleChangeProgramme = (selectedOption) => {\n selectedOption = selectedOption || null;\n // if user clicked the same option\n if (this.props.programme === selectedOption) { return }\n this.setState(\n {\n priorities: null,\n activities: null,\n regions: null,\n institutions: null,\n priorityFetchError: '',\n activityFetchError: '',\n regionFetchError: '',\n institutionFetchError: '',\n },\n () => this.props.onChangeProgramme(\n {\n programme: selectedOption,\n priority: null,\n activity: null,\n region: null,\n institution: null,\n }\n )\n );\n };\n\n handleChangePriority = (selectedOption) => {\n selectedOption = selectedOption || null;\n // if user clicked the same option\n if (this.props.priority === selectedOption) { return }\n this.setState(\n {\n activities: null,\n regions: null,\n institutions: null,\n activityFetchError: '',\n regionFetchError: '',\n institutionFetchError: '',\n },\n () => this.props.onChangePriority(\n {\n priority: selectedOption,\n activity: null,\n region: null,\n institution: null,\n })\n );\n };\n\n handleChangeActivity = (selectedOption) => {\n selectedOption = selectedOption || null;\n // if user clicked the same option\n if (this.props.activity === selectedOption) { return }\n this.setState(\n {\n regions: null,\n institutions: null,\n regionFetchError: '',\n institutionFetchError: '',\n },\n () => this.props.onChangeActivity(\n {\n activity: selectedOption,\n region: null,\n institution: null,\n })\n );\n };\n\n handleChangInstitutionNumber = (value) => {\n this.props.onChangeInstitutionNumber(value);\n }\n\n handleChangeRegion = (selectedOption) => {\n selectedOption = selectedOption || null;\n this.props.onChangeRegion({region: selectedOption});\n }\n\n handleChangeInstitution = (selectedOption) => {\n selectedOption = selectedOption || null;\n this.props.onChangeInstitution({institution: selectedOption});\n }\n\n handleFetchObjectsSuccess = (data, objectListName) => {\n this.xhrFetch = null;\n this.setState({\n [objectListName]: data[objectListName].map(p => ({\n value: p.id,\n code: p.code,\n label: `${p.code} - ${p.name}`\n }))\n });\n }\n\n handleFetchObjectsError = (data, errorObjectLabel, errorName) => {\n this.xhrFetch = null;\n this.setState({\n [errorName]: `Nie udało się pobrać ${errorObjectLabel}.`,\n });\n }\n\n handleFetchObjectsIncorrectStatus = (status, errorObjectLabel, errorName) => {\n this.xhrFetch = null;\n this.setState({\n [errorName]: `Nie udało się pobrać ${errorObjectLabel}. ` +\n `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n });\n }\n\n // helpers\n\n setDefaultSelectValueLabelBasedOnId(\n objectsList, object, objectName, changeObjectHandler\n ) {\n for (let obj of objectsList) {\n if (obj.value === object.value) {\n changeObjectHandler({[objectName]: obj});\n return\n }\n }\n changeObjectHandler({[objectName]: null});\n }\n\n fetchObjects({\n apiUrlName,\n errorName,\n errorObjectLabel,\n objectListName,\n parentObjectName\n }) {\n const parent = this.props[parentObjectName];\n if (!parent || !(parent.value || parent.id)) { return }\n this.xhrFetch = fetchApi(\n API_URLS[apiUrlName].getUrl(parent.value || parent.id),\n 'GET',\n {},\n {mode: this.props.mode || 'default'},\n (data) => this.handleFetchObjectsSuccess(data, objectListName),\n (data) => this.handleFetchObjectsError(\n data, errorObjectLabel, errorName),\n (status) => this.handleFetchObjectsIncorrectStatus(\n status, errorObjectLabel, errorName),\n );\n }\n\n fetchProgrammes() {\n this.fetchObjects({\n apiUrlName: 'programmes',\n errorName: 'programmeFetchError',\n errorObjectLabel: 'programów operacyjnych',\n objectListName: 'programmes',\n parentObjectName: 'perspective',\n });\n }\n\n fetchPriorities() {\n this.fetchObjects({\n apiUrlName: 'priorities',\n errorName: 'priorityFetchError',\n errorObjectLabel: 'osi priorytetowych',\n objectListName: 'priorities',\n parentObjectName: 'programme',\n });\n }\n\n fetchActivities() {\n this.fetchObjects({\n apiUrlName: 'activities',\n errorName: 'activityFetchError',\n errorObjectLabel: hasSubactivities(this.props.perspective)\n ? 'działań i poddziałań' : 'działań',\n objectListName: 'activities',\n parentObjectName: 'priority',\n });\n }\n\n fetchRegions() {\n this.fetchObjects({\n apiUrlName: 'regions',\n errorName: 'regionFetchError',\n errorObjectLabel: 'regionów',\n objectListName: 'regions',\n parentObjectName: 'activity',\n });\n }\n\n fetchInstitutions() {\n this.fetchObjects({\n apiUrlName: 'institutions',\n errorName: 'institutionFetchError',\n errorObjectLabel: 'instytucji',\n objectListName: 'institutions',\n parentObjectName: 'activity',\n });\n }\n\n // rendering\n\n render() {\n const {\n activity,\n activityErrors,\n disabled,\n isClearable,\n institution,\n institutionErrors,\n institutionNumber,\n institutionNumberErrors,\n perspective,\n perspectiveErrors = [],\n perspectives,\n perspectivesAsSelect,\n priority,\n priorityErrors,\n programme,\n programmeErrors,\n region,\n regionErrors,\n withInstitutionNumber\n } = this.props;\n const {\n activityFetchError,\n institutionFetchError,\n priorityFetchError,\n programmeFetchError,\n regionFetchError\n } = this.state;\n\n const hasRegions = hasPerspectiveRegions(perspective);\n const hasInstitutions = hasPerspectiveInstitutions(perspective);\n\n const isPerspectiveInvalid = perspectivesAsSelect &&\n perspectiveErrors.length > 0;\n const isProgrammeInvalid = programmeErrors.length > 0;\n const isPriorityInvalid = priorityErrors.length > 0;\n const isActivityInvalid = activityErrors.length > 0;\n let isInstitutionNumberInvalid = false;\n if (withInstitutionNumber) {\n isInstitutionNumberInvalid =\n hasRegions && institutionNumberErrors.length > 0;\n }\n const isRegionInvalid = hasRegions && regionErrors.length > 0;\n const isInstitutionInvalid = hasInstitutions && institutionErrors.length > 0;\n const formInvalid = isPerspectiveInvalid || isProgrammeInvalid ||\n isPriorityInvalid || isActivityInvalid ||\n isInstitutionNumberInvalid || isRegionInvalid ||\n isInstitutionInvalid;\n\n const activityLabel = hasSubactivities(perspective)\n ? 'Działanie i poddziałanie' : 'Działanie';\n\n return (\n <>\n \n {perspectivesAsSelect\n ? (\n \n 'Brak wybranej opcji'}\n options={perspectives}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={perspective}\n onChange={this.handleChangePerspectiveSelect} />\n {isPerspectiveInvalid &&\n \n }\n \n )\n : (\n
    \n Perspektywa finansowa\n {perspectives.map(perspective_ => (\n \n ))}\n
    \n )\n }\n
    \n \n \n 0 ? 'programmeFetch_error' : null}\n className={isProgrammeInvalid ? SELECT_INVALID_CLASS_NAME : SELECT_CLASS_NAME}\n isClearable={isClearable}\n isDisabled={disabled || (perspectivesAsSelect && !perspective)}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={(this.state.programmes || []).sort(sortProgrammes)}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={programme}\n onChange={this.handleChangeProgramme} />\n {isProgrammeInvalid &&\n \n }\n {programmeFetchError.length > 0 && {programmeFetchError}}\n \n \n 0 ? 'osPriorytetowaFetch_error' : null}\n className={isPriorityInvalid ? SELECT_INVALID_CLASS_NAME : SELECT_CLASS_NAME}\n isClearable={isClearable}\n isDisabled={disabled || programme === null}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={programme !== null ? (this.state.priorities || []) : null}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={priority}\n onChange={this.handleChangePriority} />\n {isPriorityInvalid &&\n \n }\n {priorityFetchError.length > 0 && {priorityFetchError}}\n \n \n \n \n 0 ? 'dzialanie_fetch_error' : null}\n className={isActivityInvalid ? SELECT_INVALID_CLASS_NAME : SELECT_CLASS_NAME}\n isClearable={isClearable}\n isDisabled={disabled || priority === null}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={priority !== null ? (this.state.activities || []) : null}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={activity}\n onChange={this.handleChangeActivity} />\n {isActivityInvalid &&\n \n }\n {activityFetchError.length > 0 && {activityFetchError}}\n \n \n {hasRegions && (\n <>\n {withInstitutionNumber && (\n \n \n this.handleChangInstitutionNumber(event.target.value)}\n onClear={event => this.handleChangInstitutionNumber('')} />\n {isInstitutionNumberInvalid &&\n \n }\n \n Wpisz numer zgodnie ze wzorem: AA.00\n \n \n \n )}\n \n \n 0 ? 'region_fetch_error' : null}\n className={isRegionInvalid ? SELECT_INVALID_CLASS_NAME : SELECT_CLASS_NAME}\n isClearable={isClearable}\n isDisabled={disabled || activity === null}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={activity !== null ? (this.state.regions || []) : null}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={region}\n onChange={this.handleChangeRegion} />\n {isRegionInvalid &&\n \n }\n {regionFetchError.length > 0 &&\n {regionFetchError}\n }\n {formInvalid && Formularz zawiera błędy.}\n \n \n \n )}\n {hasInstitutions && (\n \n \n 0 ? 'institution_fetch_error' : null}\n className={isInstitutionInvalid ? SELECT_INVALID_CLASS_NAME : SELECT_CLASS_NAME}\n isClearable={isClearable}\n isDisabled={disabled || activity === null}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={activity !== null ? (this.state.institutions || []) : null}\n placeholder=\"Zacznij wpisywać...\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={institution}\n onChange={this.handleChangeInstitution} />\n {isInstitutionInvalid &&\n \n }\n {institutionFetchError.length > 0 &&\n {institutionFetchError}\n }\n {formInvalid && Formularz zawiera błędy.}\n \n \n )}\n \n )\n }\n}\n","import React, { Component } from 'react';\nimport Dropzone from 'react-dropzone';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport { getAuthTokenCookieValue, refreshTimerAfterRequest, saveFileFromApi } from '../../../helpers';\nimport { translateErrorMessage } from '../../../serializers';\nimport {\n Box,\n ButtonStyled,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n LinearProgressCustom,\n Text,\n TextFieldCustom\n} from '../../common';\n\n\nclass Zalacznik extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n confirmRemovingOn: false,\n progress: null,\n loadingInProgress: false,\n loadingFileName: null,\n showLoadedSuccessMsg: false,\n showLoadingErrorMsg: false,\n errors: {},\n };\n\n this.blockedFilesExtensions = ['exe', ];\n this.successMessageTimeout = null;\n this.errorMessageTimeout = null;\n this.removingDialogComponent = null;\n this.xhrSaveFile = null;\n\n this.handleRemoveZalacznik = this.handleRemoveZalacznik.bind(this);\n this.handleAddPlik = this.handleAddPlik.bind(this);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.progress !== this.state.progress && this.state.progress === 1.0) {\n this.setState({\n loadingFileName: null,\n showLoadedSuccessMsg: true,\n });\n\n this.successMessageTimeout = setTimeout(() => {\n this.successMessageTimeout = null;\n this.setState({\n showLoadedSuccessMsg: false,\n loadingInProgress: false,\n });\n }, 7000);\n }\n }\n\n componentDidMount() {\n if (this.props.zalacznik.plikDoWgrania) {\n this.handleAddPlik([this.props.zalacznik.plikDoWgrania, ]);\n }\n }\n\n componentWillUnmount() {\n if (this.successMessageTimeout !== null) {\n clearTimeout(this.successMessageTimeout);\n }\n if (this.errorMessageTimeout !== null) {\n clearTimeout(this.errorMessageTimeout);\n }\n if (this.xhrSaveFile !== null) {\n this.xhrSaveFile.abort();\n }\n }\n\n handleCloseConfirmRemovingDialog = () => {\n this.setState({confirmRemovingOn: false});\n }\n\n\thandleSaveFileFromApi = (url, fileName) => {\n this.setState(\n () => saveFileFromApi(\n url,\n\t\t\t\tfileName)\n );\n }\n\n render() {\n const isAlreadyPublished = this.props.isAlreadyPublished;\n const z = this.props.zalacznik;\n const temporaryId = z.temporaryId;\n const formLocked = this.props.formLocked;\n const zalacznikTitleId = `zalacznik_${z.temporaryId}_title_id`;\n\n const errors = Object.assign({}, this.props.errors || {}, this.state.errors);\n const checkAttributeName = this.props.checkAttributeName;\n const isCheckInvalid = (errors[checkAttributeName] || []).length > 0;\n const isNazwaInvalid = (errors.nazwa || []).length > 0;\n\n return (\n \n {this.props.withCheck && (\n <>\n this.props.onCheckChange(event.target.checked, temporaryId)}\n />\n {isCheckInvalid && (\n
      \n {errors[checkAttributeName].map((e, i) => {e})}\n
    \n )}\n \n )}\n \n this.props.saveZalacznikAttributes(z.temporaryId, {nazwa: ev.target.value.trim()})}\n onChange={(ev) => this.props.saveZalacznikAttributes(z.temporaryId, {nazwa: ev.target.value})}\n onClear={!isAlreadyPublished && ((ev) => this.props.saveZalacznikAttributes(z.temporaryId, {nazwa: ''}))}\n />\n {isNazwaInvalid &&
      {errors.nazwa.map((e, i) => {e})}
    }\n
    \n \n {this.renderFile(temporaryId, errors)}\n \n {!isAlreadyPublished && (\n this.setState({confirmRemovingOn: true})}>\n Usuń załącznik {z.nazwa}\n \n )}\n {this.state.confirmRemovingOn && (\n {this.removingDialogComponent = c}}\n onClose={this.handleCloseConfirmRemovingDialog}\n >\n \n {this.setState({confirmRemovingOn: false})}} cancel>Anuluj\n Usuń załącznik\n \n \n )}\n {isNazwaInvalid && Formularz zawiera błędy.}\n
    \n )\n }\n\n renderFile(temporaryId, errors) {\n // loaded file\n const z = this.props.zalacznik;\n const progress = ;\n const error = (errors.plik || '').length > 0 ? {errors.plik} : null;\n if (z.plik.id) {\n const plik = z.plik;\n return (\n <>\n {this.state.loadingInProgress && progress}\n {this.state.showLoadedSuccessMsg && Plik został dodany!}\n {plik.nazwa}\n\t\t\t\t\t this.handleSaveFileFromApi(plik.uri, plik.nazwa)}>Pobierz załącznik {z.nazwa || plik.nazwa}\n {error}\n {this.renderOwner(z)}\n \n )\n }\n\n // loading file\n if (this.state.loadingInProgress) {\n return (\n <>\n {this.state.loadingFileName}\n {progress}\n {error}\n \n )\n }\n\n let fileError = null;\n\n const loadFileError = (errors.plik || '').length > 0 ? 'load_file_error' : null;\n const noUploadError = this.state.showLoadingErrorMsg ? 'no_file_upload_error' : null;\n\n if (loadFileError && noUploadError) {\n fileError = `${loadFileError} ${noUploadError}`;\n } else {\n fileError = (loadFileError || noUploadError)\n }\n\n // set file\n return (\n <>\n \n {({getRootProps, getInputProps}) => (\n
    \n this.clearFileErrors(temporaryId),\n style: {display: 'block', position: 'absolute', width: 0, height: 0, left: '-1000%'},\n })}\n />\n \n
    \n )}\n
    \n {error}\n {this.state.showLoadingErrorMsg && Plik nie został dodany}\n \n )\n }\n\n renderOwner(zalacznik) {\n if (!zalacznik.plik.ktoUtworzyl) { return null }\n const {\n dataUtworzenia,\n ktoUtworzyl,\n } = zalacznik.plik;\n return (\n <>\n \n {ktoUtworzyl.imie} {ktoUtworzyl.nazwisko}\n \n \n {dataUtworzenia}\n \n \n )\n }\n\n clearFileErrors(temporaryId) {\n this.setState(\n (prevState) => {\n let errors = prevState.errors;\n delete errors['plik'];\n return {errors: errors}\n }\n );\n }\n\n handleRemoveZalacznik() {\n if (this.removingDialogComponent !== null){\n this.handleCloseConfirmRemovingDialog();\n }\n this.props.removeZalacznik(this.props.zalacznik.temporaryId);\n }\n\n handleAddPlik(files) {\n if (!files.length) {\n // stop loading\n this.setState({loadingFileName: null, progress: null});\n return\n }\n\n // get first file and use it it current component\n let currentComponentFile = files[0];\n\n if (this.validate(currentComponentFile)) {\n this.save(currentComponentFile);\n }\n\n // render components for other files\n if (files.length > 1) {\n let filesLength = files.length;\n if (this.props.maxLength) {\n filesLength = Math.min(\n files.length,\n // available attachments to load\n this.props.maxLength - (this.props.zalacznikiLength - 1) // 1 is because of current input\n );\n }\n // start from the second file, because the first one is already added\n for (let i=1; i {\n return {\n errors: Object.assign({}, prevState.errors, {\n plik: [`Nie udało się dodać pliku ${file.name}. Dodawanie plików z rozszerzeniem ${extension} zostało zablokowane.`]\n }),\n showLoadingErrorMsg: true,\n }\n },\n () => {\n this.errorMessageTimeout = setTimeout(() => {\n this.errorMessageTimeout = null;\n this.setState({showLoadingErrorMsg: false})\n }, 5000);\n }\n );\n return false\n }\n\n if (this.errorMessageTimeout !== null){\n clearTimeout(this.errorMessageTimeout);\n }\n this.setState((prevState) => {\n let errors = prevState.errors;\n delete errors.plik;\n return {\n errors: errors,\n showLoadingErrorMsg: false,\n }\n });\n return true\n }\n\n save(file) {\n this.setState({progress: 0, loadingInProgress: true, loadingFileName: file.name});\n\n const formData = new FormData();\n formData.append('file', file);\n\n this.xhrSaveFile = new XMLHttpRequest();\n this.xhrSaveFile.open('POST', `/api/files?context=${this.props.contextForSaving || 'default'}`);\n\n const authTokenCookieValue = getAuthTokenCookieValue();\n if (authTokenCookieValue) {\n this.xhrSaveFile.setRequestHeader('X-Auth-Token', authTokenCookieValue);\n }\n\n const onProgress = (e) => {\n this.setState({progress: e.loaded / e.total})\n };\n\n this.xhrSaveFile.upload.onprogress = onProgress;\n\n this.xhrSaveFile.onerror = () => {\n this.xhrSaveFile = null;\n this.setState(prevState => ({\n errors: Object.assign({}, prevState.errors, {plik: ['Wystąpił nieoczekiwany błąd.']}),\n }));\n };\n\n this.xhrSaveFile.onload = () => {\n refreshTimerAfterRequest(\n authTokenCookieValue, this.xhrSaveFile.status);\n let success = true;\n let error;\n let jsonData = {};\n try {\n jsonData = JSON.parse(this.xhrSaveFile.responseText);\n } catch(error) {\n success = false;\n }\n\n if (success) {\n if (jsonData.status === 'OK') {\n const file = jsonData.data.file;\n this.props.saveZalacznikAttributes(this.props.zalacznik.temporaryId, {\n plik: {\n id: file.id,\n uri: file.uri,\n nazwa: file.name,\n dataUtworzenia: file.created_at,\n ktoUtworzyl: {imie: file.created_by.forename, nazwisko: file.created_by.surname},\n },\n plikDoWgrania: null,\n });\n return\n } else if (jsonData.errors) {\n error = translateErrorMessage(jsonData.errors.file);\n } else {\n error = translateErrorMessage(jsonData.message);\n }\n } else if (this.xhrSaveFile.status === 413) {\n error = 'Wybrany plik jest zbyt duży. Maksymalny rozmiar pliku to 25 MB.';\n } else {\n error = `Wystąpił nieoczekiwany błąd o kodzie ${this.xhrSaveFile.status}. Nie udało się dodać pliku.`;\n }\n this.setState(prevState => ({\n errors: Object.assign({}, prevState.errors, {plik: [error]}),\n }));\n this.xhrSaveFile = null;\n };\n this.xhrSaveFile.send(formData);\n }\n}\n\n\nexport { Zalacznik };\n","import React from 'react';\n\nimport { ButtonStyled, GridCustom, Text } from '../../common';\nimport { Zalacznik } from './Zalacznik';\n\n\nconst Zalaczniki = (props) => {\n const {\n children,\n errors,\n formLocked,\n header,\n isAlreadyPublished,\n withoutHeader,\n zalaczniki\n } = props;\n const zalacznikiErrors = (props.errors || {}).errors || [];\n const isZalacznikiInvalid = zalacznikiErrors.length > 0;\n // it is possible to rewrite this value\n const zalacznikiLength = props.zalacznikiLength || zalaczniki.length;\n\n return (\n <>\n {isZalacznikiInvalid &&
      {zalacznikiErrors.map((e, i) => {e})}
    }\n \n {!withoutHeader && {header || 'Załączniki'}}\n {(!isAlreadyPublished && (!props.maxLength || zalacznikiLength < props.maxLength)) && (\n \n Dodaj załącznik\n \n )}\n \n {children}\n \n {[...zalaczniki].reverse().map(z => (\n )\n )}\n \n \n )\n}\n\nexport { Zalaczniki };\n","import React, { useState } from 'react';\n\nimport { GridCustom, Select, Text, ButtonStyled } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { saveFileFromApi } from '../../../helpers';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: 'Wybierz',\n};\n\nconst ZalacznikiSelect = (props) => {\n const [selectedZalacznik, setSelectedZalacznik] = useState(EMPTY_VALUE);\n const [selectWrapperClassName, setSelectWrapperClassName] = useState(null)\n \n if (props.zalaczniki.length === 0) {\n return Liczba wyników: 0\n }\n \n let options = [EMPTY_VALUE, ].concat(...props.zalaczniki.map(z => {\n let label = z.nazwa;\n if (props.label && z[props.label.attrName] === true) {\n label += ` - ${props.label.description}`;\n }\n return {value: z.id, label, plik: z.plik}\n }))\n\n const downloadAllAttachments = () => {\n const url = `/api/offerset/${props.offersetId}/attachments.zip`;\n const fileName = `Załączniki-${props.offersetId}.zip`;\n\n return saveFileFromApi(url, fileName);\n }\n\n return (\n <>\n \n 'Brak wybranej opcji'}\n options={options}\n placeholder=\"Brak załączników\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={selectedZalacznik}\n onChange={selectedOption => setSelectedZalacznik(selectedOption)}\n menuShouldScrollIntoView\n onFocus={() => setSelectWrapperClassName('select-download-wrapper')}\n onBlur={() => setSelectWrapperClassName(null)}\n />\n {selectedZalacznik.value !== 0 && selectedZalacznik.plik.uri.length > 0 && (\n\t\t\t\t\t saveFileFromApi(selectedZalacznik.plik.uri, selectedZalacznik.plik.nazwa)}>\n\t\t\t\t\t\tPobierz załącznik {selectedZalacznik.nazwa || selectedZalacznik.plik.nazwa}\n\t\t\t\t\t\n )}\n {props.offersetId != null && (\n downloadAllAttachments()}>\n Pobierz wszystkie załączniki\n \n )}\n\n {(selectedZalacznik.value !== 0 && !selectedZalacznik.plik.uri) && (\n Tego pliku nie da się pobrać. Skontaktuj się z obsługą strony.\n )}\n \n \n )\n}\n\nexport { ZalacznikiSelect };\n","import React, { Component } from 'react';\n\nimport { TYP_NUMERU_IDENTYFIKACYJNEGO } from '../../../const';\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { validatePersonalData } from '../../../validators';\nimport { ButtonStyled, DialogCustom, GridCustom, Text } from '../../common';\nimport { FormDanePodmiotuFields } from '../common';\n\nconst RODZAJ_ADRESU_CHOICES = [\n {\n value: 'poland',\n label: 'Polska',\n },\n {\n value: 'abroad',\n label: 'Zagranica',\n },\n];\nconst TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES = TYP_NUMERU_IDENTYFIKACYJNEGO.slice(0, 2);\nconst EMPTY_DATA = {\n id: null,\n nazwa: '',\n typNumeruIdentyfikacyjnego: TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES[0],\n numerIdentyfikacyjny: '',\n rodzajAdresu: RODZAJ_ADRESU_CHOICES[0],\n adres: {\n kraj: 'Polska',\n wojewodztwo: '',\n powiat: '',\n gmina: '',\n miejscowosc: '',\n kodPocztowy: '',\n ulica: '',\n numerDomu: '',\n },\n};\n\n\nclass FormDanePodmiotu extends Component {\n\n constructor(props) {\n super(props);\n this.isNew = !Object.keys(props.data).length;\n this.state = {\n savingOn: false,\n data: Object.assign({}, EMPTY_DATA, props.data),\n errors: {},\n fetchError: '',\n };\n\n this.dialogComponent = null;\n this.xhrFetchSave = null;\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetchSave !== null) {\n this.xhrFetchSave.abort();\n }\n }\n\n // handlers\n\n handleChangeRodzajAdresu = (value) => {\n let dct = {\n numerIdentyfikacyjny: '',\n rodzajAdresu: value,\n };\n let adres = {\n kraj: null,\n wojewodztwo: '',\n powiat: '',\n gmina: '',\n miejscowosc: '',\n };\n if (value.value === 'poland') {\n adres.kraj = 'Polska';\n dct['typNumeruIdentyfikacyjnego'] = TYP_NUMERU_IDENTYFIKACYJNEGO[0];\n } else {\n // set abroad\n dct['typNumeruIdentyfikacyjnego'] = TYP_NUMERU_IDENTYFIKACYJNEGO[2];\n }\n\n this.setState(prevState => {\n return {data: Object.assign({}, prevState.data, {\n ...dct,\n adres: Object.assign({}, prevState.data.adres, adres),\n })}\n });\n }\n\n handleChangeAttribute = (name, value, isAdresPart) => {\n this.setState(prevState => {\n let dict = {[name]: value};\n if (name === 'typNumeruIdentyfikacyjnego' && prevState.data['typNumeruIdentyfikacyjnego'].value !== value.value) {\n dict['numerIdentyfikacyjny'] = '';\n }\n if (isAdresPart) {\n return {data: Object.assign({}, prevState.data, {\n adres: Object.assign({}, prevState.data.adres, dict),\n })}\n } else {\n return {data: Object.assign({}, prevState.data, dict)}\n }\n });\n }\n\n handleChangeMiejscowosc = (value) => {\n this.setState(prevState => {\n return {data: Object.assign({}, prevState.data, {\n adres: Object.assign({}, prevState.data.adres, value)\n })}\n });\n }\n\n handleChangeNumerIdentyfikacyjny = (value, onlyDigits=false, maxLength=null) => {\n if (onlyDigits) {\n value = value.replace(/[^\\d]/g, '');\n }\n if (maxLength) {\n value = value.slice(0, maxLength);\n }\n this.setState(prevState => {\n return {data: Object.assign({}, prevState.data, {numerIdentyfikacyjny: value})}\n });\n }\n\n handleSave = () => {\n this.setState(\n {savingOn: true, fetchError: ''},\n () => {\n const data = this.getData();\n const [isValid, errors] = validatePersonalData(data);\n if (isValid) {\n // save danePodmiotu on server\n this.xhrFetchSave = fetchApi(\n this.isNew ? '/api/users/economic-subject' : `/api/users/economic-subject/${this.state.data.id}`,\n this.isNew ? 'POST' : 'PUT',\n {},\n getSerializedObject(data, {toServer: true}),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors});\n }\n }\n );\n }\n\n handleFetchSaveSuccess = (data) => {\n this.xhrFetchSave = null;\n\n let data_ = Object.assign({}, this.state.data);\n if (this.isNew) {\n data_['id'] = data.economic_subject.id;\n }\n this.props.saveDanePodmiotu(data_);\n }\n\n handleFetchSaveError = (data) => {\n this.xhrFetchSave = null; // clean xhr object\n this.setState({\n savingOn: false,\n fetchError: `Nie udało się zapisać danych podmiotu. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrFetchSave = null; // clean xhr object\n\n this.setState({\n savingOn: false,\n fetchError: `Podczas zapisu danych podmiotu wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n // helpers\n\n getData() {\n const data = this.state.data;\n const adres = data.adres;\n return {\n nazwa: data.nazwa,\n typNumeruIdentyfikacyjnego: data.typNumeruIdentyfikacyjnego.value,\n numerIdentyfikacyjny: data.numerIdentyfikacyjny,\n rodzajAdresu: data.rodzajAdresu.value,\n adres: {\n kraj: data.adres.kraj,\n wojewodztwo: adres.wojewodztwo,\n powiat: adres.powiat,\n gmina: adres.gmina,\n miejscowosc: adres.miejscowosc,\n kodPocztowy: adres.kodPocztowy,\n ulica: adres.ulica,\n numerDomu: adres.numerDomu,\n },\n }\n }\n\n // rendering\n\n render() {\n return (\n { this.dialogComponent = c }}\n onClose={this.props.closeDanePodmiotuForm}\n >\n <>\n \n \n Anuluj\n \n Zapisz dane podmiotu\n \n \n {this.state.fetchError.length > 0 && {this.state.fetchError}}\n \n \n )\n }\n}\n\n\nexport { FormDanePodmiotu };\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { translateErrorMessage } from '../../../serializers';\nimport { validateOsobaDoKontaktu } from '../../../validators';\nimport {ButtonStyled, DialogCustom, FieldWithLabel, GridCustom, Text,\n TextFieldCustom } from '../../common';\n\n\nconst EMPTY_DATA = {\n id: null,\n imie: '',\n nazwisko: '',\n numerTelefonu: '',\n email: '',\n};\n\n\nclass FormOsobaDoKontaktu extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n savingOn: false,\n data: props.data !== null ? props.data : EMPTY_DATA,\n isNew: props.data === null,\n errors: {},\n fetchError: '',\n };\n\n this.dialogComponent = null;\n this.xhrFetchSave = null;\n }\n\n // basic functions\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetchSave !== null) {\n this.xhrFetchSave.abort();\n }\n }\n\n // handlers\n\n handleChangeAttribute = (name, value) => {\n this.setState(prevState => {\n let errors = Object.assign({}, prevState.errors);\n if (name === 'email') {\n delete errors[name];\n } else if (name === 'numerTelefonu') {\n value = value.replace(/[^\\d+ -]/, '');\n }\n return {data: Object.assign({}, prevState.data, {[name]: value}), errors}\n });\n }\n\n handlePasteNumerTelefonu = (ev) => {\n // stop data actually being pasted into input\n ev.stopPropagation();\n ev.preventDefault();\n\n // set pasted data via clipboard API\n const clipboardData = ev.clipboardData || window.clipboardData;\n const pastedData = clipboardData.getData('Text').replace(/[^\\d+ -]/g, '').trim();\n this.handleChangeAttribute('numerTelefonu', pastedData);\n }\n\n handleSave = () => {\n this.setState(\n {savingOn: true, fetchError: ''},\n () => {\n const [isValid, errors] = validateOsobaDoKontaktu(this.state.data);\n if (isValid) {\n const { data, isNew } = this.state;\n // save osobaDoKontaktu on server\n this.xhrFetchSave = fetchApi(\n isNew ? '/api/users/contact-persons' : `/api/users/contact-persons/${data.id}`,\n isNew ? 'POST' : 'PUT',\n {},\n {\n forename: data.imie,\n surname: data.nazwisko,\n phoneNumber: data.numerTelefonu,\n email: data.email,\n },\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors});\n }\n }\n );\n }\n\n handleFetchSaveSuccess = (data) => {\n this.xhrFetchSave = null;\n\n let data_ = Object.assign({}, this.state.data);\n if (this.state.isNew) {\n data_['id'] = data.contact_person.id;\n }\n this.props.saveOsobaDoKontaktu(data_, this.state.isNew);\n }\n\n handleFetchSaveError = (data) => {\n this.xhrFetchSave = null; // clean xhr object\n this.setState({\n savingOn: false,\n fetchError: `Nie udało się zapisać osoby do kontaktu. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrFetchSave = null; // clean xhr object\n\n this.setState({\n savingOn: false,\n fetchError: `Podczas zapisu osoby do kontaktu wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n // rendering\n\n render() {\n const {data, errors, fetchError, savingOn} = this.state;\n const isImieInvalid = (errors.imie || '').length > 0;\n const isNazwiskoInvalid = (errors.nazwisko || '').length > 0;\n const isEmailInvalid = (errors.email || '').length > 0;\n const isFormInvalid = isImieInvalid || isNazwiskoInvalid || isEmailInvalid;\n\n return (\n { this.dialogComponent = c }}\n onClose={this.props.closeOsobaDoKontaktuFormForm}\n >\n <>\n \n \n this.handleChangeAttribute('imie', ev.target.value)}\n onClear={(ev) => this.handleChangeAttribute('imie', '')} />\n {isImieInvalid && {errors.imie}}\n \n \n this.handleChangeAttribute('nazwisko', ev.target.value)}\n onClear={(ev) => this.handleChangeAttribute('nazwisko', '')} />\n {isNazwiskoInvalid && {errors.nazwisko}}\n \n \n \n \n this.handleChangeAttribute('numerTelefonu', ev.target.value)}\n onClear={(ev) => this.handleChangeAttribute('numerTelefonu', '')}\n onPaste={this.handlePasteNumerTelefonu} />\n \n \n this.handleChangeAttribute('email', ev.target.value)}\n onClear={(ev) => this.handleChangeAttribute('email', '')} />\n {isEmailInvalid && {errors.email}}\n \n \n \n Anuluj\n \n Zapisz osobę do kontaktu\n \n \n {fetchError.length > 0 && {fetchError}}\n {isFormInvalid && Formularz zawiera błędy.}\n \n \n )\n }\n}\n\n\nexport { FormOsobaDoKontaktu };\n","import React, { Component } from 'react';\n\nimport { USER_DATA_COOKIE_NAME } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { deleteCookie, getCookieValue } from '../../../helpers';\nimport { Message } from '../../common';\n\n\nclass Logowanie extends Component {\n\n constructor(props) {\n super(props);\n this.timeout = null;\n }\n\n componentWillUnmount() {\n // clear timeout\n if (this.timeout !== null) {\n clearTimeout(this.timeout);\n }\n }\n\n componentDidMount() {\n const cookie = getCookieValue(USER_DATA_COOKIE_NAME);\n if (cookie && cookie.length) {\n const userData = JSON.parse(atob(decodeURIComponent(cookie)));\n this.context.set(userData)\n deleteCookie(USER_DATA_COOKIE_NAME);\n }\n this.timeout = setTimeout(() => {\n this.redirectToCurrentPathname();\n }, 5000);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.user.identifier !== this.props.user.identifier && this.props.user.identifier === null) {\n this.redirectToCurrentPathname();\n }\n }\n\n // helpers\n\n redirectToCurrentPathname() {\n let currentPathname = sessionStorage.getItem('currentPathname') || '/';\n if (currentPathname === '/blad-logowania') {\n currentPathname = '/';\n }\n this.props.history.push(currentPathname);\n }\n\n // rendering\n\n render() {\n return (\n \n Następuje powrót do poprzedniej strony.\n \n )\n }\n}\n\nLogowanie.contextType = UserContext;\n\n\nexport { Logowanie };\n","import {hasPerspectiveInstitutions, hasPerspectiveRegions} from './helpers';\n\n\nexport const getPermissionsValuesDict = (defaultDict, keyName, value) => {\n let dct = {};\n for (let key of Object.keys(defaultDict[keyName])) {\n dct[key] = value;\n }\n return {[keyName]: dct}\n};\n\nexport const checkSinglePermission = (prevChecks, parent, child, value) => {\n // check as mark, not check as check if value is equal to something\n return {\n [parent]: {\n ...prevChecks[parent],\n [child]: value,\n },\n }\n};\n\nexport const getPermissionErrors = (errors) => {\n return (errors.permission || {}).decisions || []\n};\n\nexport const getGroupChecked = (checks, name) => {\n const permissions = checks[name] || {};\n if (!Object.keys(permissions).length) {\n return false\n }\n return !Object.values(permissions).includes(false)\n};\n\nexport const getGroupIndeterminate = (checks, name) => {\n const values = Object.values(checks[name]);\n return values.includes(false) && values.includes(true)\n};\n\nexport const getMainGroupIndeterminate = (checks) => {\n let values = [];\n for (let group of Object.values(checks)) {\n values = [...values, ...Object.values(group)];\n }\n return values.includes(false) && values.includes(true)\n};\n\nexport const getGrantedPermissionsForGroup = (permissions) => {\n if (!permissions) { return false }\n return Object.entries(permissions).filter(\n ([_, value]) => value === true).map(([name, _]) => name)\n};\n\nconst PERMISSIONS_NAMES_DICT = {\n all: 'Wszystkie uprawnienia',\n usersAdministration: 'Funkcjonalność',\n previewListUsers: 'Podgląd listy użytkowników',\n blockingUsers: 'Blokowanie użytkowników',\n contentAdministration: 'Funkcjonalność',\n generalContentCookiesRegulation: 'Treści ogólne, cookies i regulamin',\n statements: 'Komunikaty',\n help: 'Pomoc',\n projectsEnrollmentsAdministration: 'Projekty i nabory',\n searchNPreviewData: 'Wyszukiwanie i podgląd danych',\n editData: 'Edycja danych',\n advertisementAdministration: 'Ogłoszenia',\n blocking: 'Blokowanie i odblokowywanie',\n permissionsAdministration: 'Zarządzanie uprawnieniami',\n previewListUsersAuthorized: 'Podgląd listy uprawnionych użytkowników',\n functionalityManagement: 'Dla funkcjonalności',\n functionalityManagementImplementationLevel: 'Dla projektów i naborów oraz ogłoszeń',\n permissionsManagement: 'Dla zarządzania uprawnieniami',\n implementationLevelsDictionaryAdministration: 'Funkcjonalność',\n previewData: 'Podgląd danych',\n};\n\nexport const translatePermissionName = (name) => {\n return PERMISSIONS_NAMES_DICT[name] || name\n};\n\nconst getPerspectiveLabel_ = (perspective) => {\n // if perspective is set, add it to string - it may be needed for key prop\n return perspective ? `${perspective.id || ''}.` : ''\n}\n\nconst getRegionCode = (programme, priority, activity, region, perspective=null) => {\n return `${getPerspectiveLabel_(perspective)}${programme.code || ''}.${priority.code || ''}.${activity.code || ''}-${region.code || ''}`\n};\n\nconst getInstitutionCode = (programme, priority, activity, institution, perspective=null) => {\n return `${getPerspectiveLabel_(perspective)}${programme.code || ''}.${priority.code || ''}.${activity.code || ''}-${institution.code || ''}`\n};\n\nexport const getActivityCode = (programme, priority, activity, perspective=null) => {\n return `${getPerspectiveLabel_(perspective)}${programme.code || ''}.${priority.code || ''}.${activity.code || ''}`\n};\n\nconst getPriorityCode = (programme, priority, perspective=null) => {\n return `${getPerspectiveLabel_(perspective)}${programme.code || ''}.${priority.code || ''}`\n};\n\nexport const getRegionOrInstitutionCode = (\n programme, priority, activity, region, institution, perspective=null\n) => {\n if (region) {\n return getRegionCode(\n programme, priority, activity, region, perspective)\n }\n if (institution) {\n return getInstitutionCode(\n programme, priority, activity, institution, perspective)\n }\n // maybe there is neither region nor institution, then get activity code\n return getActivityCode(programme, priority, activity, perspective)\n};\n\nexport const getImplementationLevelLabels = (permission) => {\n const emptyData = {\n code: null,\n name: null,\n description: null,\n };\n if (!permission.programme) {\n return emptyData\n }\n const { programme } = permission;\n if (!permission.priority) {\n return {\n code: programme.code || '',\n name: programme.name || '',\n description: 'Wszystkie osie',\n }\n }\n const { priority } = permission;\n if (!permission.activity) {\n return {\n code: getPriorityCode(programme, priority),\n name: priority.name || '',\n description: 'Wszystkie działania',\n }\n }\n const { activity } = permission;\n if (!permission.region && !permission.institution) {\n return {\n code: getActivityCode(programme, priority, activity),\n name: activity.name || '',\n description: hasPerspectiveRegions(permission.perspective)\n ? 'Wszystkie regiony'\n : hasPerspectiveInstitutions(permission.perspective)\n ? 'Wszystkie instytucje' : '',\n }\n }\n\n const { institution, region } = permission;\n if (!institution) {\n return {\n code: getRegionCode(programme, priority, activity, region),\n name: region.name || '',\n description: '',\n }\n }\n return {\n code: getInstitutionCode(programme, priority, activity, institution),\n name: institution.name || '',\n description: '',\n }\n};\n\nexport const sortKeysList = (list, sortList) => {\n list.sort((value1, value2) => {\n return sortList.indexOf(value1[0]) - sortList.indexOf(value2[0])\n });\n return list\n};\n\nexport const PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT = {\n usersAdministration: 'Lista użytkowników',\n implementationLevelsDictionaryAdministration:\n 'Zarządzanie słownikami poziomów wdrożenia',\n contentAdministration: 'Zarządzanie treścią',\n};\n\nexport const getPermissionHistoryUsersTitle = (permission, isHistory) => {\n if (permission.isImplementationLevelType) {\n const {\n programme = null,\n priority = null,\n activity = null,\n institution = null,\n region = null\n } = permission.permission;\n\n if ([programme, priority, activity, region || institution].every(el => el !== null)) {\n const isRegion = region !== null;\n const levelSuffix = isRegion ? 'regionu' : 'instytucji';\n return `${isHistory\n ? `Historia zmian dla ${levelSuffix}`\n : `Lista użytkowników z uprawnieniami do ${levelSuffix}`\n } ${isRegion\n ? `${getRegionCode(programme, priority, activity, region)} ${region.name}`\n : `${getInstitutionCode(programme, priority, activity, institution)} ${institution.name}`\n }`\n }\n if ([programme, priority, activity].every(el => el !== null)) {\n return `${isHistory\n ? 'Historia zmian dla działania'\n : 'Lista użytkowników z uprawnieniami do działania'\n } ${getActivityCode(programme, priority, activity)} ${activity.name}`\n }\n if ([programme, priority].every(el => el !== null)) {\n return `${isHistory\n ? 'Historia zmian dla osi'\n : 'Lista użytkowników z uprawnieniami do osi'\n } ${getPriorityCode(programme, priority)} ${priority.name}`\n }\n if (programme !== null) {\n return `${isHistory\n ? 'Historia zmian dla'\n : 'Lista użytkowników z uprawnieniami do'\n } programu ${programme.code || ''} ${programme.name}`\n }\n return `${isHistory\n ? 'Historia zmian'\n : 'Lista użytkowników'\n } - stało się coś nieoczekiwanego`\n }\n return `${isHistory\n ? 'Historia zmian'\n : 'Lista użytkowników'\n } dla uprawnienia ${PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[permission.permission.type]}`\n};\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { checkHasNext, checkHasPrev } from '../../../helpers';\nimport {\n getRegionOrInstitutionCode,\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT\n} from '../../../helpers_permissions';\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled,\n Container,\n GridCustom,\n Loader,\n Pagination,\n TableCustom,\n Text\n} from '../../common';\n\n\nconst PAGINATED_BY = 20;\n\n\nexport const PermissionList = ({\n additionalFetchData = {},\n hideAddPermissionButtonIfFullList = false,\n initialRequestId = 1,\n isImplementationLevelType,\n requestId = 1,\n RowComponent,\n tableHeaderList,\n title,\n url,\n withHistory,\n onOpenForm,\n onOpenHistory,\n ...props\n}) => {\n const [initializingOn, setInitializingOn] = useState(true);\n const [pageNumber, setPageNumber] = useState(1);\n const [fetchError, setFetchError] = useState(null);\n const [data, setData] = useState(null);\n const [is403error, setIs403error] = useState(false);\n\n useEffect(() => {\n if (requestId === initialRequestId) { return }\n // clear pageNumber, because it's needed to change if useEffect below could run\n setPageNumber(null);\n }, [initialRequestId, requestId]);\n\n useEffect(() => {\n if (pageNumber === null) {\n // set pageNumber to 1, it should't be empty\n setPageNumber(1);\n return\n }\n let xhrFetch = null;\n\n function sortContentUsersPermissions(p1, p2) {\n return PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[p1.type].localeCompare(\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[p2.type], 'pl')\n }\n\n function callbackSuccess(data) {\n xhrFetch = null;\n const { total } = data.meta;\n const permissions = getSerializedObject(\n data, {mapToCamelCaseName: true}).permissions;\n setData({\n permissions: isImplementationLevelType\n ? permissions || []\n : Object.entries(permissions)\n .map(([type, data]) => ({...data, type}))\n .sort(sortContentUsersPermissions),\n total: total,\n hasPrev: checkHasPrev(pageNumber),\n hasNext: checkHasNext(PAGINATED_BY, pageNumber, total),\n });\n setInitializingOn(false);\n }\n\n function callbackFetchError(message) {\n xhrFetch = null;\n setFetchError(message);\n setInitializingOn(false);\n }\n\n function callbackError(data) {\n callbackFetchError(\n `Nie udało się pobrać listy uprawnień. ${translateErrorMessage(data.message)}`);\n }\n\n function callbackIncorrectStatus(status) {\n if (status === 403) {\n callbackFetchError(\n 'Nie masz uprawnień do pobrania listy uprawnień.');\n setIs403error(true);\n return\n }\n callbackFetchError(\n `Nie udało się pobrać listy uprawnień. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n }\n\n setInitializingOn(true);\n setFetchError(null);\n xhrFetch = fetchApi(\n url, 'GET', {}, {\n limit: PAGINATED_BY,\n page: pageNumber,\n ...additionalFetchData\n },\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }, [additionalFetchData, isImplementationLevelType, pageNumber, url]);\n\n function handleChangePage(next=true) {\n setPageNumber(prev => next ? prev + 1 : Math.max(prev -1, 1));\n }\n\n const { permissions } = useContext(UserContext);\n\n let hideAddAdministrationPermissionButton = false;\n if (!!data) {\n if (isImplementationLevelType) {\n hideAddAdministrationPermissionButton =\n !permissions.addImplementationLevelPermission;\n } else {\n const permissionsNames = [\n 'contentAdministration',\n 'implementationLevelsDictionaryAdministration',\n 'usersAdministration'\n ];\n if (hideAddPermissionButtonIfFullList) {\n // check if permission list is full\n const setPermissions = data.permissions.map(perm => perm.type);\n let permissionsToSet = [];\n for (let permissionName of permissionsNames) {\n if (!setPermissions.includes(permissionName)) {\n permissionsToSet.push(permissionName);\n }\n }\n if (!permissionsToSet.length) {\n hideAddAdministrationPermissionButton = true;\n }\n } else {\n // check if at least one permission is set\n const mapDict = {\n contentAdministration: 'contentPermissionsManagement',\n implementationLevelsDictionaryAdministration:\n 'implementationLevelsDictionaryPermissionsManagement',\n usersAdministration: 'usersPermissionsManagement',\n };\n let notSetPermissionsValues = [];\n for (let permissionName of permissionsNames) {\n notSetPermissionsValues = [\n ...notSetPermissionsValues,\n ...Object.values(permissions[mapDict[permissionName]])\n ];\n }\n hideAddAdministrationPermissionButton =\n !notSetPermissionsValues.includes(true);\n }\n }\n }\n\n return (\n \n \n {title}\n {withHistory && !is403error && (\n \n \n Historia zmian\n \n \n )}\n \n {initializingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n <>\n {data.total === 0\n ? Brak uprawnień\n : (\n \n {data.permissions.map(object => (\n \n ))}\n \n )\n }\n {data.total > PAGINATED_BY && (\n \n )}\n \n )\n )\n }\n {!hideAddAdministrationPermissionButton && !is403error && (\n {\n onOpenForm();\n e.currentTarget.blur();\n }}>\n Dodaj uprawnienia\n \n )}\n \n )\n};\n","import React from 'react';\n\nimport { ButtonStyled, MoreOptionsButton } from '../../common';\n\n\nexport const PermissionsMoreOptionButton = ({\n onOpenHistory, onOpenUserList\n}) => {\n return (\n \n
      \n
    • \n \n Lista użytkowników\n \n
    • \n
    • \n \n Historia zmian\n \n
    • \n
    \n \n)\n};\n\n","import React, { Fragment, useEffect, useState } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { translateErrorMessage } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { Button } from '@rmwc/button';\nimport { LoaderIcon, Text } from '../../common';\nimport { PermissionsMoreOptionButton } from './PermissionsMoreOptionButton';\n\n\nconst OBJECT_TYPE_DICT = {\n programme: {\n buttonLabel: 'osi',\n dataObjectName: 'priorities',\n url: API_URLS.priorities,\n },\n priority: {\n buttonLabel: 'działań',\n dataObjectName: 'activities',\n url: API_URLS.activities,\n },\n subactivity: {\n buttonLabel: 'regionów',\n dataObjectName: 'regions',\n url: API_URLS.regions,\n },\n activity: {\n buttonLabel: 'instytucji',\n dataObjectName: 'institutions',\n url: API_URLS.institutions,\n },\n}\n\n\nexport const PermissionListImplementationLevelCellProgrammePriorityActivity = ({\n fullPermission,\n hasRegions,\n object,\n objectType,\n onSetActiveHistoryPermission,\n onSetActiveUsersPermission, ...props\n}) => {\n const [initializationOn, setInitializationOn] = useState(true);\n const [isOpen, setIsOpen] = useState(false);\n const [subObjects, setSubObjects] = useState(null);\n const [fetchError, setFetchError] = useState(null);\n\n const typeDict = OBJECT_TYPE_DICT[objectType];\n\n useEffect(() => {\n setFetchError(null);\n if (!isOpen || subObjects !== null) { return }\n setInitializationOn(true);\n\n function callbackSuccess(data) {\n xhrFetch = null;\n setSubObjects(data[typeDict.dataObjectName]);\n setInitializationOn(false);\n }\n\n function callbackError(data) {\n xhrFetch = null;\n setFetchError(\n `Nie udało się pobrać danych. ${translateErrorMessage(data.message)}`\n );\n setInitializationOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n setFetchError(\n `Nie udało się pobrać danych. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n setInitializationOn(false);\n }\n\n let xhrFetch = fetchApi(\n typeDict.url.getUrl(object.id), 'GET', {}, {},\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }, [isOpen, object.id, subObjects, typeDict]);\n\n const permissionForActionDict = {\n isImplementationLevelType: true,\n permission: fullPermission\n };\n return (\n <>\n
    \n onSetActiveHistoryPermission(\n permissionForActionDict\n )}\n onOpenUserList={() => onSetActiveUsersPermission(\n permissionForActionDict\n )} />\n {object.code} {object.name}\n {isOpen\n ? (\n setIsOpen(false)}\n />\n )\n : (\n setIsOpen(true)}\n />\n )\n }\n \n
    \n {isOpen && (\n
    \n {initializationOn\n ? \n : (\n <>\n {subObjects !== null && subObjects.map(obj => (\n \n {objectType === 'programme' && (\n \n )}\n {objectType === 'priority' && (\n \n )}\n {['activity', 'subactivity'].includes(objectType) && (\n
    \n onSetActiveHistoryPermission({\n isImplementationLevelType: true,\n permission: {\n ...fullPermission,\n [objectType === 'activity' ? 'institution' : 'region']: obj\n }\n })}\n onOpenUserList={() => onSetActiveUsersPermission({\n isImplementationLevelType: true,\n permission: {\n ...fullPermission,\n [objectType === 'activity' ? 'institution' : 'region']: obj\n }\n })}\n />\n {obj.code} {obj.name}\n
    \n )}\n
    \n ))}\n {subObjects !== null && !subObjects.length && Lista jest pusta.}\n {fetchError !== null && {fetchError}}\n \n )\n }\n
    \n )} \n \n )\n};\n","import React from 'react';\n\nimport { hasPerspectiveRegions } from '../../../helpers';\nimport { Text } from '../../common';\nimport {\n PermissionListImplementationLevelCellProgrammePriorityActivity\n} from './PermissionListImplementationLevelCellProgrammePriorityActivity';\nimport { PermissionsMoreOptionButton } from './PermissionsMoreOptionButton';\n\n\nexport const PermissionListImplementationLevelCell = ({\n permission, onSetActiveHistoryPermission, onSetActiveUsersPermission\n}) => {\n const {\n perspective = null,\n programme = null,\n priority = null,\n activity = null,\n institution = null,\n region = null\n } = permission;\n\n const hasRegions = hasPerspectiveRegions(perspective);\n const theLowestLevel = hasRegions ? region : institution;\n\n // region/institution level\n if ([programme, priority, activity, theLowestLevel].every(el => el !== null)) {\n const permissionForActionDict = {\n isImplementationLevelType: true,\n permission: {\n perspective,\n programme,\n priority,\n activity,\n [hasRegions ? 'region' : 'institution']: theLowestLevel\n },\n };\n return (\n <>\n {programme.code} {programme.name}\n
    \n \n {priority.code} {priority.name}\n \n
    \n
    \n \n {activity.code} {activity.name}\n \n
    \n
    \n onSetActiveHistoryPermission(\n permissionForActionDict)}\n onOpenUserList={() => onSetActiveUsersPermission(\n permissionForActionDict)} />\n \n {theLowestLevel.code} {theLowestLevel.name}\n \n
    \n \n )\n }\n\n // activity level\n if (\n [programme, priority, activity].every(el => el !== null) &&\n theLowestLevel === null\n ) {\n return (\n <>\n {programme.code} {programme.name}\n \n \n )\n }\n\n // priority level\n if (\n [programme, priority].every(el => el !== null) &&\n [activity, theLowestLevel].every(el => el === null)\n ) {\n return (\n <>\n {programme.code} {programme.name}\n \n \n )\n }\n\n // programme level\n if (\n programme !== null &&\n [priority, activity, theLowestLevel].every(el => el === null)\n ) {\n return (\n \n )\n }\n return null\n};\n","import React from 'react';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\n\nimport {\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT,\n translatePermissionName\n} from '../../../helpers_permissions';\nimport { Text } from '../../common';\nimport {\n PermissionListImplementationLevelCell\n} from './PermissionListImplementationLevelCell';\nimport { PermissionsMoreOptionButton } from './PermissionsMoreOptionButton';\n\n\nexport const PermissionListRow = ({\n isImplementationLevelType, permission, onSetActiveHistoryPermission,\n onSetActiveUsersPermission\n}) => {\n\n const permissions = (\n permission.permissions || {}).permissionsAdministration || {};\n const permissionForActionDict = {\n isImplementationLevelType: false,\n permission: {type: permission.type},\n };\n return (\n \n \n {isImplementationLevelType\n ? \n : (\n
    \n onSetActiveHistoryPermission(\n permissionForActionDict\n )}\n onOpenUserList={() => onSetActiveUsersPermission(\n permissionForActionDict\n )} />\n {PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[permission.type]}\n
    \n )\n }\n
    \n \n {(permissions.previewListUsersAuthorized || false) &&\n \n {translatePermissionName('previewListUsersAuthorized')}\n \n }\n {(permissions.functionalityManagement || false) &&\n \n {translatePermissionName(\n isImplementationLevelType\n ? 'functionalityManagementImplementationLevel'\n : 'functionalityManagement'\n )}\n \n }\n {(permissions.permissionsManagement || false) &&\n \n {translatePermissionName('permissionsManagement')}\n \n }\n \n
    \n )\n};\n","import React from 'react';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\n\nimport {\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT\n} from '../../../helpers_permissions';\n\n\nconst OPERATION_TYPE_SERIALIZERS = {\n permissionsDenied: 'Odebrano uprawnienia',\n permissionsGranted: 'Przyznano uprawnienia',\n permissionsModified: 'Zmieniono zakres uprawnień',\n};\n\n\nexport const PermissionsHistoryListRow = ({\n event, isImplementationLevelType, mode\n}) => {\n return (\n \n {event.addedAt || ''}\n \n {mode === 'userHistory'\n ? isImplementationLevelType\n ? event.implementationLevelName\n : (PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[event.context] ||\n event.context)\n : event.authorizedUserEmail\n }\n \n \n {OPERATION_TYPE_SERIALIZERS[event.operationType] ||\n event.operationType}\n \n {(event.addedBy || {}).email || ''}\n \n )\n};\n","import React, { useEffect, useRef, useState } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { checkHasNext, checkHasPrev, dateToString } from '../../../helpers';\nimport {\n getSerializedObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled,\n DateCalendar,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Loader,\n Pagination,\n TableCustom,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { PermissionsHistoryListRow } from './PermissionsHistoryListRow';\n\n\nconst PAGINATED_BY = 20;\n\n\nexport const PermissionsHistory = ({dialogTitle = '', ...props}) => {\n const [initializingOn, setInitializingOn] = useState(true);\n const [requestId, setRequestId] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const [fetchError, setFetchError] = useState(null);\n const [filters, setFilters] = useState({\n addedAtFrom: '',\n addedAtTo: '',\n addedByEmail: '',\n });\n const [data, setData] = useState(null);\n const [isPickerOpen, setIsPickerOpen] = useState(false);\n\n useEffect(() => {\n setRequestId(1);\n }, []);\n\n useEffect(() => {\n setRequestId(prevValue => prevValue + 1);\n }, [pageNumber]);\n\n function getHistory() {\n if (requestId === null) { return }\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n const { total } = data.meta;\n setData({\n events: getSerializedObject(\n data, {mapToCamelCaseName: true}).permissionsHistory || [],\n total: total,\n hasPrev: checkHasPrev(pageNumber),\n hasNext: checkHasNext(PAGINATED_BY, pageNumber, total),\n });\n setInitializingOn(false);\n }\n\n function callbackFetchError(message) {\n xhrFetch = null;\n setFetchError(message);\n setInitializingOn(false);\n }\n\n function callbackError(data) {\n callbackFetchError(\n `Nie udało się pobrać historii uprawnień. ${translateErrorMessage(data.message)}`\n );\n }\n\n function callbackIncorrectStatus(status) {\n callbackFetchError(status === 403\n ? 'Nie masz uprawnień do przeglądania historii.'\n : `Nie udało się pobrać historii uprawnień. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n }\n\n setInitializingOn(true);\n setFetchError(null);\n xhrFetch = fetchApi(\n props.url, 'GET', {}, {\n authorized: props.userId, limit: PAGINATED_BY,\n page: pageNumber, ...filters,\n ...(props.additionalFetchData || {})\n },\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(getHistory, [requestId, ]);\n\n function handleChangeFilter(name, value) {\n setFilters(prevValue => ({...filters, [name]: value}));\n }\n\n function handleChangePage(next=true) {\n setPageNumber(prev => next ? prev + 1 : Math.max(prev -1, 1));\n }\n\n function handleCalendarOpen() {\n setIsPickerOpen(true)\n }\n\n function handleCalendarClose() {\n setIsPickerOpen(false)\n }\n\n function handleEscPress(event) {\n if (event.keyCode === 27) {\n if (isPickerOpen) {\n event.nativeEvent.stopImmediatePropagation();\n } else {\n props.onClose();\n }\n }\n }\n\n const addedAtFromRef = useRef();\n const addedAtToRef = useRef();\n const addedAtFrom = !!filters.addedAtFrom\n ? new Date(filters.addedAtFrom)\n : '';\n const addedAtTo = !!filters.addedAtTo ? new Date(filters.addedAtTo) : '';\n\n return (\n \n Zakres historii\n \n {/* Empty div for WCAG purpose: prevents autofocus of the first calendar field */}\n
    \n \n handleChangeFilter('addedAtFrom', dateToString(date))} />\n \n \n handleChangeFilter('addedAtTo', dateToString(date))} />\n \n \n handleChangeFilter('addedByEmail', ev.target.value)}\n onClear={ev => handleChangeFilter('addedByEmail', '')} />\n \n {\n if (pageNumber > 1) {\n setPageNumber(1);\n } else {\n setRequestId(prevValue => prevValue + 1)\n }\n }}>\n Filtruj\n \n
    \n {initializingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n <>\n {data.total === 0\n ? Historia jest pusta\n : (\n \n {data.events.map(event => (\n \n ))}\n \n )\n }\n {data.total > PAGINATED_BY && (\n \n )}\n \n )\n )\n }\n \n \n Zamknij\n \n \n \n )\n};\n","import React, { Fragment } from 'react';\n\nimport {\n getGrantedPermissionsForGroup,\n getGroupChecked,\n translatePermissionName\n} from '../../../helpers_permissions';\nimport { Text } from '../../common';\n\n\nexport const UserPermissionsListGrantedCell = ({\n groupNameList, isImplementationLevelType, permissions\n}) => {\n return (\n <>\n {groupNameList.map(groupName => {\n if (getGroupChecked(permissions, groupName)) {\n return (\n \n {translatePermissionName(groupName)} - pełne uprawnienia\n \n )\n }\n\n const groupGranted = getGrantedPermissionsForGroup(\n permissions[groupName]);\n if (!groupGranted.length) { return null }\n\n return (\n \n {translatePermissionName(groupName)}\n {groupGranted.map(permissionName => (\n \n {translatePermissionName(\n isImplementationLevelType && permissionName === 'functionalityManagement'\n ? 'functionalityManagementImplementationLevel'\n : permissionName\n )}\n \n ))}\n \n )\n })}\n \n )\n};\n","/*\n\n \n Lista użytkowników\n EFGH - 01 Nazwa osi priorytetowej\n Wszystkie działania\n \n \n Funkcjonalność - pełne uprawnienia\n Zarządzanie uprawnieniami\n Podgląd listy uprawnionych użytkowników\n Dla projektów i naborów\n \n\n*/\n\nimport React from 'react';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\n\nimport {\n getImplementationLevelLabels,\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT\n} from '../../../helpers_permissions';\nimport { ButtonStyled, Text } from '../../common';\nimport { UserPermissionsListGrantedCell } from './UserPermissionsListGrantedCell';\n\n\nexport const UserPermissionsListRow = ({\n isImplementationLevelType, mode = 'permissionData', permission,\n onSetEditedPermission, onSetRemovedPermission\n}) => {\n /* possible modes:\n permissionData - set the first cell as permission name\n userData - set the first cell as user data (full name and email)\n */\n let implementationLevelLabels = {};\n if (mode==='permissionData' && isImplementationLevelType) {\n implementationLevelLabels = getImplementationLevelLabels(permission);\n }\n\n const { authorized: user = {} } = permission;\n return (\n \n \n {mode === 'permissionData' && isImplementationLevelType\n ? (\n <>\n \n {implementationLevelLabels.code} {implementationLevelLabels.name}\n \n {implementationLevelLabels.description.length > 0 && (\n \n {implementationLevelLabels.description}\n \n )}\n \n )\n : {PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[permission.type]}\n }\n {mode === 'userData' && (\n <>\n {user.forename || ''} {user.surname || ''}\n {user.email || ''}\n \n )}\n \n \n {isImplementationLevelType\n ? \n : \n }\n \n \n {mode === 'userData' && permission.hasHigherLevelPermissions\n ? Użytkownik ma uprawnienia wyższego poziomu\n : (\n <>\n {permission.canEdit && (\n onSetEditedPermission(\n isImplementationLevelType, permission)}\n >\n Edytuj\n \n )}\n {permission.canDelete && (\n onSetRemovedPermission(\n isImplementationLevelType, permission\n )}>\n Usuń\n \n )}\n \n )\n }\n \n \n )\n};\n","import React, { useEffect, useState } from 'react';\nimport { TabBar, Tab } from '@rmwc/tabs';\n\nimport { fetchApi } from '../../../fetch';\nimport { checkHasNext, checkHasPrev } from '../../../helpers';\nimport {\n getSerializedObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled,\n GridCustom,\n Loader,\n Pagination,\n TableCustom,\n Text\n} from '../../common';\nimport { UserPermissionsListRow } from './UserPermissionsListRow';\n\n\nconst PAGINATED_BY = 20;\nconst TAB_INDEXES = {\n direct: 0,\n inherited: 1,\n};\nconst REVERTED_TAB_INDEXES = {\n 0: 'direct',\n 1: 'inherited',\n};\n\n\nfunction getRowKey(objectData, isImplementationLevelType) {\n if (!isImplementationLevelType) {\n return objectData.authorized.id\n }\n let key = objectData.authorized.id;\n for (let implementationLevelName of [\n 'programme', 'priority', 'activity', 'region', 'institution'\n ]) {\n if (objectData[implementationLevelName]?.id) {\n key += `_${objectData[implementationLevelName].id}`;\n }\n }\n return key\n}\n\n\nexport const PermissionUsers = ({\n activeUsersPermission, isImplementationLevelType, onClose, ...props\n}) => {\n const [initializingOn, setInitializingOn] = useState(true)\n const [pageNumber, setPageNumber] = useState(1)\n const [fetchError, setFetchError] = useState(null)\n const [data, setData] = useState(null)\n const [selectedTab, setSelectedTab] = useState(TAB_INDEXES.direct);\n\n function getUsers() {\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n const { total } = data.meta;\n setData({\n permissions: getSerializedObject(\n data, {mapToCamelCaseName: true}).permissions || [],\n total: total,\n hasPrev: checkHasPrev(pageNumber),\n hasNext: checkHasNext(PAGINATED_BY, pageNumber, total),\n });\n setInitializingOn(false);\n }\n\n function callbackFetchError(message) {\n xhrFetch = null;\n setFetchError(message);\n setInitializingOn(false);\n }\n\n function callbackError(data) {\n callbackFetchError(\n `Nie udało się pobrać listy użytkowników. ${translateErrorMessage(data.message)}`\n );\n }\n\n function callbackIncorrectStatus(status) {\n callbackFetchError(status === 403\n ? `Nie masz uprawnień do przeglądania listy użytkowników dla tego ${isImplementationLevelType ? 'poziomu wdrożenia' : 'uprawnienia'}.`\n : `Nie udało się pobrać listy użytkowników. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n }\n\n setInitializingOn(true);\n setFetchError(null);\n xhrFetch = fetchApi(\n props.url, 'GET', {}, {\n limit: PAGINATED_BY,\n page: pageNumber,\n ...(props.additionalFetchData || {}),\n ...(isImplementationLevelType\n ? {listType: REVERTED_TAB_INDEXES[selectedTab]}\n : {}\n ),\n },\n callbackSuccess, callbackError, callbackIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(getUsers, [pageNumber, selectedTab]);\n\n function handleChangePage(next=true) {\n setPageNumber(prev => next ? prev + 1 : Math.max(prev -1, 1));\n }\n\n function handleChangeTab(ev) {\n setPageNumber(1);\n setSelectedTab(ev.detail.index);\n }\n\n return (\n <>\n {isImplementationLevelType &&\n activeUsersPermission.permission.priority &&\n (\n \n \n \n \n )\n }\n {initializingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n <>\n {data.total === 0\n ? Lista użytkowników jest pusta\n : (\n \n {data.permissions.map(object => (\n \n ))}\n \n )\n }\n {data.total > PAGINATED_BY && (\n \n )}\n \n )\n )\n }\n \n \n Zamknij\n \n \n \n )\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedErrorsFromServer,\n translateErrorMessage\n} from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n CancelSaveButtonsRow,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom\n} from '../../common';\n\n\nconst ADD_PERMISSION_MODE_CONTEXTS = {\n administration: ['contentAdministration', 'usersAdministration'],\n implementationLevel: ['adProjectEnrollmentAdministration'],\n}\n\n\nexport const SearchUserForm = ({addPermissionMode, ...props}) => {\n const [searchingOn, setSearchingOn] = useState(false);\n const [fetchError, setFetchError] = useState(null);\n const [errors, setErrors] = useState({});\n const [email, setEmail] = useState('');\n const [identifier, setIdentifier] = useState('');\n\n function save() {\n if (!searchingOn) { return }\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n props.onFindUser(data.user || null);\n }\n\n function callbackFetchError(message) {\n xhrFetch = null;\n setFetchError(`Nie udało się wyszukać użytkownika. ${message}`);\n setSearchingOn(false);\n }\n\n function callbackError(data) {\n callbackFetchError(translateErrorMessage(data.message));\n }\n\n function callbackIncorrectStatus(status) {\n let message = '';\n switch (status) {\n case 403:\n message = `Nie masz uprawnień do nadawania uprawnień w obszarze ${addPermissionMode === 'administration'\n ? 'Administracji'\n : 'Poziomów wdrożenia'\n }.`;\n break;\n case 404:\n message = 'Użytkownik o podanych danych nie istnieje.';\n break;\n default:\n message = `Wystąpił nieoczekiwany błąd o kodzie ${status}.`;\n }\n callbackFetchError(message);\n }\n\n function callbackShowErrors(errors) {\n xhrFetch = null;\n setErrors(getSerializedErrorsFromServer(\n errors, {doNotTranslateNames: true}\n ));\n setSearchingOn(false);\n }\n\n setSearchingOn(true);\n setFetchError(null);\n setErrors({});\n let fetchData = {\n contexts: ADD_PERMISSION_MODE_CONTEXTS[addPermissionMode],\n };\n if (email.length) {\n fetchData['email'] = email;\n }\n if (identifier.length) {\n fetchData['identifier'] = identifier;\n }\n\n xhrFetch = fetchApi(\n API_URLS.usersFindUser.url, 'GET', {}, fetchData,\n callbackSuccess, callbackError, callbackIncorrectStatus,\n callbackShowErrors\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(save, [searchingOn]);\n\n const isEmailInvalid = (errors.email || []).length > 0;\n const isIdentifierInvalid = (errors.identifier || []).length > 0;\n\n return (\n <>\n Informacje o użytkowniku\n \n \n setEmail(ev.target.value)}\n onClear={ev => setEmail('')} />\n {isEmailInvalid &&\n
      \n {errors.email.map((e, i) =>\n {e}\n )}\n
    \n }\n \n \n setIdentifier(ev.target.value)}\n onClear={ev => setIdentifier('')} />\n {isIdentifierInvalid &&\n
      \n {errors.identifier.map((e, i) =>\n {e}\n )}\n
    \n }\n \n
    \n setSearchingOn(true)} />\n {fetchError !== null && {fetchError}}\n {(errors.allFields || []).length > 0 &&\n
      \n {errors.allFields.map((e, i) =>\n {e}\n )}\n
    \n }\n \n )\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { URLS } from '../../../urls/frontend';\nimport {\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\n\n\nexport const UserHeader = ({ user, withButtons = true }) => {\n return (\n <>\n \n \n {user.imie || user.forename} {user.nazwisko || user.surname}\n \n {withButtons && (\n \n \n Wróć do listy użytkowników\n \n \n Konto użytkownika\n \n \n )}\n \n \n \n {user.email}\n \n \n {user.identyfikator || user.identifier}\n \n \n \n )\n};\n","import React, { Fragment, useEffect, useState } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport {\n checkSinglePermission,\n getGroupChecked,\n getGroupIndeterminate,\n getMainGroupIndeterminate,\n getPermissionErrors,\n getPermissionsValuesDict,\n sortKeysList,\n translatePermissionName\n} from '../../../helpers_permissions';\nimport { usePutFormFetchApi } from '../../../hooks';\nimport {\n CancelSaveButtonsRow,\n FetchErrorWithOkayButton,\n FieldWithLabel,\n Text\n} from '../../common';\n\n\nexport const UserPermissionsFormCommonFields = ({\n additionalFetchData,\n checksSortDict,\n defaultChecksDict,\n disabled, disabledCancelButton, disabledSaveButton,\n editionModeOn,\n existingPermissionData,\n existsErrorOn, existsErrorLabel,\n isImplementationLevelType,\n permissions,\n saveUrl,\n savingOn,\n setAdditionalErrors,\n setEditionModeOn,\n setExistsErrorOn,\n userId,\n onCancel,\n onSavePermissionSuccess,\n onSetSavingOn\n}) => {\n const [checks, setChecks] = useState({...defaultChecksDict});\n\n additionalFetchData = additionalFetchData || {};\n\n const { fetchError, errors, saveBtnText } = usePutFormFetchApi({\n url: saveUrl,\n fetchData: {permission: {\n authorized: parseInt(userId),\n ...checks,\n ...additionalFetchData\n }},\n callbackSuccess: onSavePermissionSuccess,\n callbackObjectExists: () => setExistsErrorOn(true),\n loadingOn: savingOn,\n setLoadingOn: onSetSavingOn,\n method: editionModeOn ? 'PUT' : 'POST',\n defaultSaveBtnText: \"Zapisz uprawnienia\",\n doNotTranslateNames: true,\n message403error: 'Nie masz uprawnień do zapisu wybranych uprawnień. ' +\n 'Jeśli uważasz, że to pomyłka, odśwież stronę i spróbuj jeszcze raz.',\n });\n\n const additionalFetchDataValuesAsString = Object.values(\n additionalFetchData).join('');\n function updateExistErrorInParent() {\n setExistsErrorOn(false);\n }\n useEffect(updateExistErrorInParent, [additionalFetchDataValuesAsString]);\n\n function updateAdditionalErrorsInParent() {\n if (!setAdditionalErrors) { return }\n setAdditionalErrors(errors);\n }\n useEffect(updateAdditionalErrorsInParent, [errors]);\n\n function handleCheckAll(ev) {\n const checked = ev.target.checked;\n setChecks(prevValue => {\n let dct = {};\n for (let groupName of Object.keys(prevValue)) {\n dct = {\n ...dct,\n ...getPermissionsValuesDict(\n defaultChecksDict, groupName, checked),\n };\n }\n return dct\n });\n }\n\n function handleCheckGroup(ev, groupName) {\n const checked = ev.target.checked;\n setChecks(prevChecks => ({\n ...prevChecks,\n ...getPermissionsValuesDict(defaultChecksDict, groupName, checked),\n }));\n }\n\n function handleCheckSinglePermission(checked, parent, child) {\n setChecks(prevChecks => ({\n ...prevChecks,\n ...checkSinglePermission(prevChecks, parent, child, checked),\n }));\n }\n\n function handleLoadExistedPermissionData() {\n setChecks(existingPermissionData !== null\n ? existingPermissionData : defaultChecksDict\n );\n setExistsErrorOn(false);\n setEditionModeOn(true);\n }\n\n let groupCheckedValues = {};\n for (let groupName of Object.keys(checks)) {\n groupCheckedValues[groupName] = getGroupChecked(\n checks, groupName);\n }\n\n const permissionErrors = getPermissionErrors(errors);\n\n // These values say if checkboxes have to be disabled\n let functionalityDisabled = false;\n let permissionsDisabled = false;\n if (permissions) {\n functionalityDisabled = !permissions.functionality;\n permissionsDisabled = !permissions.permissions;\n }\n\n function checkDisabledGroup(groupName) {\n if (groupName === 'permissionsAdministration') {\n return permissionsDisabled\n }\n return functionalityDisabled\n }\n\n return (\n <>\n {existsErrorOn && !editionModeOn && (\n \n )}\n \n {permissionErrors.length > 0 && permissionErrors.map(\n (e, i) => {e}\n )}\n
    \n \n
    \n\n {sortKeysList(Object.entries(checks), checksSortDict.groups).map(\n ([groupName_, groupPermissions]) => {\n const groupDisabled = checkDisabledGroup(groupName_);\n return (\n \n
    \n handleCheckGroup(ev, groupName_)} />\n
    \n {sortKeysList(\n Object.entries(groupPermissions),\n checksSortDict[groupName_]\n ).map(\n ([permissionName_, permissionValue]) => (\n \n
    \n handleCheckSinglePermission(\n ev.target.checked, groupName_, permissionName_\n )} />\n
    \n
    \n ))}\n
    \n )\n }\n )}\n
    \n onSetSavingOn(true)} />\n {fetchError !== null && {fetchError}}\n {existsErrorOn && editionModeOn && (\n \n )}\n \n )\n};\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { useCheckPermissionExists } from '../../../hooks';\nimport { API_URLS } from '../../../urls/api';\nimport { customSelectStyles } from '../../vars/vars';\nimport { FieldWithLabel, Select, Text } from '../../common';\nimport {\n UserPermissionsFormCommonFields\n} from './UserPermissionsFormCommonFields';\n\n\nconst SCOPES = {\n users: {\n id: 0,\n label: 'Zarządzanie użytkownikami',\n permissionType: 'usersAdministration',\n },\n contents: {\n id: 1,\n label: 'Zarządzanie treściami',\n permissionType: 'contentAdministration',\n },\n dictionaries: {\n id: 2,\n label: 'Zarządzanie słownikami poziomów wdrożenia',\n permissionType: 'implementationLevelsDictionaryAdministration',\n },\n};\nconst SELECT_CHOICES = Object.values(SCOPES)\n .map(scope => [scope.id, scope.label, scope.permissionType])\n .sort((s1, s2) => s1.id < s2.id);\nconst DEFAULT_CHOICE = SELECT_CHOICES[0]\nconst USERS_ADMINISTRATION_DEFAULT_CHECKS_DICT = {\n usersAdministration: {\n previewListUsers: false,\n blockingUsers: false,\n },\n permissionsAdministration: {\n previewListUsersAuthorized: false,\n functionalityManagement: false,\n permissionsManagement: false,\n },\n};\nconst CONTENT_ADMINISTRATION_DEFAULT_CHECKS_DICT = {\n contentAdministration: {\n generalContentCookiesRegulation: false,\n statements: false,\n help: false,\n },\n permissionsAdministration: {\n previewListUsersAuthorized: false,\n functionalityManagement: false,\n permissionsManagement: false,\n },\n};\nconst IMPLEMENTATION_LEVELS_DICTIONARY_ADMINISTRATION_DEFAULT_CHECKS_DICT = {\n implementationLevelsDictionaryAdministration: {\n previewData: false,\n editData: false,\n },\n permissionsAdministration: {\n previewListUsersAuthorized: false,\n functionalityManagement: false,\n permissionsManagement: false,\n },\n};\nconst USERS_ADMINISTRATION_CHECKS_SORT_DICT = {\n groups: ['usersAdministration', 'permissionsAdministration'],\n usersAdministration: ['previewListUsers', 'blockingUsers'],\n permissionsAdministration: [\n 'previewListUsersAuthorized', 'functionalityManagement',\n 'permissionsManagement'\n ],\n};\nconst CONTENT_ADMINISTRATION_CHECKS_SORT_DICT = {\n groups: ['contentAdministration', 'permissionsAdministration'],\n contentAdministration: [\n 'generalContentCookiesRegulation', 'statements', 'help'],\n permissionsAdministration: [\n 'previewListUsersAuthorized', 'functionalityManagement',\n 'permissionsManagement'\n ],\n};\nconst IMPLEMENTATION_LEVELS_DICTIONARY_ADMINISTRATION_CHECKS_SORT_DICT = {\n groups: [\n 'implementationLevelsDictionaryAdministration',\n 'permissionsAdministration'\n ],\n implementationLevelsDictionaryAdministration: ['previewData', 'editData'],\n permissionsAdministration: [\n 'previewListUsersAuthorized', 'functionalityManagement',\n 'permissionsManagement'\n ],\n};\nconst EXISTS_ERROR_LABEL = 'Nazwę obszaru administracji';\n\n\nexport const UserPermissionsAdministrationForm = ({\n initialData = null, userId, onCancel, onSavePermissionSuccess\n}) => {\n const [editionModeOn, setEditionModeOn] = useState(initialData !== null);\n const [savingOn, setSavingOn] = useState(false);\n const [selectedScope, setSelectedScope] = useState(null);\n\n function setInitialSelectedScope() {\n // set correct scope\n if (editionModeOn) {\n for (let [id_, label_, permissionType_] of SELECT_CHOICES) {\n if (permissionType_ === initialData.type) {\n setSelectedScope({value:id_, label: label_});\n return\n }\n }\n }\n setSelectedScope({\n value: DEFAULT_CHOICE[0], label: DEFAULT_CHOICE[1]});\n }\n useEffect(setInitialSelectedScope, []);\n\n // this one is set if request for checkboxes values returns 403\n const [permissions403errorOn, setPermissions403errorOn] = useState(false);\n const [existsErrorOn, setExistsErrorOn] = useState(false);\n const [\n checkingExistedPermissionOn, setCheckingExistedPermissionOn\n ]= useState(false);\n\n function callbackSelectedScopeChanging() {\n if (selectedScope === null || editionModeOn) { return }\n setPermissions403errorOn(false);\n setCheckingExistedPermissionOn(true);\n }\n useEffect(callbackSelectedScopeChanging, [selectedScope]);\n\n const { existingPermissionData } = useCheckPermissionExists(\n checkingExistedPermissionOn, setCheckingExistedPermissionOn,\n selectedScope === null ? '' : (SCOPES.users.id === selectedScope.value\n ? API_URLS.usersPermissionsUsersDetails.path\n : SCOPES.contents.id === selectedScope.value\n ? API_URLS.usersPermissionsContentDetails.path\n : API_URLS.usersPermissionsDictionariesDetails.path\n ),\n {}, setExistsErrorOn, setPermissions403errorOn, userId\n );\n\n const { permissions } = useContext(UserContext);\n\n if (selectedScope === null) { return null }\n\n const disabledFields = savingOn || checkingExistedPermissionOn;\n const disabledSaveButton = disabledFields || permissions403errorOn;\n return (\n <>\n \n ({value: choice[0], label: choice[1]}))}\n screenReaderStatus={() => {return ''}}\n styles={customSelectStyles}\n value={selectedScope}\n onChange={selectedOption => setSelectedScope(selectedOption)} />\n \n {permissions403errorOn && (\n \n Nie masz uprawnień do nadawania uprawnień dla wybranego obszaru administracji. Zmień obszar administracji.\n \n )}\n {SCOPES.users.id === selectedScope.value && (\n \n )}\n {SCOPES.contents.id === selectedScope.value && (\n \n )}\n {SCOPES.dictionaries.id === selectedScope.value && (\n \n )}\n \n )\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { useCheckPermissionExists } from '../../../hooks';\nimport { API_URLS } from '../../../urls/api';\nimport { FieldWithLabel, Text } from '../../common';\nimport { ProjectNumberSelectsWithPerspectives } from '../common';\nimport {\n UserPermissionsFormCommonFields\n} from './UserPermissionsFormCommonFields';\nimport {\n hasPerspectiveInstitutions,\n hasPerspectiveRegions\n} from \"../../../helpers\";\n\n\nconst DEFAULT_CHECKS_DICT = {\n projectsEnrollmentsAdministration: {\n searchNPreviewData: false,\n editData: false,\n },\n advertisementAdministration: {\n searchNPreviewData: false,\n blocking: false,\n editData: false,\n },\n permissionsAdministration: {\n previewListUsersAuthorized: false,\n functionalityManagement: false,\n permissionsManagement: false,\n },\n};\n\nconst CHECKS_SORT_DICT = {\n groups: [\n 'projectsEnrollmentsAdministration',\n 'advertisementAdministration',\n 'permissionsAdministration'\n ],\n projectsEnrollmentsAdministration: ['searchNPreviewData', 'editData'],\n advertisementAdministration: [\n 'searchNPreviewData', 'blocking', 'editData'],\n permissionsAdministration: [\n 'previewListUsersAuthorized', 'functionalityManagement',\n 'permissionsManagement'\n ],\n};\n\n\nfunction serializeImplementationLevel(dataDict) {\n if (!dataDict) { return null } // it can be even 'undefined'\n\n // change id into value according to needed key for implementation level\n let dct = {...dataDict};\n dct['value'] = dct.id;\n delete dct['id'];\n return dct\n};\n\n\nexport const UserPermissionsImplementationLevelFields = ({\n initialData, perspectives, userId, onCancel, onSavePermissionSuccess\n}) => {\n const [editionModeOn, setEditionModeOn] = useState(initialData !== null);\n const [savingOn, setSavingOn] = useState(false);\n const [implementationLevels, setImplementationLevels] = useState(\n {\n perspective: null, programme: null, priority: null, activity: null,\n institution: null, region: null\n });\n const [\n implementationLevelsErrors, setImplementationLevelsErrors\n ] = useState({});\n\n useEffect(() => {\n if (!editionModeOn || !initialData) { return }\n // use initial data if edition mode\n setImplementationLevels({\n perspective: serializeImplementationLevel(initialData.perspective),\n programme: serializeImplementationLevel(initialData.programme),\n priority: serializeImplementationLevel(initialData.priority),\n activity: serializeImplementationLevel(initialData.activity),\n institution: serializeImplementationLevel(initialData.institution),\n region: serializeImplementationLevel(initialData.region),\n });\n }, [editionModeOn, initialData]);\n\n /*\n this one is set if request for permissions for checkboxes or just\n request for checkboxes values returns 403\n */\n const [permissions403errorOn, setPermissions403errorOn] = useState(false);\n // these say if user has permissions for checkboxes groups\n const [\n permissionsForCheckboxes, setPermissionsForCheckboxes\n ] = useState({functionality: true, permissions: true});\n const [\n checkingCheckboxesPermissionOn, setCheckingCheckboxesPermissionOn\n ] = useState(false);\n\n const [existsErrorOn, setExistsErrorOn] = useState(false);\n const [\n checkingExistedPermissionOn, setCheckingExistedPermissionOn\n ] = useState(false);\n\n useEffect(() => {\n setPermissions403errorOn(false);\n if (implementationLevels.programme === null) { return }\n setPermissionsForCheckboxes(\n {functionality: false, permissions: false});\n setCheckingCheckboxesPermissionOn(true);\n }, [implementationLevels]);\n\n const fetchData = useMemo(\n () => {\n let levelNames =\n ['perspective', 'programme', 'priority', 'activity'];\n if (hasPerspectiveRegions(implementationLevels.perspective)) {\n levelNames.push('region');\n }\n if (hasPerspectiveInstitutions(implementationLevels.perspective)) {\n levelNames.push('institution');\n }\n const dataDict = {};\n for (let levelName of levelNames) {\n dataDict[levelName] = implementationLevels[levelName]\n ? implementationLevels[levelName].value : null\n }\n return dataDict\n }, [implementationLevels]);\n\n const { user } = useContext(UserContext);\n const { id: currentUserId } = user;\n\n useEffect(() => {\n if (!checkingCheckboxesPermissionOn) { return }\n // set checkboxes permissions\n let xhrFetch = null;\n\n function callbackPermissionExists(data) {\n xhrFetch = null;\n const permissionsAdministration = (data.permission || {})\n .permissionsAdministration || {};\n const grantedPermissions = {\n functionality:\n permissionsAdministration.functionalityManagement || false,\n permissions:\n permissionsAdministration.permissionsManagement || false,\n };\n setPermissionsForCheckboxes(grantedPermissions);\n setCheckingCheckboxesPermissionOn(false);\n if (!editionModeOn && (\n grantedPermissions.functionality ||\n grantedPermissions.permissions\n )) {\n setCheckingExistedPermissionOn(true);\n }\n }\n\n function callbackPermissionDoesNotExists() {\n xhrFetch = null;\n setCheckingCheckboxesPermissionOn(false);\n }\n\n function callbackPermissionIncorrectStatus(statusCode) {\n xhrFetch = null;\n if (statusCode === 403) {\n setPermissions403errorOn(true);\n }\n callbackPermissionDoesNotExists();\n }\n\n xhrFetch = fetchApi(\n API_URLS.usersPermissionsAdvertisementsProjectsEnrollmentsDetails.path,\n 'GET', {},\n {\n authorized: currentUserId,\n mode: 'inherited',\n ...fetchData\n },\n callbackPermissionExists, callbackPermissionDoesNotExists,\n callbackPermissionIncorrectStatus\n );\n return () => {\n if (xhrFetch !== null) {\n xhrFetch.abort();\n }\n }\n }, [checkingCheckboxesPermissionOn]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const { existingPermissionData } = useCheckPermissionExists(\n checkingExistedPermissionOn, setCheckingExistedPermissionOn,\n API_URLS.usersPermissionsAdvertisementsProjectsEnrollmentsDetails.path,\n fetchData, setExistsErrorOn, setPermissions403errorOn, userId\n );\n\n function handleChangeProjectNumberSelect(data) {\n setImplementationLevels(prevValue => ({...prevValue, ...data}));\n if (data.programme === null) {\n setExistsErrorOn(false);\n }\n }\n\n const disabledFields = checkingExistedPermissionOn ||\n checkingCheckboxesPermissionOn ||\n savingOn;\n const permission403exists = permissions403errorOn || (\n !checkingCheckboxesPermissionOn &&\n !permissionsForCheckboxes.functionality &&\n !permissionsForCheckboxes.permissions\n )\n\n const implementationLevelsPermissionErrors =\n implementationLevelsErrors.permission || {};\n\n return (\n <>\n \n {(!editionModeOn || implementationLevels.perspective !== null) && (\n \n )}\n \n {checkingCheckboxesPermissionOn && (\n \n Trwa sprawdzanie uprawnień dla wybranego poziomu wdrożenia.\n \n )}\n {permission403exists && (\n \n Nie masz uprawnień do nadawania uprawnień dla wybranego poziomu wdrożenia.\n {implementationLevels.programme !== null && ' Zmień poziom wdrożenia.'}\n \n )}\n \n \n )\n};\n","import React from 'react';\n\nimport { serializePerspectiveForSelect } from '../../../helpers';\nimport { useOneTimeFetchApi } from '../../../hooks';\nimport { API_URLS } from '../../../urls/api';\nimport { ButtonStyled, Loader, Text } from '../../common';\nimport {\n UserPermissionsImplementationLevelFields\n} from './UserPermissionsImplementationLevelFields';\n\n\nexport const UserPermissionsImplementationLevelForm = ({\n initialData = null, userId, onCancel, onSavePermissionSuccess\n}) => {\n const {data: dataPerspectives, loadingOn, fetchError} = useOneTimeFetchApi({\n url: API_URLS.perspectives.path,\n fetchData: {mode: 'permissions'},\n serializeFetchDataFunction: serializePerspectiveForSelect,\n });\n\n return loadingOn ? : (fetchError\n ? (\n <>\n {fetchError}\n OK\n \n )\n : (\n \n )\n )\n};\n","import React, { useEffect, useState } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n getImplementationLevelLabels,\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT\n} from '../../../helpers_permissions';\nimport { API_URLS } from '../../../urls/api';\nimport { ButtonStyled, DialogCustom, GridCustom } from '../../common';\n\n\nexport const UserPermissionsRemovingPermissionDialog = ({\n permission, questionSuffix = '', userId,\n onCloseRemovedPermissionDialog, onRemovePermissionSuccess\n}) => {\n\n const [removingPermissionOn, setRemovingPermissionOn] = useState(false);\n const [fetchError, setFetchError] = useState('');\n\n function removePermission() {\n if (!removingPermissionOn) {\n return\n }\n\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n // true means removingWithSuccess\n onRemovePermissionSuccess(data, true);\n }\n\n function setError(message) {\n xhrFetch = null;\n setRemovingPermissionOn(false);\n setFetchError(message);\n }\n\n function callbackError(data) {\n setError(`Nie udało się usunąć uprawnienia. ${data.message}`);\n }\n\n function callbackIncorrectStatus(status) {\n setError(status === 403\n ? 'Nie masz uprawnień do usunięcia tego uprawnienia.'\n : `Nie udało się usunąć uprawnienia. Wystąpił błąd o kodzie ${status}.`\n );\n }\n\n let fetchDataDict = {};\n let url = '';\n if (permission.isImplementationLevelType) {\n const {permission: permission_} = permission;\n for (let name of [\n 'perspective', 'programme', 'priority', 'activity', 'region',\n 'institution'\n ]) {\n fetchDataDict[name] =\n permission_[name] ? permission_[name].id : null;\n }\n url = API_URLS.usersPermissionsAdvertisementsProjectsEnrollments.path;\n } else {\n switch (permission.permission.type) {\n case 'usersAdministration':\n url = API_URLS.usersPermissionsUsers.path;\n break\n case 'contentAdministration':\n url = API_URLS.usersPermissionsContent.path;\n break\n case 'implementationLevelsDictionaryAdministration':\n url = API_URLS.usersPermissionsDictionaries.path;\n break\n default:\n url = '';\n }\n }\n\n xhrFetch = fetchApi(\n url, 'DELETE', {},\n {authorized: parseInt(userId) , ...fetchDataDict},\n callbackSuccess, callbackError,\n callbackIncorrectStatus\n );\n\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(removePermission, [removingPermissionOn]);\n\n let permissionDescription = '';\n if (permission !== null) {\n if (permission.isImplementationLevelType) {\n const implementationLevelLabels = getImplementationLevelLabels(\n permission.permission);\n permissionDescription = `${implementationLevelLabels.code} ${implementationLevelLabels.name}`;\n } else {\n permissionDescription =\n PERMISSION_CONTENT_DICTIONARIES_USERS_TRANSLATION_DICT[\n permission.permission.type\n ];\n }\n }\n const isError = fetchError.length > 0;\n return (\n \n {isError\n ? (\n \n \n OK\n \n \n )\n : (\n \n \n Anuluj\n \n setRemovingPermissionOn(true)}>\n {removingPermissionOn\n ? 'Trwa usuwanie uprawnienia'\n : 'Usuń uprawnienie'\n }\n \n \n )\n }\n \n )\n};\n","import React, { useContext, useMemo, useState } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { getPermissionHistoryUsersTitle } from '../../../helpers_permissions';\nimport { API_URLS } from '../../../urls/api';\nimport { DialogCustom, Text } from '../../common';\nimport { PermissionList } from './PermissionList';\nimport { PermissionsHistory } from './PermissionsHistory';\nimport { PermissionListRow } from './PermissionListRow';\nimport { PermissionUsers } from './PermissionUsers';\nimport { SearchUserForm } from './SearchUserForm';\nimport { UserHeader } from './UserHeader';\nimport {\n UserPermissionsAdministrationForm\n} from './UserPermissionsAdministrationForm';\nimport {\n UserPermissionsImplementationLevelForm\n} from './UserPermissionsImplementationLevelForm';\nimport {\n UserPermissionsRemovingPermissionDialog\n} from './UserPermissionsRemovingPermissionDialog';\n\n\nconst ADMINISTRATION_INITIAL_REQUEST_ID = 1;\nconst IMPLEMENTATION_LEVEL_INITIAL_REQUEST_ID = 1;\nconst TABLE_HEADER_LIST = ['Nazwa', 'Zarządzanie uprawnieniami'];\n\n\nexport const Permissions = (props) => {\n const { user } = useContext(UserContext);\n const { id: currentUserId } = user;\n\n // possible choices of addPermissionMode: administration, implementationLevel\n const [addPermissionMode, setAddPermissionMode] = useState(null);\n const [userForPermissionAdding, setUserForPermissionAdding] = useState(null);\n\n const [\n administrationPermissionsRequestId,\n setAdministrationPermissionsRequestId\n ] = useState(ADMINISTRATION_INITIAL_REQUEST_ID);\n const [\n implementationLevelPermissionsRequestId,\n setImplementationLevelPermissionsRequestId\n ] = useState(IMPLEMENTATION_LEVEL_INITIAL_REQUEST_ID);\n\n /*\n activeHistoryPermission/activeUsersPermission structure:\n {\n isImplementationLevelType: ,\n permission: {\n type: , // only if not isImplementationLevelType\n perspective: , // only if isImplementationLevelType; should be set to distinguish regions and institutions\n programme: , // only if isImplementationLevelType; at least should be set\n priority: , // only if isImplementationLevelType; it's possible to not set at all\n activity: , // only if isImplementationLevelType; it's possible to not set at all\n institution: , // only if isImplementationLevelType; it's possible to not set at all\n region: , // only if isImplementationLevelType; it's possible to not set at all\n }\n }\n */\n const [\n activeHistoryPermission,\n setActiveHistoryPermission\n ] = useState(null);\n const [\n activeUsersPermission,\n setActiveUsersPermission\n ] = useState(null);\n const [\n lastActiveUsersPermission,\n setLastActiveUsersPermission\n ] = useState(null);\n\n function handleCloseHistory() {\n setActiveHistoryPermission(null);\n }\n\n function handleCloseUsers() {\n setActiveUsersPermission(null);\n }\n\n function handleOpenHistory(permission) {\n if (activeUsersPermission !== null) {\n handleCloseUsers();\n }\n setActiveHistoryPermission(permission);\n }\n\n function handleOpenUsers(permission) {\n if (activeHistoryPermission !== null) {\n handleCloseHistory();\n }\n setActiveUsersPermission(permission);\n setLastActiveUsersPermission(permission);\n }\n\n const [editedPermission, setEditedPermission] = useState(null);\n\n function handleSetEditedPermission(isImplementationLevelType, permission) {\n handleCloseUsers();\n setEditedPermission({isImplementationLevelType, permission});\n }\n\n function handleCloseEditPermission(data) {\n // close dialog\n setEditedPermission(null);\n // turn user list back\n setActiveUsersPermission(lastActiveUsersPermission);\n }\n\n function handleCloseEditPermissionSuccess(data) {\n // check if current user permission was changed;\n // if yes - refresh permissions list\n if ((editedPermission.permission.authorized || {}).id === currentUserId) {\n if (editedPermission.isImplementationLevelType) {\n setImplementationLevelPermissionsRequestId(prevId => prevId + 1);\n } else {\n setAdministrationPermissionsRequestId(prevId => prevId + 1);\n }\n }\n handleCloseEditPermission(data);\n }\n\n const [removedPermission, setRemovedPermission] = useState(null);\n\n function handleSetRemovedPermission(isImplementationLevelType, permission) {\n handleCloseUsers();\n setRemovedPermission({isImplementationLevelType, permission});\n }\n\n function handleCloseRemovePermission(data) {\n // close dialog\n setRemovedPermission(null);\n // turn user list back\n setActiveUsersPermission(lastActiveUsersPermission);\n }\n\n function handleCloseRemovePermissionSuccess(data) {\n // check if current user permission was removed;\n // if yes - refresh permissions list\n if ((removedPermission.permission.authorized || {}).id === currentUserId) {\n if (removedPermission.isImplementationLevelType) {\n setImplementationLevelPermissionsRequestId(prevId => prevId + 1);\n } else {\n setAdministrationPermissionsRequestId(prevId => prevId + 1);\n }\n }\n handleCloseRemovePermission(data);\n }\n\n const [url, dialogAdditionalFetchData] = useMemo(\n () => {\n let url_ = '';\n let dialogAdditionalFetchData_ = {};\n if (activeHistoryPermission !== null || activeUsersPermission !== null) {\n const isHistoryPermission = activeHistoryPermission !== null;\n const activePermission = activeHistoryPermission ||\n activeUsersPermission;\n if (activePermission.isImplementationLevelType) {\n url_ = API_URLS[isHistoryPermission\n ? 'usersPermissionsHistoryAdvertisementsProjectsEnrollments'\n : 'usersPermissionsAdvertisementsProjectsEnrollments'\n ].path;\n const {\n programme = null,\n priority = null,\n activity = null,\n institution = null,\n region = null\n } = activePermission.permission;\n dialogAdditionalFetchData_ = {\n programme: programme !== null ? programme.id : null,\n priority: priority !== null ? priority.id : null,\n activity: activity !== null ? activity.id : null,\n institution: institution !== null ? institution.id : null,\n region: region !== null ? region.id : null,\n };\n } else {\n url_ = activePermission.permission.type === 'usersAdministration'\n ? API_URLS[isHistoryPermission\n ? 'usersPermissionsHistoryUsers'\n : 'usersPermissionsUsers'\n ].path\n : activePermission.permission.type === 'contentAdministration'\n ? API_URLS[isHistoryPermission\n ? 'usersPermissionsHistoryContent'\n : 'usersPermissionsContent'\n ].path\n : API_URLS[isHistoryPermission\n ? 'usersPermissionsHistoryDictionaries'\n : 'usersPermissionsDictionaries'\n ].path\n }\n if (!isHistoryPermission) {\n dialogAdditionalFetchData_['mode'] = 'modeContext';\n }\n }\n return [url_, dialogAdditionalFetchData_]\n },\n [activeHistoryPermission, activeUsersPermission]\n );\n\n const permissionListAdditionalFetchData = useMemo(\n () => ({mode: 'modeUserCurrent', authorized: currentUserId}),\n [currentUserId]\n );\n\n function handleCloseAddPermissionForm(data) {\n // close dialog\n setAddPermissionMode(null);\n setUserForPermissionAdding(null);\n }\n\n function handleCloseAddPermissionFormSuccess(data) {\n // check if current user permission was added;\n // if yes - refresh permissions list\n if (userForPermissionAdding.id === currentUserId) {\n if (addPermissionMode === 'implementationLevel') {\n setImplementationLevelPermissionsRequestId(prevId => prevId + 1);\n } else {\n setAdministrationPermissionsRequestId(prevId => prevId + 1);\n }\n }\n handleCloseAddPermissionForm(data);\n }\n\n let PermissionFormComponent = null;\n if (editedPermission !== null) {\n PermissionFormComponent = editedPermission.isImplementationLevelType\n ? UserPermissionsImplementationLevelForm\n : UserPermissionsAdministrationForm;\n } else if (\n ['administration', 'implementationLevel'].includes(addPermissionMode)\n ) {\n PermissionFormComponent = addPermissionMode === 'implementationLevel'\n ? UserPermissionsImplementationLevelForm\n : UserPermissionsAdministrationForm;\n }\n\n return (\n <>\n setAddPermissionMode('administration')}\n onSetActiveHistoryPermission={handleOpenHistory}\n onSetActiveUsersPermission={handleOpenUsers} />\n setAddPermissionMode('implementationLevel')}\n onSetActiveHistoryPermission={handleOpenHistory}\n onSetActiveUsersPermission={handleOpenUsers} />\n {activeHistoryPermission !== null && (\n \n )}\n {activeUsersPermission !== null && (\n \n \n \n )}\n {removedPermission !== null && (\n \n )}\n {editedPermission !== null && (\n \n Informacje o użytkowniku\n \n \n \n )}\n {['administration', 'implementationLevel'].includes(addPermissionMode)\n && (userForPermissionAdding === null\n ? (\n \n \n \n )\n : (\n \n Informacje o użytkowniku\n \n \n \n )\n )\n }\n \n )\n};\n","import React from 'react';\nimport {\n DataTableCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { reformatDanePodmiotu } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { Box, Breadcrumps, ButtonStyled, FieldWithLabel, GridCustom, TableCustom, Text } from '../../common';\nimport { BaseComponent, DanePodmiotu } from '../common';\nimport { FormDanePodmiotu } from './FormDanePodmiotu';\nimport { FormOsobaDoKontaktu } from './FormOsobaDoKontaktu';\n\n\nclass ProfilUzytkownika extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n let uzytkownik = getSerializedObject(data).uzytkownik;\n uzytkownik.danePodmiotu = reformatDanePodmiotu(uzytkownik.danePodmiotu);\n this.setState({\n initializingOn: false,\n uzytkownik: uzytkownik,\n });\n }\n\n handleSaveDanePodmiotu = (data) => {\n this.setState(prevState => ({\n changeDataOn: false,\n uzytkownik: Object.assign({}, prevState.uzytkownik, {danePodmiotu: data}),\n }));\n }\n\n handleSaveOsobaDoKontaktu = (data, isNew) => {\n this.setState(prevState => {\n let osobyDoKontaktu;\n if (isNew) {\n osobyDoKontaktu = [...prevState.uzytkownik.osobyDoKontaktu, data];\n } else {\n osobyDoKontaktu = prevState.uzytkownik.osobyDoKontaktu.map(o => o.id === data.id ? data : o);\n }\n return {\n formOsobaDoKontaktuOn: false,\n editedOsobaDoKontaktu: null,\n uzytkownik: Object.assign({}, prevState.uzytkownik, {osobyDoKontaktu: osobyDoKontaktu}),\n }\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n changeDataOn: false,\n formOsobaDoKontaktuOn: false,\n uzytkownik: {},\n editedOsobaDoKontaktu: null,\n }\n }\n\n getFetchUrl() {\n return '/api/users/0'\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych profilu. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania danych profilu wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Profil użytkownika
  • \n
    \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - mój profil\";\n return (\n <>\n {this.renderProfilUzytkownika()}\n {this.renderDanePodmiotu()}\n {this.renderOsobyDoKontaktu()}\n {this.state.changeDataOn && (\n this.setState({changeDataOn: false})}\n saveDanePodmiotu={this.handleSaveDanePodmiotu} />\n )}\n {this.state.formOsobaDoKontaktuOn && (\n this.setState(\n {formOsobaDoKontaktuOn: false, editedOsobaDoKontaktu: null}\n )}\n saveOsobaDoKontaktu={this.handleSaveOsobaDoKontaktu} />\n )}\n \n )\n }\n\n renderProfilUzytkownika() {\n const uzytkownik = this.state.uzytkownik;\n return (\n <>\n \n Mój profil w Bazie Konkurencyjności\n \n Ustawienia konta\n \n \n \n \n {uzytkownik.imie} {uzytkownik.nazwisko}\n \n \n {uzytkownik.email}\n \n \n \n )\n }\n\n renderDanePodmiotu() {\n let content, button;\n\n if (!Object.keys(this.state.uzytkownik.danePodmiotu).length) {\n content = Brak zdefiniowanych danych podmiotu.;\n button = (\n this.setState({changeDataOn: true})} add>\n Dodaj dane podmiotu\n \n );\n } else {\n content = ;\n button = (\n this.setState({changeDataOn: true})} lite>\n Edytuj dane podmiotu\n \n );\n }\n\n return (\n \n \n {button}\n \n {content}\n \n )\n }\n\n renderOsobyDoKontaktu() {\n const osobyDoKontaktu = this.state.uzytkownik.osobyDoKontaktu || [];\n let content = null;\n if (!osobyDoKontaktu.length) {\n content = Brak zdefiniowanych osób do kontaktu.;\n } else {\n content = (\n \n {osobyDoKontaktu.map(o => this.renderOsobaDoKontaktu(o))}\n \n );\n }\n return (\n \n \n this.setState({formOsobaDoKontaktuOn: true})} add>Dodaj osobę do kontaktu\n \n {content}\n \n )\n }\n\n renderOsobaDoKontaktu(osoba) {\n const {\n email,\n id,\n imie,\n nazwisko,\n numerTelefonu\n } = osoba;\n\n return (\n \n \n {imie} {nazwisko}\n \n \n {numerTelefonu || '-'}\n \n \n {email}\n \n \n this.setState({formOsobaDoKontaktuOn: true, editedOsobaDoKontaktu: osoba})}>\n Edytuj {imie} {nazwisko}\n \n \n \n )\n }\n}\n\n\nexport { ProfilUzytkownika };\n","import React from 'react';\n\nimport { ButtonStyled, DialogCustom, GridCustom, Message } from '../../common';\n\n\nconst SessionDialog = (props) => {\n\n const callback = props.callback;\n const messageIcon = props.messageIcon || 'power_settings_new';\n return (\n \n <>\n \n {props.messageContent}\n \n {props.withButton && (\n \n {props.dialogButton || 'OK'}\n \n )}\n \n \n );\n}\n\n\nexport { SessionDialog };\n","import React, { Component } from 'react';\nimport { Button } from '@rmwc/button';\nimport { Icon } from '@rmwc/icon';\n\nimport { TOKEN_COOKIE_NAME } from '../../../const';\nimport { fetchSativaApi } from '../../../fetch';\nimport { deleteCookie, fillWithLeadingZero, refreshCookie } from '../../../helpers';\nimport { Text } from '../../common/Text';\nimport { UserContext } from '../../../context/user-context';\nimport { SessionDialog } from './SessionDialog';\n\n\nclass Sesja extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n sessionTime: null,\n refreshSessionErrorDialogOn: false,\n logoutDialogOn: false,\n logoutDone: false,\n unauthorizedDialogOn:false,\n };\n\n this.xhrFetch = null;\n this.sessionIntervalId = null;\n }\n\n // basic functions\n\n componentDidMount() {\n if (this.context.auth.expire) {\n this.initializeSessionTime();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.sessionTime === this.state.sessionTime\n && this.state.sessionTime !== this.computeSessionTime()) {\n clearInterval(this.sessionIntervalId);\n this.sessionIntervalId = null;\n this.initializeSessionTime();\n }\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n\n // abort interval if exist\n if (this.sessionIntervalId !== null) {\n clearInterval(this.sessionIntervalId)\n this.sessionIntervalId = null;\n }\n }\n\n // handlers\n\n handleRefreshSessionTime = () => {\n this.xhrFetch = fetchSativaApi(\n '/api/user',\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n\n handleFetchSuccess = (data) => {\n this.xhrFetch = null;\n this.context.refresh(data);\n }\n\n handleFetchError = (data) => {\n this.xhrFetch = null;\n this.setState({refreshSessionErrorDialogOn: true});\n }\n\n handleFetchIncorrectStatus = (status) => {\n this.xhrFetch = null;\n this.setState({refreshSessionErrorDialogOn: true});\n }\n\n handleSessionErrorDialogClose = () => {\n this.setState({refreshSessionErrorDialogOn: false});\n }\n\n handleSessionDialogClose = () => {\n this.setState({refreshSessionErrorDialogOn: false});\n }\n\n handleExpirationDialogClose = () => {\n // refresh page\n window.location.reload();\n }\n\n handleUnauthorizedDialogClose = () => {\n this.setState(\n {unauthorizedDialogOn: false},\n () => {\n deleteCookie(TOKEN_COOKIE_NAME);\n // refresh page\n window.location.reload();\n }\n );\n }\n\n // helpers\n\n initializeSessionTime = () => {\n const sessionTime = this.computeSessionTime();\n this.setState(\n {sessionTime},\n () => this.startSessionTime()\n );\n }\n\n computeSessionTime() {\n const now = new Date();\n const nowUTC = new Date(\n now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),\n now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n return parseInt(this.context.auth.expire) - Math.floor(nowUTC.getTime() / 1000)\n }\n\n startSessionTime() {\n // refresh cookie expire\n refreshCookie(TOKEN_COOKIE_NAME, this.state.sessionTime);\n this.sessionIntervalId = window.setInterval(\n () => {this.setState(prevState => {\n if (prevState.sessionTime === 0) {\n clearInterval(this.sessionIntervalId);\n this.sessionIntervalId = null;\n this.context.logout(this.expire)\n } else {\n if (prevState.sessionTime - 1 === 0) {\n return {sessionTime: 0, logoutDialogOn: true}\n }\n return {sessionTime: prevState.sessionTime - 1}\n }\n })},\n 1000\n );\n }\n\n expire = () => {\n this.setState({logoutDone: true});\n }\n\n refreshTimerAfterRequest(authTokenCookieValue) {\n const now = new Date();\n const nowUTC = new Date(\n now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(),\n now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds());\n this.context.refreshTimer(\n Math.floor(nowUTC.getTime() / 1000) + 1800,\n () => {\n const sessionTime = this.computeSessionTime();\n refreshCookie(\n TOKEN_COOKIE_NAME, sessionTime, authTokenCookieValue);\n this.setState({sessionTime});\n }\n );\n }\n\n showUnauthorizedMessage() {\n this.setState({unauthorizedDialogOn: true});\n }\n\n // rendering\n\n render() {\n const sessionTime = this.state.sessionTime;\n if (!sessionTime || sessionTime < 1) {\n if (this.state.logoutDialogOn) {\n return this.renderLogoutDialog()\n }\n return this.state.unauthorizedDialogOn ? this.renderUnauthorizedDialog() : null\n }\n\n const min = ~~(sessionTime / 60);\n const minRemaining = fillWithLeadingZero(min);\n const secRemaining = fillWithLeadingZero(sessionTime - min * 60);\n return (\n
    \n {`${minRemaining}:${secRemaining}`}\n \n Odśwież czas sesji\n \n \n {this.state.refreshSessionErrorDialogOn && this.renderRefreshSessionErrorDialog()}\n {this.state.unauthorizedDialogOn && this.renderUnauthorizedDialog()}\n {(sessionTime < 120) && this.renderRefreshSessionDialog(minRemaining, secRemaining)}\n
    \n )\n }\n\n renderRefreshSessionErrorDialog() {\n return \n }\n\n renderRefreshSessionDialog(min, sec) {\n return \n }\n\n renderLogoutDialog() {\n if (this.state.logoutDone) {\n return \n }\n return \n }\n\n renderUnauthorizedDialog() {\n return \n }\n}\n\n\nSesja.contextType = UserContext;\n\n\nexport { Sesja };\n","import React from 'react';\nimport {\n DataTableCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { Container, TableCustom, Text } from '../../common';\n\n\nexport const UserContactPersonsList = ({ contactPersons }) => {\n let content;\n if (contactPersons.length) {\n content = (\n \n {contactPersons.map(cp => (\n \n {cp.imie} {cp.nazwisko}\n {cp.numerTelefonu}\n \n {cp.email}\n \n \n ))}\n \n );\n } else {\n content = Brak zdefiniowanych osób do kontaktu.;\n }\n return (\n \n Osoby do kontaktu\n {content}\n \n )\n};\n","import React, { useContext, useState } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport { useParams } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { usePutFormFetchApi } from '../../../hooks';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\n\nimport {\n ButtonStyled,\n Container,\n GridCustom,\n FieldWithLabel,\n Text\n} from '../../common';\n\n\nexport const UserDataForm = ({ user, onUpdateUserData }) => {\n const [loadingOn, setLoadingOn] = useState(false);\n const [blockedAccount, setBlockedAccount] = useState(user.kontoZablokowane);\n const [originalBlockedAccount, setOriginalBlockedAccount] = useState(\n user.kontoZablokowane);\n\n const { permissions, removePermission } = useContext(UserContext);\n\n function handleFetchSuccess(data) {\n setLoadingOn(false);\n setOriginalBlockedAccount(blockedAccount);\n onUpdateUserData(getSerializedObject(data).uzytkownik);\n }\n\n const { id: id_ } = useParams();\n const { fetchError, errors, saveBtnText } = usePutFormFetchApi({\n url: API_URLS.usersDetails.getUrl(id_),\n fetchData: getSerializedObject(\n {kontoZablokowane: blockedAccount}, {toServer: true}),\n callbackSuccess: handleFetchSuccess,\n loadingOn,\n setLoadingOn,\n message403error: 'Nie masz uprawnień do blokowania użytkowników',\n callback403: () => removePermission('blockingUsers'),\n });\n\n const blockedAccountsErrors = errors.kontoZablokowane || [];\n const hasBlockingUserPermission = permissions.blockingUsers;\n return (\n \n Blokada profilu\n \n \n {hasBlockingUserPermission\n ? (\n <>\n setBlockedAccount(ev.target.checked)}\n />\n {blockedAccountsErrors.length > 0 && blockedAccountsErrors.map(\n (e, i) => {e}\n )}\n \n )\n : (\n \n Profil {originalBlockedAccount ? 'zablokowany' : 'aktywny'}\n \n )\n }\n \n \n {user.dataZablokowaniaKonta || '---'}\n \n \n {hasBlockingUserPermission && (\n <>\n {blockedAccount !== originalBlockedAccount && (\n <>\n Upewnij się, że na pewno chcesz zapisać zmiany.\n Zmieniasz wartość pola \"Zablokuj użytkownika\".\n \n )}\n \n setLoadingOn(true)}>\n {saveBtnText}\n \n \n \n )}\n {fetchError !== null && {fetchError}}\n \n )\n};\n","import React from 'react';\n\nimport { reformatDanePodmiotu } from '../../../helpers';\nimport { Container, Text } from '../../common';\nimport { DanePodmiotu } from '../common';\n\n\nexport const UserEconomicSubjectData = ({ economicSubject }) => {\n let content;\n if (Object.keys(economicSubject).length) {\n economicSubject = reformatDanePodmiotu(economicSubject);\n content = ;\n } else {\n content = Brak zdefiniowanych danych podmiotu.;\n }\n return (\n \n Dane podmiotu\n {content}\n \n )\n};\n","import React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { TabBar, Tab } from '@rmwc/tabs';\n\nimport { UserContext } from '../../../context/user-context';\nimport { useOneTimeFetchApi } from '../../../hooks';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { URLS } from '../../../urls/frontend';\nimport {\n Breadcrumps,\n Container,\n DialogCustom,\n Loader,\n NotPermittedPage,\n Text\n} from '../../common';\nimport { PermissionList } from './PermissionList';\nimport { PermissionsHistory } from './PermissionsHistory';\nimport { UserContactPersonsList } from './UserContactPersonsList';\nimport { UserDataForm } from './UserDataForm';\nimport { UserEconomicSubjectData } from './UserEconomicSubjectData';\nimport { UserHeader } from './UserHeader';\nimport {\n UserPermissionsAdministrationForm\n} from './UserPermissionsAdministrationForm';\nimport {\n UserPermissionsImplementationLevelForm\n} from './UserPermissionsImplementationLevelForm';\nimport { UserPermissionsListRow } from './UserPermissionsListRow';\nimport {\n UserPermissionsRemovingPermissionDialog\n} from './UserPermissionsRemovingPermissionDialog';\n\n\nconst TAB_INDEXES = {\n dane: 0,\n uprawnienia: 1,\n};\nconst REVERTED_TAB_INDEXES = {\n 0: 'dane',\n 1: 'uprawnienia',\n};\nconst ADMINISTRATION_INITIAL_REQUEST_ID = 1;\nconst IMPLEMENTATION_LEVEL_INITIAL_REQUEST_ID = 1;\nconst TABLE_HEADER_LIST = ['Nazwa', 'Uprawnienia', 'Działania'];\n\nfunction serializeFetchData(data) {\n // it has to be serialized because some child components need like that\n return getSerializedObject(data)\n}\n\n\nexport const User = (props) => {\n const [updatedUserData, setUpdatedUserData] = useState(null);\n const { id: id_ } = useParams();\n const [pageNotPermitted, setPageNotPermitted] = useState(false);\n\n const { removePermission } = useContext(UserContext);\n\n function callback403() {\n setPageNotPermitted(true);\n removePermission('usersAndPermissionsPreviewListUsers');\n }\n\n const {data, loadingOn, fetchError} = useOneTimeFetchApi({\n url: API_URLS.usersDetails.getUrl(id_),\n serializeFetchDataFunction: serializeFetchData,\n updatedData: updatedUserData,\n callback403,\n });\n const user = data === null ? {} : data.uzytkownik;\n\n const [selectedTab, setSelectedTab] = useState(TAB_INDEXES.dane);\n\n function setInitialTab() {\n const params = new URLSearchParams(props.history.location.search);\n const section = params.get('sekcja') || 'dane';\n setSelectedTab(TAB_INDEXES[section] || TAB_INDEXES.dane);\n }\n useEffect(setInitialTab, []);\n\n const [administrationFormOn, setAdministrationFormOn] = useState(false);\n const [\n implementationLevelFormOn,\n setImplementationLevelFormOn\n ] = useState(false);\n const [\n administrationPermissionsRequestId,\n setAdministrationPermissionsRequestId\n ] = useState(ADMINISTRATION_INITIAL_REQUEST_ID);\n const [\n implementationLevelPermissionsRequestId,\n setImplementationLevelPermissionsRequestId\n ] = useState(IMPLEMENTATION_LEVEL_INITIAL_REQUEST_ID);\n\n function handleChangeTab(ev) {\n const index = ev.detail.index\n setSelectedTab(index);\n props.history.push(\n `${window.location.pathname}?sekcja=${REVERTED_TAB_INDEXES[index] || REVERTED_TAB_INDEXES[0]}`);\n }\n\n function handleUpdateUserData(data) {\n setUpdatedUserData(data);\n }\n\n const [editedPermission, setEditedPermission] = useState(null);\n\n function handleOpenAdministrationForm() {\n setImplementationLevelFormOn(false);\n setAdministrationFormOn(true);\n }\n\n function handleCloseAdministrationForm() {\n setAdministrationFormOn(false);\n if (editedPermission !== null) {\n setEditedPermission(null);\n }\n }\n\n function handleOpenImplementationLevelForm() {\n setAdministrationFormOn(false);\n setImplementationLevelFormOn(true);\n }\n\n function handleCloseImplementationLevelForm() {\n setImplementationLevelFormOn(false);\n if (editedPermission !== null) {\n setEditedPermission(null);\n }\n }\n\n function handleSavePermissionSuccess(data, isAdministrationPermission) {\n if (isAdministrationPermission) {\n setAdministrationFormOn(false);\n setAdministrationPermissionsRequestId(prevId => prevId + 1);\n } else {\n setImplementationLevelFormOn(false);\n setImplementationLevelPermissionsRequestId(prevId => prevId + 1);\n }\n if (editedPermission !== null) {\n setEditedPermission(null);\n }\n }\n\n function handleSetEditedPermission(isImplementationLevelType, permission) {\n setEditedPermission(permission);\n if (isImplementationLevelType) {\n setImplementationLevelFormOn(true);\n } else {\n setAdministrationFormOn(true);\n }\n }\n\n const [removedPermission, setRemovedPermission] = useState(null);\n\n function handleSetRemovedPermission(isImplementationLevelType, permission) {\n setRemovedPermission({\n isImplementationLevelType,\n permission,\n });\n }\n\n function handleCloseRemovedPermissionDialog() {\n setRemovedPermission(null);\n }\n\n function handleRemovePermissionSuccess() {\n if (removedPermission.isImplementationLevelType) {\n setImplementationLevelPermissionsRequestId(\n prevId => prevId + 1);\n } else {\n setAdministrationPermissionsRequestId(\n prevId => prevId + 1);\n }\n setRemovedPermission(null);\n }\n\n const [\n administrationHistoryOn,\n setAdministrationHistoryOn\n ] = useState(false);\n const [\n implementationLevelHistoryOn,\n setImplementationLevelHistoryOn\n ] = useState(false);\n\n function handleOpenAdministrationHistory() {\n setImplementationLevelHistoryOn(false);\n setAdministrationHistoryOn(true);\n }\n\n function handleOpenImplementationLevelHistory() {\n setAdministrationHistoryOn(false);\n setImplementationLevelHistoryOn(true);\n }\n\n function handleCloseAdministrationHistory() {\n setAdministrationHistoryOn(false);\n }\n\n function handleCloseImplementationLevelHistory() {\n setImplementationLevelHistoryOn(false);\n }\n\n const permissionListAdditionalFetchData = useMemo(\n () => ({mode: 'modeUserCustom', authorized: id_}), [id_]);\n\n if (pageNotPermitted) {\n return \n }\n\n return (\n <>\n \n
  • \n \n Administracja użytkownikami i uprawnieniami\n \n
  • \n
  • Użytkownik
  • \n
    \n {loadingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n <>\n \n \n \n \n \n \n \n {selectedTab === TAB_INDEXES.dane\n ? (\n <>\n \n \n \n \n ) : (\n <>\n \n \n {administrationFormOn && (\n \n handleSavePermissionSuccess(data, true)\n } />\n \n )}\n {implementationLevelFormOn && (\n \n handleSavePermissionSuccess(data, false)\n } />\n \n )}\n\n {removedPermission !== null && (\n \n )}\n\n {administrationHistoryOn && (\n \n )}\n\n {implementationLevelHistoryOn && (\n \n )}\n \n )\n }\n \n )\n )\n }\n \n )\n};\n","import {\n ADVERTISEMENT_STATUS_FILTERS_CHOICES,\n CZY_PROJEKT_CHOICES,\n PROJECTS_MANAGEMENTS_CHOICES,\n RODZAJ_ADRESU_FILTERS_CHOICES,\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES,\n USER_STATUS_CHOICES\n} from './const';\n\n\nconst ADVERTISEMENTS_CLEANED_FILTERS = {\n ktoUtworzyl: 0,\n dataUtworzenia: '',\n ktoModyfikowal: 0,\n dataModyfikacji: '',\n terminOfert: '',\n tytul: '',\n ogloszenie_numer: '',\n status: 0,\n};\n\nconst PROJECTS_CLEANED_FILTERS = {\n calyNumer: '',\n nazwa: '',\n typ: {value: CZY_PROJEKT_CHOICES[0][0], label: CZY_PROJEKT_CHOICES[0][1]},\n};\n\nconst SEARCH_CLEANED_FILTERS = {\n title: '',\n publicationDateRange: {\n type: null,\n from: '',\n to: '',\n },\n submissionDeadlineRange: {\n type: null,\n from: '',\n to: '',\n },\n status: ['PUBLISHED', ],\n advertiserName: '',\n advertiserIdentificationNumber: '',\n category: null,\n subcategory: null,\n cpvItem: [],\n fulfillmentPlaces: [],\n programme: [],\n};\n\nconst USERS_CLEANED_FILTERS = {\n identifier: '',\n email: '',\n forename: '',\n surname: '',\n status: {value: USER_STATUS_CHOICES[0][0], label: USER_STATUS_CHOICES[0][1]},\n};\n\n\nconst FAVORITES_ADVERT_CLEANED_FILTERS = {\n status: ['PUBLISHED', ],\n advertiserIdentificationNumber: '',\n category: null,\n subcategory: null,\n cpvItem: [],\n fulfillmentPlaces: [],\n programme: [],\n mode: 'favorite'\n};\n\nconst PROJECTS_MANAGEMENTS_CLEANED_FILTERS = {\n userEmail: '',\n userForename: '',\n userSurname: '',\n type: {value: PROJECTS_MANAGEMENTS_CHOICES[0][0], label: PROJECTS_MANAGEMENTS_CHOICES[0][1]},\n fullNumber: '',\n name: '',\n perspective: null,\n programme: null,\n priority: null,\n activity: null,\n institution: null,\n region: null,\n};\n\nconst ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS = {\n userEmail: '',\n userForename: '',\n userSurname: '',\n advertiserName: '',\n // Poland\n advertiserAddressType: RODZAJ_ADRESU_FILTERS_CHOICES.filter(\n choice => choice.value === 'all')[0],\n // NIP\n advertiserIdentificationNumberType:\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES.filter(\n choice => choice.value === 'all')[0],\n advertiserIdentificationNumber: '',\n advertiserAddressCountry: '',\n advertiserAddressVoivodeship: '',\n advertiserAddressPoviat: '',\n advertiserAddressCommune: '',\n advertiserAddressLocality: '',\n announcementStatus: ADVERTISEMENT_STATUS_FILTERS_CHOICES[0],\n announcementNumber: '',\n title: '',\n announcementProjectEnrollmentPerspective: null,\n announcementProjectEnrollmentProgramme: null,\n announcementProjectEnrollmentPriority: null,\n announcementProjectEnrollmentActivity: null,\n announcementProjectEnrollmentInstitution: null,\n announcementProjectEnrollmentRegion: null,\n announcementProjectEnrollmentFullNumber: '',\n announcementPublicationDateFrom: '',\n announcementPublicationDateTo: '',\n submissionDeadlineFrom: '',\n submissionDeadlineTo: '',\n};\n\nconst filterAdvertisements = (advertisementList, filtersAreOn, filters) => {\n if (!filtersAreOn) {\n return advertisementList\n }\n\n let advertisements = advertisementList.slice();\n for (let [name, value] of Object.entries(filters)) {\n if (filters[name] !== ADVERTISEMENTS_CLEANED_FILTERS[name]) {\n if (['ktoUtworzyl', 'ktoModyfikowal'].includes(name)) {\n advertisements = advertisements.filter(o => o.ogloszenie[name].id === value);\n } else if (name === 'status') {\n advertisements = advertisements.filter(o => o.ogloszenie.status.id === value);\n } else if (name === 'tytul') {\n advertisements = advertisements.filter(o => o[name] !== null && o[name].toLowerCase().includes(value.toLowerCase()));\n } else if (name === 'ogloszenie_numer') {\n const [attr, subattr] = name.split('_');\n advertisements = advertisements.filter(o => {\n const adValue = o[attr][subattr];\n return adValue !== null && adValue.toLowerCase().includes(value.toLowerCase())\n });\n } else if (name === 'terminOfert') {\n advertisements = advertisements.filter(o => {\n let terminOfert = o[name];\n if (!!terminOfert) {\n terminOfert = terminOfert.slice(0, 10);\n }\n return terminOfert === value;\n });\n } else {\n advertisements = advertisements.filter(o => o[name] === value);\n }\n }\n }\n return advertisements\n}\n\nconst filterProjects = (projectList, filtersAreOn, filters) => {\n if (!filtersAreOn) {\n return projectList\n }\n\n for (let [name, value] of Object.entries(filters)) {\n if (filters[name] !== PROJECTS_CLEANED_FILTERS[name]) {\n if (name === 'typ') {\n if (value.value !== 'all') {\n projectList = projectList.filter(p => (p.typ === 'project').toString() === value.value);\n }\n } else {\n projectList = projectList.filter(\n p => p[name] !== null && p[name].toLowerCase().includes(value.toLowerCase()));\n }\n }\n }\n return projectList\n}\n\n\nconst getSearchFiltersCount = (filters) => {\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if (['status', 'cpvItem', 'fulfillmentPlaces', 'programme'].includes(name)) {\n // list counters\n if (value.length) {\n counter++;\n }\n } else if (['publicationDateRange', 'submissionDeadlineRange'].includes(name)) {\n if (Object.values(value).some(v => !!v)) {\n counter++;\n }\n } else if (!!value) {\n counter++;\n }\n }\n return counter\n}\n\nconst getUsersFiltersCount = (filters) => {\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if (name === 'status' || USERS_CLEANED_FILTERS[name] !== value) {\n counter++;\n }\n }\n return counter\n}\n\nconst getFavoritesAdvertFiltersCount = (filters) => {\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if (FAVORITES_ADVERT_CLEANED_FILTERS[name] !== value) {\n \n if(!Array.isArray(value) || (Array.isArray(value) && value.length > 0))\n {\n counter++;\n }\n \n }\n }\n return counter\n}\n\nconst getOffersFiltersCount = (filters, emptyFilters) => {\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if (['status', 'isAdmin'].includes(name) || emptyFilters[name] !== value) {\n counter++;\n }\n }\n return counter\n}\n\nconst getProjectsManagementsFiltersCount = (filters) => {\n if (filters === null) { return 0 }\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if (['type', ].includes(name) || PROJECTS_MANAGEMENTS_CLEANED_FILTERS[name] !== value) {\n counter++;\n }\n }\n return counter\n};\n\nconst getAdvertisementsManagementsFiltersCount = (filters) => {\n if (filters === null) { return 0 }\n let counter = 0;\n for (let [name, value] of Object.entries(filters)) {\n if ([\n 'advertiserAddressVoivodeship',\n 'advertiserAddressPoviat',\n 'advertiserAddressCommune'\n ].includes(name)) {\n // don't count it, because they are not inputs\n continue\n }\n if (name === 'advertiserIdentificationNumberType') {\n if (filters.advertiserAddressType.value === 'poland') {\n // identification number select is shown\n counter++;\n }\n continue\n }\n if (['advertiserAddressType', 'announcementStatus'].includes(name) ||\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS[name] !== value ) {\n counter++;\n }\n }\n return counter\n};\n\n\nexport {\n ADVERTISEMENTS_CLEANED_FILTERS,\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS,\n PROJECTS_CLEANED_FILTERS,\n PROJECTS_MANAGEMENTS_CLEANED_FILTERS,\n SEARCH_CLEANED_FILTERS,\n USERS_CLEANED_FILTERS,\n FAVORITES_ADVERT_CLEANED_FILTERS,\n filterAdvertisements,\n filterProjects,\n getAdvertisementsManagementsFiltersCount,\n getOffersFiltersCount,\n getProjectsManagementsFiltersCount,\n getSearchFiltersCount,\n getUsersFiltersCount,\n getFavoritesAdvertFiltersCount\n};\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\nimport { Icon } from '@rmwc/icon';\n\nimport { UserContext } from '../../../context/user-context';\nimport { getUsersFiltersCount, USERS_CLEANED_FILTERS } from '../../../filters';\nimport { API_URLS } from '../../../urls/api';\nimport { ButtonStyled, GridCustom, TableCustom, Text } from '../../common';\nimport { colors } from '../../vars/vars';\nimport { PaginatedBaseComponent } from '../common';\nimport { FiltryUzytkownikow } from './FiltryUzytkownikow';\n\n\nclass Uzytkownicy extends PaginatedBaseComponent {\n message403 = 'Nie masz uprawnień do przeglądania listy użytkowników.';\n\n componentDidMount() {\n if (!this.context.permissions.usersAndPermissionsPreviewListUsers) {\n window.scrollTo(0, 0);\n this.setState({\n initializingOn: false,\n pageNotPermitted : true,\n });\n return\n }\n super.componentDidMount();\n }\n\n // helpers\n\n preState(props) {\n super.preState(props);\n this.objectsName = 'uzytkownicy';\n this.paginateBy = 100;\n this.sortingValues = [\n ['identifier', 'Po identyfikatorze Użytkownika'],\n ['email', 'Po adresie e-mail'],\n ['forename', 'Po imieniu'],\n ['surname', 'Po nazwisku'],\n ['status', 'Po statusie'],\n ];\n this.sortingLabel = 'Sortuj użytkowników';\n this.filteringLabel = 'Filtruj listę';\n this.filtersComponentClass = FiltryUzytkownikow;\n\n this.getFiltersCount = getUsersFiltersCount;\n }\n\n getAdditionalState(props) {\n return {\n ...super.getAdditionalState(props),\n selectedSort: {value: this.sortingValues[3][0], label: this.sortingValues[3][1]},\n objects: {},\n filters: USERS_CLEANED_FILTERS,\n }\n }\n\n getFetchUrl() {\n return API_URLS.users.path\n }\n\n getFetchData() {\n let queryDict = super.getFetchData();\n\n // set filters values\n for (let [name, value] of Object.entries(this.state.filters)) {\n if (name === 'status') {\n queryDict[name] = value.value;\n } else if (value !== USERS_CLEANED_FILTERS[name]) {\n queryDict[name] = value.trim();\n }\n }\n\n return queryDict\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się wyszukać użytkowników. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się wyszukać użytkowników. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.context.removePermission('usersAndPermissionsPreviewListUsers');\n }\n\n // rendering\n\n renderHeader() {\n return (\n Użytkownicy Bazy Konkurencyjności\n )\n }\n\n renderFiltersButton() {\n return (\n <>\n {super.renderFiltersButton()}\n \n Lista użytkowników CAS\n \n \n )\n }\n\n renderEmptyObjects() {\n return Nie znaleziono użytkowników spełniających kryteria wyszukiwania.\n }\n\n renderList() {\n const total = this.state.total;\n return (\n <>\n \n Znaleziono {total < this.paginateBy ? '' : 'około '}{total} {total === 1 ? 'użytkownika' : 'użytkowników'}.\n \n Opcje,\n ]}>\n {this.state.objects.map(o => this.renderUzytkownik(o))}\n \n \n )\n }\n\n renderUzytkownik(uzytkownik) {\n return (\n \n {uzytkownik.email}\n {uzytkownik.imie} {uzytkownik.nazwisko}\n \n {uzytkownik.kontoZablokowane ? zablokowany : aktywny}\n Id: {uzytkownik.identyfikator}\n \n \n Podgląd danych\n \n \n )\n }\n}\n\nUzytkownicy.contextType = UserContext;\n\nexport { Uzytkownicy };\n","import React, { useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { TabBar, Tab } from '@rmwc/tabs';\n\nimport { Breadcrumps } from '../../common';\nimport { Permissions } from './Permissions';\nimport { Uzytkownicy } from './Uzytkownicy';\n\n\nconst TAB_INDEXES = {\n lista: 0,\n uprawnienia: 1,\n};\nconst REVERTED_TAB_INDEXES = {\n 0: 'lista',\n 1: 'uprawnienia',\n};\n\n\nexport const Users = (props) => {\n const [selectedTab, setSelectedTab] = useState(TAB_INDEXES.lista);\n const location = useLocation();\n\n useEffect(() => {\n document.title = \"Baza Konkurencyjności - użytkownicy\";\n }, []);\n\n useEffect(() => {\n const params = new URLSearchParams(location.search);\n const section = params.get('sekcja') || 'lista';\n setSelectedTab(TAB_INDEXES[section] || TAB_INDEXES.lista);\n }, [location.search]);\n\n function handleChangeTab(ev) {\n props.history.push(\n `${location.pathname}?sekcja=${\n REVERTED_TAB_INDEXES[ev.detail.index] ||\n REVERTED_TAB_INDEXES[0]\n }`\n );\n }\n\n return (\n <>\n \n
  • \n Administracja użytkownikami i uprawnieniami\n
  • \n
    \n \n \n \n \n {selectedTab === TAB_INDEXES.lista && (\n \n )}\n {selectedTab === TAB_INDEXES.uprawnienia && }\n \n )\n};\n","import React, { Component } from 'react';\nimport { Icon } from '@rmwc/icon';\nimport { Typography } from '@rmwc/typography';\n\nimport { Text } from '../../common';\n\n\nclass DraftToComponents extends Component {\n\n // helpers\n\n isEmptyString(str) {\n return str === undefined || str === null || str.length === 0 || str.trim().length === 0\n }\n\n isAtomicEntityBlock(block) {\n return block.entityRanges.length > 0 || block.type === 'atomic'\n }\n\n isList(blockType) {\n return blockType === 'unordered-list-item' || blockType === 'ordered-list-item';\n }\n\n // rendering\n\n render() {\n const { role } = this.props;\n\n return
    {this.renderContent()}
    \n }\n\n renderContent() {\n const content = this.props.content;\n const blocks = content.blocks;\n if (!(blocks && blocks.length > 0)) { return null }\n let orderedListIndex = 0;\n return blocks.map(block => {\n switch (block.type) {\n case 'blockquote':\n orderedListIndex = 0;\n return this.renderBlockquote(block)\n case 'ordered-list-item':\n orderedListIndex++;\n return this.renderOrderedListItem(block, orderedListIndex)\n case 'unordered-list-item':\n orderedListIndex = 0;\n return this.renderUnorderedListItem(block)\n default:\n orderedListIndex = 0;\n if (this.isAtomicEntityBlock(block)) {\n return this.renderAtomic(block, content.entityMap[block.entityRanges[0].key])\n }\n return this.renderText(block)\n }\n })\n }\n\n renderBlockquote(block) {\n return (\n \n \n {this.renderSections(block)}\n \n )\n }\n\n renderOrderedListItem(block, index) {\n return {index}. {this.renderSections(block)}\n }\n\n renderUnorderedListItem(block) {\n return - {this.renderSections(block)}\n }\n\n renderAtomic(block, entity) {\n switch (entity.type) {\n case 'LINK':\n return this.renderLink(block, entity.data)\n case 'IMAGE':\n return this.renderImage(block, entity.data)\n case 'EMBEDDED_LINK':\n return this.renderEmbed(block, entity.data)\n default:\n return null\n }\n }\n\n renderLink(block, data) {\n return {this.renderSections(block)}\n }\n\n renderImage(block, data) {\n return {data.alt\n }\n\n renderEmbed(block, data) {\n return \n }\n\n renderText(block) {\n return

    {this.renderSections(block)}

    \n }\n\n renderSections(block) {\n if (!block.inlineStyleRanges.length) {\n return this.renderPureText(block.text, block.key)\n }\n const inlineStyleRanges = block.inlineStyleRanges.map(range => [range.offset, range.offset + range.length, range.style.toLowerCase()]);\n\n let charsWithStyles = [];\n let i = 0;\n for (let char of block.text) {\n let charStyles = new Set();\n for (let r of inlineStyleRanges) {\n if (i >= r[0] && i <= r[1]) {\n charStyles.add(r[2]);\n }\n }\n charsWithStyles.push([char, [...charStyles].join('')]);\n i++;\n }\n\n let currentText = '';\n let currentStyle = '';\n let blockSections = [];\n for (let [char, style] of charsWithStyles) {\n if (style === currentStyle) {\n currentText += char;\n } else {\n blockSections.push([currentText, currentStyle]);\n currentText = char;\n currentStyle = style\n }\n }\n blockSections.push([currentText, currentStyle]);\n\n return blockSections.map((section, i) => {\n return this.renderSection(block.key + i, section)\n })\n }\n\n renderPureText(text, blockKey) {\n return text;\n }\n\n renderSection(key, section) {\n return {section[0]}\n }\n}\n\n\nconst styles = {\n bold: {\n fontWeight: 'bold',\n },\n italic: {\n fontStyle: 'italic',\n },\n bolditalic: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n italicbold: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n // ^ these styles should be doubled because it is difference if italic or bold is choosen first\n};\n\n\nexport { DraftToComponents };\n","import React from 'react';\nimport {\n DataTable,\n DataTableBody,\n DataTableCell,\n DataTableContent,\n DataTableHead,\n DataTableHeadCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { UserContext } from '../../../context/user-context';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { AuditData, Breadcrumps, ButtonStyled, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\nimport {serializeAuditData} from \"../../../helpers\";\n\n\nclass Ciasteczka extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n if (data === null) {\n this.setState({initializingOn: false});\n } else {\n const cookies = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania'],\n dateTimeAttributes: ['dataOpublikowania'],\n }\n );\n this.setState({\n initializingOn: false,\n ciasteczka: cookies,\n auditData: serializeAuditData(cookies),\n });\n }\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n ciasteczka: {\n tresc: '',\n dataOpublikowania: '',\n },\n auditData: {},\n }\n }\n\n getFetchUrl() {\n return API_URLS.cookiesAdmin.path\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać ciasteczek. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania ciasteczek wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Ciasteczka
  • \n
    \n Ciasteczka\n \n )\n }\n\n renderContent() {\n if (this.state.ciasteczka.tresc === '') {\n return this.props.history.push('/zarzadzanie-trescia/ciasteczka/nowe')}>Dodaj ciasteczka;\n } else {\n const ciasteczka = this.state.ciasteczka;\n return (\n <>\n \n \n \n \n Treść\n Aktualna wersja\n \n \n \n \n \n \n \n \n z dn. {ciasteczka.dataOpublikowania}\n this.props.history.push('/zarzadzanie-trescia/ciasteczka/edytuj')}>Edytuj\n \n \n \n \n \n \n );\n }\n }\n}\n\nCiasteczka.contextType = UserContext;\n\nexport { Ciasteczka };\n","import React from 'react';\n\nimport { getCookieValue } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { ButtonStyled, GridCustom } from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\n\n\nconst COOKIE_NAME = 'bzkc';\n\n\nclass CiasteczkaFront extends BaseComponent {\n\n // helpers\n\n getAdditionalState(props) {\n return {\n showCookies: false,\n ciasteczka: {},\n }\n }\n\n getFetchUrl() {\n return '/api/cookies'\n }\n\n // handlers\n\n handleFetchSuccess = (data) => {\n super.handleFetchSuccess(data);\n\n if (data === null) {\n this.setState({initializingOn: false});\n } else {\n // if cookies accepted, don't render them\n const serializedObject = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania'],\n dateTimeAttributes: ['dataOpublikowania'],\n }\n );\n if (parseInt(getCookieValue(COOKIE_NAME)) === new Date(serializedObject.dataOpublikowania).getTime()) {\n this.setState({initializingOn: false});\n } else {\n this.setState({\n initializingOn: false,\n showCookies: true,\n ciasteczka: serializedObject,\n });\n }\n }\n }\n\n handleFetchError = (data) => {\n // do nothing, don't render error\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false});\n }\n\n handleFetchIncorrectStatus = (status) => {\n this.handleFetchError(null);\n }\n\n handleCloseCiasteczka = (savingDate) => {\n document.cookie = `${COOKIE_NAME}=${new Date(this.state.ciasteczka.dataOpublikowania).getTime()};path=/`;\n this.setState({showCookies: false});\n }\n\n // rendering\n\n render() {\n if (this.state.initializingOn || !this.state.showCookies) { return null }\n return (\n \n \n \n Akceptuję politykę dotyczącą wykorzystania plików cookies. Zamknij pop-up.\n \n \n )\n }\n}\n\n\nexport { CiasteczkaFront };\n","import React from 'react';\nimport { Image, StyleSheet, Text, View } from '@react-pdf/renderer';\n\nimport { splitLineByChar } from '../../../helpers';\nimport { DraftToComponents } from './DraftToComponents';\n\nclass DraftToPdf extends DraftToComponents {\n\n // rendering\n render() {\n return this.renderContent()\n }\n\n renderBlockquote(block) {\n return \"{this.renderSections(block)}\"\n }\n\n renderOrderedListItem(block, index) {\n return {index}. {this.renderSections(block)}\n }\n\n renderUnorderedListItem(block) {\n return - {this.renderSections(block)}\n }\n\n renderLink(block, data) {\n return {data.url}\n }\n\n renderImage(block, data) {\n return (\n \n )}\n\n renderEmbed(block, data) {\n return Odnośnik do multimediów: {data.src}\n }\n\n renderText(block) {\n return {this.renderSections(block)}\n }\n\n renderPureText(text, blockKey) {\n return splitLineByChar(text).map((line, i) => {line})\n }\n\n renderSection(key, section) {\n return {section[0]}\n }\n}\n\n\nconst styles = StyleSheet.create({\n bold: {\n fontWeight: 'bold',\n },\n italic: {\n fontStyle: 'italic',\n },\n bolditalic: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n italicbold: {\n fontStyle: 'italic',\n fontWeight: 'bold',\n },\n blockquote: {\n fontStyle: 'italic',\n paddingLeft: 20,\n marginVertical: 20\n },\n image: {\n display: 'block',\n position: 'relative',\n marginVertical: 20,\n marginHorizontal: 'auto',\n width: 200,\n },\n infoText: {\n marginVertical: 20,\n fontStyle: 'italic',\n fontWeight: 'bold'\n },\n link: {\n fontStyle: 'normal',\n fontWeight: 'bold',\n textDecoration: 'underline'\n },\n listItem: {\n paddingLeft: 20,\n }\n});\n\n\nexport { DraftToPdf };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { countWysiwygChars } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { validateWysiwygEditor } from '../../../validators';\nimport {\n Breadcrumps,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text,\n WysiwygEditor,\n} from '../../common';\nimport { Ciasteczka } from './Ciasteczka';\n\n\nconst SAVE_BUTTON_DEFAULT_LABEL = 'Zapisz ciasteczka';\n\n\nclass FormCiasteczka extends Ciasteczka {\n\n // basic functions\n\n componentDidMount() {\n if (!this.props.editing) {\n this.setState({initializingOn: false});\n } else {\n // get ciasteczka from server\n super.componentDidMount();\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n if (data === null) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else {\n this.setState({\n initializingOn: false,\n tresc: getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).tresc\n });\n }\n }\n\n handleChangeAttribute(name, value) {\n this.setState(prevState => ({\n [name]: value,\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleSave() {\n this.setState(\n {savingOn: true, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n // save ciasteczka on server\n this.xhrFetch = fetchApi(\n API_URLS.cookiesAdmin.path,\n this.firstSaving ? 'POST' : 'PUT',\n {},\n getSerializedObject(\n {tresc: this.state.tresc},\n {toServer: true, nonRecursiveKeys: ['tresc',]}\n ),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors, saveBtnText: SAVE_BUTTON_DEFAULT_LABEL});\n }\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetch = null;\n this.setState(\n {savingOn: false, saveBtnText: 'Zapisano'},\n () => {\n this.firstSaving = false;\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: SAVE_BUTTON_DEFAULT_LABEL})\n }, 5000)\n }\n );\n }\n\n handleFetchSaveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: `Nie udało się zapisać ciasteczek. ${data.message}`,\n });\n }\n\n handleFetchSaveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n let message = '';\n if (status === 403) {\n message = `Nie masz uprawnień do ${this.firstSaving\n ? 'dodawania' : 'edycji'} ciasteczek.`;\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: message || `Podczas zapisu ciasteczek wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n // helpers\n\n preState(props) {\n this.trescMaxLength = 1000;\n this.firstSaving = true;\n }\n\n getAdditionalState(props) {\n return {\n tresc: '',\n savingOn: false,\n fetchSaveError: '',\n errors: {\n tresc: '',\n },\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n }\n }\n\n setAdditionalHandlers() {\n this.handleSave = this.handleSave.bind(this);\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this);\n this.handleFetchSaveError = this.handleFetchSaveError.bind(this);\n this.handleFetchSaveIncorrectStatus = this.handleFetchSaveIncorrectStatus.bind(this);\n }\n\n validate() {\n // clean errors\n this.setState({errors: {}});\n\n let isValid = true;\n let errors = {};\n\n // validate tresc\n const tresc = this.state.tresc;\n if (!validateWysiwygEditor(tresc)) {\n errors['tresc'] = 'To pole jest wymagane.';\n isValid = false;\n } else if (countWysiwygChars(tresc) > this.trescMaxLength) {\n errors['tresc'] = `To pole może mieć maksymalnie ${this.trescMaxLength} znaków.`;\n isValid = false;\n }\n\n return [isValid, errors]\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Ciasteczka
  • \n
  • {this.props.editing ? 'Edytuj' : 'Dodaj'} ciasteczka
  • \n
    \n )\n }\n\n renderContent() {\n const {\n errors,\n fetchSaveError,\n saveBtnText,\n savingOn,\n tresc,\n } = this.state;\n const isTrescInvalid = (errors.tresc || '').length > 0;\n return (\n <>\n {this.props.editing ? 'Edytuj' : 'Dodaj'} ciasteczka\n \n \n \n this.handleChangeAttribute('tresc', contentState)}\n />\n {isTrescInvalid && {errors.tresc}}\n \n \n \n {saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n \n \n )\n }\n}\n\nFormCiasteczka.contextType = UserContext;\n\nexport { FormCiasteczka };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { countWysiwygChars, dateToString } from '../../../helpers';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { validateWysiwygEditor } from '../../../validators';\nimport {\n Breadcrumps,\n ButtonStyled,\n Container,\n DateCalendar,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom,\n WysiwygEditor,\n} from '../../common';\nimport { BaseComponent } from '../common';\n\n\nconst EMPTY_KOMUNIKAT = {\n id: null,\n naglowek: '',\n tresc: '',\n czyZoltyPasek: false,\n czyAktywny: true,\n czyBezterminowy: true,\n dataOpublikowania: '',\n dataWaznosci: '',\n slug: '',\n};\nconst SAVE_BUTTON_DEFAULT_LABEL = 'Zapisz komunikat';\n\n\nclass FormKomunikat extends BaseComponent {\n\n // base functions\n\n componentDidMount() {\n if (this.state.isNew) {\n this.setState({initializingOn: false});\n } else {\n // it is editing, get object from server\n this.fetchInitialData();\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const komunikat = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc'],\n dateAttributes: ['dataOpublikowania', 'dataWaznosci'],\n dateTimeAttributes: ['dataOpublikowania', 'dataWaznosci'],\n }\n ).komunikat;\n if (!komunikat) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else {\n this.setState(\n {\n initializingOn: false,\n komunikat: Object.assign(komunikat, {\n id: this.props.match.params.id,\n czyBezterminowy: komunikat.dataWaznosci === '',\n }),\n },\n () => {\n const urlParams = this.props.match.params;\n if (this.props.editing && komunikat.slug !== urlParams.slug) {\n // update url if slugs are not equal\n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${urlParams.id}-${komunikat.slug}/edytuj`);\n }\n }\n );\n }\n }\n\n handleChangeAttribute(name, value) {\n let newData = {[name]: value}\n if (name === 'czyAktywny' && !value) {\n newData['czyZoltyPasek'] = false;\n }\n this.setState(prevState => ({\n komunikat: Object.assign({}, prevState.komunikat, newData),\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleClearAttributeError(name) {\n this.setState(prevState => ({\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleSave() {\n this.setState(\n {savingOn: true, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n const isNew = this.state.isNew;\n // save object on server\n this.xhrFetch = fetchApi(\n isNew\n ? API_URLS.statementsAdmin.path\n : API_URLS.statementsAdminDetails.getUrl(\n this.state.komunikat.id),\n isNew ? 'POST' : 'PUT',\n {},\n getSerializedObject(\n this.state.komunikat, {toServer: true, nonRecursiveKeys: ['tresc', ]}),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors, saveBtnText: SAVE_BUTTON_DEFAULT_LABEL});\n }\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetchSave = null;\n\n const komunikat = getSerializedObject(data).komunikat;\n this.setState(prevState => ({\n savingOn: false,\n saveBtnText: 'Zapisano',\n isNew: false,\n komunikat: Object.assign({}, prevState.komunikat, komunikat),\n }),\n () => {\n this.firstSaving = false;\n const urlParams = this.props.match.params;\n if (this.props.editing && komunikat.slug !== urlParams.slug) {\n // update url if slugs are not equal\n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${urlParams.id}-${komunikat.slug}/edytuj`);\n }\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: SAVE_BUTTON_DEFAULT_LABEL})\n }, 5000)\n }\n );\n }\n\n handleFetchSaveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: `Nie udało się zapisać komunikatu. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchSaveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({savingOn: false, pageNotFound: true});\n } else {\n let message = '';\n if (status === 403) {\n message = `Nie masz uprawnień do ${this.state.isNew\n ? 'dodawania' : 'edycji'} komunikatu.`;\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: message ||\n `Podczas zapisu komunikatu wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n }\n\n // helpers\n\n preState(props) {\n this.trescMaxLength = 2000;\n }\n\n getAdditionalState(props) {\n return {\n isNew: !props.editing,\n savingOn: false,\n komunikat: EMPTY_KOMUNIKAT,\n fetchSaveError: '',\n errors: {\n tresc: '',\n },\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n }\n }\n\n setAdditionalHandlers() {\n this.handleSave = this.handleSave.bind(this);\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this);\n this.handleFetchSaveError = this.handleFetchSaveError.bind(this);\n this.handleFetchSaveIncorrectStatus = this.handleFetchSaveIncorrectStatus.bind(this);\n }\n\n getFetchUrl() {\n return API_URLS.statementsAdminDetails.getUrl(\n this.props.match.params.id)\n }\n\n getFetchData() {\n return {context: 'admin_panel'}\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać komunikatu do edycji. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania komunikatu do edycji wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('statements');\n }\n\n validate() {\n let isValid = true;\n const requiredMsg = 'To pole jest wymagane.';\n let errors = {};\n\n const {\n czyBezterminowy,\n dataWaznosci,\n naglowek,\n tresc,\n } = this.state.komunikat;\n\n // validate naglowek\n if (!naglowek.length) {\n errors['naglowek'] = requiredMsg;\n isValid = false;\n }\n\n // validate tresc\n if (!validateWysiwygEditor(tresc)) {\n errors['tresc'] = requiredMsg;\n isValid = false;\n } else if (countWysiwygChars(tresc) > this.trescMaxLength) {\n errors['tresc'] = `To pole może mieć maksymalnie ${this.trescMaxLength} znaków.`;\n isValid = false;\n }\n\n // validate dataWaznosci\n if (!czyBezterminowy && !dataWaznosci.length) {\n errors['dataWaznosci'] = requiredMsg;\n isValid = false;\n }\n\n return [isValid, errors]\n }\n\n // rendering\n\n renderHeader() {\n const komunikat = this.state.komunikat;\n return (\n \n
  • Komunikaty
  • \n {komunikat.id !== null ? (\n <>\n
  • Szczegóły komunikatu
  • \n
  • Edycja
  • \n \n ) : (\n
  • Dodaj komunikat
  • \n )}\n
    \n )\n }\n\n renderContent() {\n const {\n errors,\n fetchSaveError,\n komunikat,\n saveBtnText,\n savingOn,\n } = this.state;\n\n const isTrescInvalid = (errors.tresc || '').length > 0;\n const isNaglowekInvalid = (errors.naglowek || '').length > 0;\n const isDataWaznosciValid = (errors.dataWaznosci || '').length > 0;\n\n const dataWaznosciInputRef = React.createRef();\n\n return (\n <>\n Edycja komunikatu: {komunikat.naglowek}\n \n \n \n this.handleChangeAttribute('naglowek', '')}\n onChange={(ev) => this.handleChangeAttribute('naglowek', ev.target.value)}\n onFocus={(ev) => this.handleClearAttributeError('naglowek')} />\n {isNaglowekInvalid && {errors.naglowek}}\n \n \n \n \n this.handleChangeAttribute('tresc', contentState)}\n />\n {isTrescInvalid && {errors.tresc}}\n \n \n \n this.handleChangeAttribute('czyAktywny', event.target.checked)}\n />\n {\n const checked = event.target.checked\n this.handleChangeAttribute('czyBezterminowy', checked);\n if (checked) {\n this.handleChangeAttribute('dataWaznosci', '');\n }\n }}\n />\n this.handleChangeAttribute('czyZoltyPasek', event.target.checked)}\n />\n \n {!komunikat.czyAktywny && Komunikat nieaktywny nie może być żółtym paskiem}\n {!komunikat.czyBezterminowy && (\n \n this.handleChangeAttribute('dataWaznosci', !date ? '' : dateToString(date))}\n />\n {isDataWaznosciValid && {errors.dataWaznosci}}\n \n )}\n \n {saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n \n \n )\n }\n}\n\nFormKomunikat.contextType = UserContext;\n\nexport { FormKomunikat };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { getSerializedObject } from '../../serializers';\nimport { validateWysiwygEditor } from '../../validators';\nimport { ButtonStyled, Container, GridCellCustom, GridCustom, Text, TextFieldCustom } from '../common';\nimport { BaseComponent } from './common';\nimport { DraftToComponents } from './zarzadzanieTrescia';\nimport { redirectToLoginView } from '../../helpers';\nimport { URLS } from '../../urls/frontend';\n\n\nclass LandingPage extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n // if it is preview for zarzadzanie trescia, get data from props\n const content = this.props.content;\n let trescPreviewId = null;\n if (this.props.content) {\n trescPreviewId = content.id;\n }\n\n let state = {initializingOn: false,};\n const tresciOgolne = getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).tresciOgolne;\n for (let i of [1, 2, 3]) {\n let to = tresciOgolne.filter(to => to.placement === `homepage_box${i}`)[0];\n if (to) {\n if (trescPreviewId !== null && to.id === trescPreviewId) {\n to = content;\n }\n } else {\n to = {};\n }\n state[`homepageBox${i}`] = to;\n }\n this.setState(state);\n }\n\n handleFetchError(data) {\n // do nothing, don't render error\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false});\n }\n\n handleFetchIncorrectStatus(message) {\n this.handleFetchError({});\n }\n\n handleSearch = () => {\n this.props.history.push(this.getSearchUrl(this.state.query));\n }\n\n handleNewsletter = () => {\n if(this.props.user?.id !== null) {\n this.props.history.push(URLS.newsletter.path)\n return;\n }\n\n sessionStorage.setItem(\n \"currentPathname\",\n URLS.newsletter.path\n );\n\n redirectToLoginView(false);\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n homepageBox1: {},\n homepageBox2: {},\n homepageBox3: {},\n query: '',\n }\n }\n\n getFetchUrl() {\n return '/api/general-content'\n }\n\n getSearchUrl(query) {\n if (!query.length) {\n return '/ogloszenia/szukaj'\n }\n return encodeURI(`/ogloszenia/szukaj?q=${query}`)\n }\n\n // rendering\n\n renderContent() {\n document.title = \"Baza Konkurencyjności\";\n const {\n homepageBox1,\n homepageBox2,\n homepageBox3\n } = this.state;\n\n const homepageBox1IsEmpty = Object.keys(homepageBox1).length === 0 || !validateWysiwygEditor(Object.keys(homepageBox1.tresc).length > 0 ? homepageBox1.tresc : '');\n const homepageBox2IsEmpty = Object.keys(homepageBox2).length === 0 || !validateWysiwygEditor(Object.keys(homepageBox2.tresc).length > 0 ? homepageBox2.tresc : '');\n const homepageBox3IsEmpty = Object.keys(homepageBox3).length === 0 || !validateWysiwygEditor(Object.keys(homepageBox3.tresc).length > 0 ? homepageBox3.tresc : '');\n if (homepageBox1IsEmpty && homepageBox2IsEmpty && homepageBox3IsEmpty) {\n return this.renderSearch()\n }\n\n return (\n <>\n {this.renderSearch()}\n {!homepageBox1IsEmpty && this.renderTrescOgolna(homepageBox1)}\n \n \n {!homepageBox2IsEmpty && this.renderTrescOgolna(homepageBox2)}\n \n \n {!homepageBox3IsEmpty && this.renderTrescOgolna(homepageBox3)}\n \n \n \n )\n }\n\n renderSearch() {\n return (\n \n \n \n \n
    \n
    \n Na przykład:\n \n Sugerowana fraza: roboty\n budowlane,\n \n \n Sugerowana fraza: dostawa\n komputerów,\n \n \n Sugerowana fraza: \n szkolenie pracowników.\n \n
    \n this.setState({ query: ev.target.value })}\n onClear={(ev) => this.setState({ query: \"\" })}\n placeholder=\"Wpisz, czego szukasz\"\n value={this.state.query}\n />\n
    \n \n Wyszukaj ogłoszenie\n \n {\n ev.preventDefault();\n this.handleNewsletter();\n }}\n lite\n icon=\"mail\"\n className=\"search__btn\"\n >\n Zapisz się na newsletter ogłoszeń Zaloguj się, aby zapisać się na newsletter\n \n \n
    \n {this.renderAddOgloszenieLink()}\n
    \n
    \n
    \n );\n }\n\n renderAddOgloszenieLink() {\n const user = this.props.user;\n if (!user || user.identifier === null) {\n return (\n <>\n \n Dodaj ogłoszenie Zaloguj się, aby dodać ogłoszenie\n \n Wymaga logowania\n \n )\n }\n return (\n \n Dodaj ogłoszenie\n \n )\n }\n\n renderTrescOgolna(element) {\n return (\n \n \n \n )\n }\n}\n\n\nexport { LandingPage };\n","import React, { createContext } from 'react';\n\nimport { getLastTemporaryIdFromList, listOrEmpty } from '../helpers';\nimport {\n getSerializedList,\n serializeOrderItemCategories\n} from '../serializers';\nimport {\n advertisementValidators,\n publishedAdvertisementAdminValidators,\n publishedAdvertisementOwnerValidators,\n validateHarmonogramAttributes,\n validateKryteriumOcenyAttributes,\n validateAdvertisementBaseAttributes,\n validatePrzedmiotZamowieniaBaseAttributes,\n validateWarunekUdzialuAttributes,\n validateZalacznikAttributes,\n validateZamowienieAttributes\n} from '../validators';\n\n\nconst CLEANED_STEP_ERRORS = {\n 'przedmiot': null,\n 'terminy': null,\n 'warunki': null,\n 'czesciKryteria': null,\n 'pozostale': null,\n 'zalaczniki': null,\n};\n\nconst CLEANED_FORM_ERRORS = {\n ogloszenie: {},\n zamowienia: {},\n kryteriaOceny: {},\n przedmiotyZamowienia: {},\n harmonogramy: {},\n warunkiUdzialu: {},\n zalaczniki: {},\n};\n\n\nconst AdvertisementContext = createContext({\n // base variables\n ogloszenie: null,\n validationOn: false,\n savingOn: false,\n // errors\n stepErrors: Object.assign({}, CLEANED_STEP_ERRORS),\n formErrors: Object.assign({}, CLEANED_FORM_ERRORS),\n // const from server\n roboczeStatus: null,\n statusyOgloszenia: {},\n zagranicaId: null,\n typMiejscaRealizacji: {},\n przedmiotZamowieniaKategoria: [], // the whole list\n przedmiotZamowieniaKategoriaDict: {}, // dict only with types\n przedmiotZamowieniaPodkategoriaDict: {}, // dict only with subcategories\n typWarunku: {},\n projekty: [],\n nabory: [],\n osobyDoKontaktu: [],\n teryt: [],\n // functions\n setConstsFromServer: () => {},\n setConstsFromAdvertisementData: () => {},\n setOgloszenie: () => {},\n saveOgloszenie: () => {},\n updateOgloszenieBeforePublishing: () => {},\n savePrzedmiotZamowienia: () => {},\n removePrzedmiotZamowienia: () => {},\n setAttributeValue: () => {},\n savePrzedmiotZamowieniaListAttributeValue: () => {},\n removePrzedmiotZamowieniaListAttributeValue: () => {},\n saveHarmonogram: () => {},\n removeHarmonogram: () => {},\n saveWarunekUdzialu: () => {},\n removeWarunekUdzialu: () => {},\n addZamowienie: () => {},\n removeZamowienie: () => {},\n movePrzedmiotZamowienia: () => {},\n setZamowienieAttributeValue: () => {},\n saveKryteriumOceny: () => {},\n removeKryteriumOceny: () => {},\n saveZamowienieListAttributeValue: () => {},\n removeZamowienieListAttributeValue: () => {},\n changeProjectsSelected: () => {},\n addZalacznik: () => {},\n removeZalacznik: () => {},\n setZalacznikAttributes: () => {},\n changeFormLockedState: () => {},\n validate:\n (projectsSelected, isAlreadyPublished, advertisementManagerType) => {},\n clearStepError: () => {},\n clearPrzedmiotZamowieniaErrors: () => {},\n clearAttributeError: () => {},\n clearFormErrors: () => {},\n clearState: () => {},\n});\n\n\nexport class AdvertisementProvider extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n // base variables\n ogloszenie: null,\n validationOn: false,\n savingOn: false,\n // errors\n stepErrors: Object.assign({}, CLEANED_STEP_ERRORS),\n formErrors: Object.assign({}, CLEANED_FORM_ERRORS),\n // const from server\n roboczeStatus: null,\n statusyOgloszenia: {},\n adresId: null,\n zagranicaId: null,\n typMiejscaRealizacji: {},\n przedmiotZamowieniaKategoria: [], // the whole list\n przedmiotZamowieniaKategoriaDict: {}, // dict only with types\n przedmiotZamowieniaPodkategoriaDict: {}, // dict only with subcategories\n typWarunku: {},\n projekty: [],\n nabory: [],\n osobyDoKontaktu: [],\n teryt: [],\n // functions\n setConstsFromServer: this.setConstsFromServer,\n setConstsFromAdvertisementData: this.setConstsFromAdvertisementData,\n setOgloszenie: this.setOgloszenie,\n saveOgloszenie: this.saveOgloszenie,\n updateOgloszenieBeforePublishing: this.updateOgloszenieBeforePublishing,\n savePrzedmiotZamowienia: this.savePrzedmiotZamowienia,\n removePrzedmiotZamowienia: this.removePrzedmiotZamowienia,\n movePrzedmiotZamowienia: this.movePrzedmiotZamowienia,\n setAttributeValue: this.setAttributeValue,\n savePrzedmiotZamowieniaListAttributeValue: this.savePrzedmiotZamowieniaListAttributeValue,\n removePrzedmiotZamowieniaListAttributeValue: this.removePrzedmiotZamowieniaListAttributeValue,\n saveHarmonogram: this.saveHarmonogram,\n removeHarmonogram: this.removeHarmonogram,\n saveWarunekUdzialu: this.saveWarunekUdzialu,\n removeWarunekUdzialu: this.removeWarunekUdzialu,\n addZamowienie: this.addZamowienie,\n removeZamowienie: this.removeZamowienie,\n setZamowienieAttributeValue: this.setZamowienieAttributeValue,\n saveKryteriumOceny: this.saveKryteriumOceny,\n removeKryteriumOceny: this.removeKryteriumOceny,\n saveZamowienieListAttributeValue: this.saveZamowienieListAttributeValue,\n removeZamowienieListAttributeValue: this.removeZamowienieListAttributeValue,\n changeProjectsSelected: this.changeProjectsSelected,\n addZalacznik: this.addZalacznik,\n removeZalacznik: this.removeZalacznik,\n setZalacznikAttributes: this.setZalacznikAttributes,\n changeFormLockedState: this.changeFormLockedState,\n validate: this.validate,\n // clean errors\n clearStepError: this.clearStepError,\n clearPrzedmiotZamowieniaErrors: this.clearPrzedmiotZamowieniaErrors,\n clearAttributeError: this.clearAttributeError,\n clearFormErrors: this.clearFormErrors,\n clearState: this.clearState,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.ogloszenie !== null && window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n setConstsFromServer = (data, callback) => {\n const [\n przedmiotZamowieniaKategoriaDict,\n przedmiotZamowieniaPodkategoriaDict\n ] = serializeOrderItemCategories(data.order_item_categories);\n this.setState(\n {\n roboczeStatus: data.announcement_status_draft,\n statusyOgloszenia: data.announcement_statuses,\n adresId: data.address_id,\n zagranicaId: data.abroad_id,\n typMiejscaRealizacji: data.order_fulfillment_place_types,\n przedmiotZamowieniaKategoria: getSerializedList(data.order_item_categories),\n przedmiotZamowieniaKategoriaDict: przedmiotZamowieniaKategoriaDict,\n przedmiotZamowieniaPodkategoriaDict: przedmiotZamowieniaPodkategoriaDict,\n typWarunku: data.participation_condition_types,\n projekty: getSerializedList(data.projects),\n nabory: getSerializedList(data.enrollment_numbers),\n osobyDoKontaktu: getSerializedList(data.contact_persons),\n teryt: data.teryt_data,\n },\n callback\n );\n }\n\n setConstsFromAdvertisementData = (data, callback) => {\n this.setState(\n {\n projekty: getSerializedList(data.projects || []),\n nabory: getSerializedList(data.enrollment_numbers || []),\n osobyDoKontaktu: getSerializedList(data.contact_persons || []),\n },\n callback\n );\n }\n\n setOgloszenie = (data, callback=null) => {\n let ogloszenie;\n if (data === null) {\n ogloszenie = {\n ogloszenie: {\n id: null,\n status: {},\n numer: null,\n dataOpublikowania : '',\n },\n id: null,\n status: {id: this.state.roboczeStatus},\n projekty: [],\n tytul: '',\n zamowieniaUzupelniajace: '',\n nabor: null,\n warunkiZmianyUmowy: '',\n czyDopuszczalnaOfertaCzesciowa: false,\n dataOpublikowania: '',\n terminOfert: '',\n planowanyTerminPodpisaniaUmowy: '',\n zamowienia: [],\n osobyDoKontaktu: [],\n zalaczniki: [],\n }\n } else {\n ogloszenie = data;\n }\n this.setState(\n {ogloszenie},\n () => {if (callback) { callback() }}\n );\n }\n\n saveOgloszenie = (data, callback) => {\n if (data.ogloszenie) {\n this.setState(\n prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {\n id: data.id,\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie.ogloszenie, data.ogloszenie),\n }\n ),\n }),\n callback\n );\n }\n }\n\n updateOgloszenieBeforePublishing = (callback) => {\n this.setState(\n prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie, {\n dataOpublikowania: '',\n terminOfertData: '',\n terminOfertWithTime: false,\n terminOfertGodzina: '',\n }\n )\n }),\n callback\n );\n }\n\n savePrzedmiotZamowienia = (data, isNew, callback) => {\n this.setState(\n (prevState) => {\n const ogloszenie = prevState.ogloszenie;\n let zamowienia = [...ogloszenie.zamowienia];\n\n if (isNew) {\n if (!zamowienia.length) {\n zamowienia.push({\n id: null,\n temporaryId: 1,\n zamowienieNode: null,\n przedmiotyZamowienia: [],\n czyWariantowe: false,\n kryteriaOceny: [],\n szacunkowaWartosc: '',\n tytul: '',\n });\n }\n\n data['harmonogramy'] = [];\n data['warunkiUdzialu'] = [];\n zamowienia[0].przedmiotyZamowienia.push(data);\n } else {\n zamowienia = zamowienia.map(z => {\n let przedmiotyZamowienia = [];\n for (let pz of z.przedmiotyZamowienia) {\n if (pz.temporaryId === data.temporaryId) {\n przedmiotyZamowienia.push(Object.assign({}, pz, data));\n } else {\n przedmiotyZamowienia.push(pz);\n }\n }\n z.przedmiotyZamowienia = przedmiotyZamowienia;\n return z\n })\n }\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie, {zamowienia}),\n }\n },\n () => callback()\n );\n }\n\n removePrzedmiotZamowienia = (temporaryId) => {\n this.setState(\n (prevState) => {\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n z.przedmiotyZamowienia = z.przedmiotyZamowienia.filter(\n pz => pz.temporaryId !== temporaryId);\n return z\n })}\n ),\n }\n }\n );\n }\n\n movePrzedmiotZamowienia = (newZamowienieTemporaryId, temporaryId, callback) => {\n this.setState(\n (prevState) => {\n const zamowienia = prevState.ogloszenie.zamowienia;\n // get przedmiotZamowienia\n let pz_ = null;\n for (let z of zamowienia) {\n for (let pz of z.przedmiotyZamowienia) {\n if (pz.temporaryId === temporaryId) {\n pz_ = pz;\n break\n }\n }\n }\n\n if (pz_ !== null) {\n // remove from old zamowienie, add to new zamowienie\n let zamowienia_ = [];\n for (let z of zamowienia) {\n // remove\n z.przedmiotyZamowienia = z.przedmiotyZamowienia.filter(\n pz => pz.temporaryId !== temporaryId);\n // add\n if (z.temporaryId === newZamowienieTemporaryId) {\n z.przedmiotyZamowienia = [...z.przedmiotyZamowienia, pz_];\n }\n zamowienia_.push(z);\n }\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie, {zamowienia: zamowienia_}),\n }\n } else { return {} }\n\n },\n callback\n );\n }\n\n setAttributeValue = (attributeName, value) => {\n this.setState(prevState => ({\n ogloszenie: Object.assign({}, prevState.ogloszenie, {[attributeName]: value})\n }));\n }\n\n savePrzedmiotZamowieniaListAttributeValue = (data, isNew, attrName, callback) => {\n const przedmiotZamowieniaTemporaryId = data['przedmiotZamowieniaTemporaryId'];\n delete data['przedmiotZamowieniaTemporaryId'];\n this.setState(\n prevState => {\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n let przedmiotyZamowienia = [];\n for (let pz of z.przedmiotyZamowienia) {\n if (pz.temporaryId === przedmiotZamowieniaTemporaryId) {\n if (isNew) {\n pz[attrName] = [...pz[attrName], data];\n } else {\n let objects = [];\n for (let o of pz[attrName]) {\n if (o.temporaryId === data.temporaryId) {\n o = data;\n }\n objects.push(o);\n }\n pz[attrName] = objects;\n }\n }\n przedmiotyZamowienia.push(pz);\n }\n z.przedmiotyZamowienia = przedmiotyZamowienia;\n return z\n })}\n ),\n }\n },\n callback\n )\n }\n\n removePrzedmiotZamowieniaListAttributeValue = (przedmiotZamowieniaTemporaryId, temporaryId, attrName) => {\n this.setState(\n prevState => {\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n let przedmiotyZamowienia = [];\n for (let pz of z.przedmiotyZamowienia) {\n if (pz.temporaryId === przedmiotZamowieniaTemporaryId) {\n pz[attrName] = pz[attrName].filter(o => o.temporaryId !== temporaryId);\n }\n przedmiotyZamowienia.push(pz);\n }\n z.przedmiotyZamowienia = przedmiotyZamowienia;\n return z\n })}\n ),\n }\n }\n );\n }\n\n saveHarmonogram = (data, isNew, callback) => {\n return this.savePrzedmiotZamowieniaListAttributeValue(\n data, isNew, 'harmonogramy', callback);\n }\n\n removeHarmonogram = (przedmiotZamowieniaTemporaryId, temporaryId) => {\n this.removePrzedmiotZamowieniaListAttributeValue(\n przedmiotZamowieniaTemporaryId, temporaryId, 'harmonogramy');\n }\n\n saveWarunekUdzialu = (data, isNew, callback) => {\n return this.savePrzedmiotZamowieniaListAttributeValue(\n data, isNew, 'warunkiUdzialu', callback);\n }\n\n removeWarunekUdzialu = (przedmiotZamowieniaTemporaryId, temporaryId) => {\n this.removePrzedmiotZamowieniaListAttributeValue(\n przedmiotZamowieniaTemporaryId, temporaryId, 'warunkiUdzialu');\n }\n\n addZamowienie = () => {\n // don't add zamowienie if oferta czesciowa is unavailable\n if (!this.state.ogloszenie.czyDopuszczalnaOfertaCzesciowa) { return }\n this.setState(prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: [...prevState.ogloszenie.zamowienia, {\n id: null,\n temporaryId: Math.max(...listOrEmpty(prevState.ogloszenie.zamowienia).map(z => z.temporaryId)) + 1,\n tytul: '',\n czyWariantowe: false,\n przedmiotyZamowienia: [],\n szacunkowaWartosc: '',\n kryteriaOceny: [],\n }]}\n ),\n }));\n }\n\n removeZamowienie = (temporaryId) => {\n this.setState(prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.filter(z => z.temporaryId !== temporaryId)}\n ),\n }));\n }\n\n setZamowienieAttributeValue = (temporaryId, attrName, value) => {\n this.setState(prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n if (z.temporaryId === temporaryId) {\n z[attrName] = value;\n }\n return z\n })}\n ),\n }));\n }\n\n saveZamowienieListAttributeValue = (data, isNew, attrName, callback=null) => {\n const zamowienieTemporaryId = data['zamowienieTemporaryId'];\n delete data['zamowienieTemporaryId'];\n this.setState(\n prevState => {\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n if (z.temporaryId === zamowienieTemporaryId) {\n if (isNew) {\n z[attrName] = [...z[attrName], data];\n } else {\n let objects = [];\n for (let o of z[attrName]) {\n if (o.temporaryId === data.temporaryId) {\n o = data;\n }\n objects.push(o);\n }\n z[attrName] = objects;\n }\n }\n return z\n })}\n ),\n }\n },\n () => {if (callback) {callback()}}\n )\n }\n\n removeZamowienieListAttributeValue = (zamowienieTemporaryId, temporaryId, attrName) => {\n this.setState(\n prevState => ({\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zamowienia: prevState.ogloszenie.zamowienia.map(z => {\n if (z.temporaryId === zamowienieTemporaryId) {\n z[attrName] = z[attrName].filter(o => o.temporaryId !== temporaryId);\n }\n return z\n })}\n ),\n })\n );\n }\n\n saveKryteriumOceny = (data, isNew, callback) => {\n this.saveZamowienieListAttributeValue(\n data, isNew, 'kryteriaOceny', callback);\n }\n\n removeKryteriumOceny = (zamowienieTemporaryId, temporaryId) => {\n this.removeZamowienieListAttributeValue(\n zamowienieTemporaryId, temporaryId, 'kryteriaOceny');\n }\n\n changeProjectsSelected = (checked) => {\n this.setState(\n prevState => ({\n ogloszenie: {\n ...prevState.ogloszenie,\n ...(checked ? {nabor: null} : {projekty: []})\n }\n })\n );\n }\n\n addZalacznik = (data) => {\n data = data || {};\n this.setState(\n prevState => {\n const zalaczniki = prevState.ogloszenie.zalaczniki;\n return {\n ogloszenie: Object.assign(\n {}, prevState.ogloszenie,\n {zalaczniki: [...zalaczniki, {\n id: null,\n temporaryId: getLastTemporaryIdFromList(zalaczniki) + 1,\n nazwa: '',\n plik: {\n id: null,\n uri: '',\n nazwa: '',\n dataUtworzenia: '',\n ktoUtworzyl: {imie: '', nazwisko: ''},\n },\n plikDoWgrania: data.plikDoWgrania || null,\n origin: {\n id: prevState.ogloszenie.status.label === 'DRAFT' ? prevState.ogloszenie.id : null,\n }\n }]}\n ),\n }\n }\n );\n }\n\n removeZalacznik = (temporaryId) => {\n this.setState(\n prevState => {\n const o = prevState.ogloszenie;\n return {ogloszenie: Object.assign(\n {}, o, {zalaczniki: o.zalaczniki.filter(z => z.temporaryId !== temporaryId)}\n )}\n }\n );\n }\n\n setZalacznikAttributes = (temporaryId, data) => {\n this.setState(\n prevState => {\n let zalaczniki = [];\n for (let z of prevState.ogloszenie.zalaczniki) {\n if (z.temporaryId === temporaryId) {\n z = Object.assign(z, data);\n }\n zalaczniki.push(z);\n }\n return {ogloszenie: Object.assign({}, prevState.ogloszenie, {zalaczniki})}\n }\n );\n }\n\n changeFormLockedState = (attrName, value, callback=null) => {\n this.setState(\n {[attrName]: value},\n () => {\n if (callback) {callback()}\n }\n );\n }\n\n validate = (projectsSelected, isAlreadyPublished, advertisementManagerType) => {\n const { ogloszenie } = this.state;\n let [errors, stepErrors] = validateAdvertisementBaseAttributes(\n ogloszenie,\n projectsSelected,\n isAlreadyPublished\n ? (advertisementManagerType.isAuthor\n ? publishedAdvertisementOwnerValidators\n : publishedAdvertisementAdminValidators\n )\n : advertisementValidators\n );\n\n let zamowieniaErrors = {};\n let zamowieniaStepErrors = {};\n let kryteriaOcenyErrors = {};\n let kryteriaOcenyStepErrors = {};\n if (!isAlreadyPublished) {\n // do not validate zamowienia and kryteriaOceny\n [zamowieniaErrors, zamowieniaStepErrors] = validateZamowienieAttributes(\n ogloszenie, isAlreadyPublished);\n\n let kryteriaOceny = [];\n for (let z of ogloszenie.zamowienia) {\n kryteriaOceny = [...kryteriaOceny, ...z.kryteriaOceny];\n }\n [kryteriaOcenyErrors, kryteriaOcenyStepErrors] = validateKryteriumOcenyAttributes(kryteriaOceny);\n }\n\n let przedmiotyZamowienia = [];\n for (let z of ogloszenie.zamowienia) {\n przedmiotyZamowienia = [...przedmiotyZamowienia, ...z.przedmiotyZamowienia];\n }\n const [przedmiotyZamowieniaErrors, przedmiotyZamowieniaStepErrors] = validatePrzedmiotZamowieniaBaseAttributes(\n przedmiotyZamowienia, isAlreadyPublished);\n\n let harmonogramy = [];\n for (let pz of przedmiotyZamowienia) {\n harmonogramy = [...harmonogramy, ...pz.harmonogramy];\n }\n const [harmonogramyErrors, harmonogramyStepErrors] = validateHarmonogramAttributes(harmonogramy);\n\n let warunkiUdzialuErrors = {};\n let warunkiUdzialuStepErrors = {};\n if (!isAlreadyPublished) {\n // do not validate warunkiUdzialu\n let warunkiUdzialu = [];\n for (let pz of przedmiotyZamowienia) {\n warunkiUdzialu = [...warunkiUdzialu, ...pz.warunkiUdzialu];\n }\n [warunkiUdzialuErrors, warunkiUdzialuStepErrors] = validateWarunekUdzialuAttributes(warunkiUdzialu);\n }\n\n let zalacznikiErrors = {};\n let zalacznikiStepErrors = {};\n [zalacznikiErrors, zalacznikiStepErrors] = validateZalacznikAttributes(ogloszenie.zalaczniki);\n\n const finalStepErrors = Object.assign(\n {\n 'przedmiot': false,\n 'terminy': false,\n 'warunki': false,\n 'czesciKryteria': false,\n 'pozostale': false,\n 'zalaczniki': false,\n }, stepErrors, zamowieniaStepErrors, kryteriaOcenyStepErrors,\n przedmiotyZamowieniaStepErrors, harmonogramyStepErrors,\n warunkiUdzialuStepErrors, zalacznikiStepErrors\n );\n this.setState({\n stepErrors: finalStepErrors,\n formErrors: {\n ogloszenie: errors,\n zamowienia: zamowieniaErrors,\n kryteriaOceny: kryteriaOcenyErrors,\n przedmiotyZamowienia: przedmiotyZamowieniaErrors,\n harmonogramy: harmonogramyErrors,\n warunkiUdzialu: warunkiUdzialuErrors,\n zalaczniki: zalacznikiErrors,\n },\n });\n\n // return if is valid\n return Object.values(finalStepErrors).filter(e => e === true).length === 0\n }\n\n clearStepError = (stepName) => {\n this.setState((prevState) => {\n let errors = Object.assign({}, prevState.stepErrors);\n errors[stepName] = null;\n return {stepErrors: errors}\n })\n }\n\n clearPrzedmiotZamowieniaErrors = (temporaryId, callback) => {\n if (this.state.formErrors.przedmiotyZamowienia[temporaryId]) {\n this.setState(\n prevState => {\n let errors = Object.assign({}, prevState.formErrors.przedmiotyZamowienia);\n delete errors[temporaryId];\n return {formErrors: Object.assign({}, prevState.formErrors, {przedmiotZamowienia: errors})}\n },\n () => callback()\n )\n } else {\n callback();\n }\n }\n\n clearAttributeError = (errorName, temporaryId, attrName) => {\n if (this.state.formErrors[errorName][temporaryId] && this.state.formErrors[errorName][temporaryId][attrName]) {\n this.setState((prevState) => {\n let errors = Object.assign({}, prevState.formErrors[errorName]);\n delete errors[temporaryId][attrName];\n return {formErrors: Object.assign({}, prevState.formErrors, {[errorName]: errors})}\n });\n }\n }\n\n clearFormErrors = () => {\n this.setState({\n stepErrors: CLEANED_STEP_ERRORS,\n formErrors: CLEANED_FORM_ERRORS\n });\n }\n\n clearState = (callback=null) => {\n this.setState(\n {\n // base variables\n ogloszenie: null,\n validationOn: false,\n savingOn: false,\n // errors\n stepErrors: Object.assign({}, CLEANED_STEP_ERRORS),\n formErrors: Object.assign({}, CLEANED_FORM_ERRORS),\n // const from server\n roboczeStatus: null,\n statusyOgloszenia: {},\n adresId: null,\n zagranicaId: null,\n typMiejscaRealizacji: {},\n przedmiotZamowieniaKategoria: [], // the whole list\n przedmiotZamowieniaKategoriaDict: {}, // dict only with types\n przedmiotZamowieniaPodkategoriaDict: {}, // dict only with subcategories\n typWarunku: {},\n projekty: [],\n nabory: [],\n osobyDoKontaktu: [],\n teryt: [],\n },\n () => {\n if (callback) { callback() }\n }\n );\n }\n\n render() {\n return (\n \n {this.props.children}\n \n );\n }\n}\n\n\nexport const AdvertisementConsumer = AdvertisementContext.Consumer;\nexport { AdvertisementContext };\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport { Radio } from '@rmwc/radio';\nimport '@material/checkbox/dist/mdc.checkbox.css';\nimport '@material/radio/dist/mdc.radio.css';\n\nimport { fetchApi } from '../../../fetch';\nimport { dateStringToYearMonth, datetimeToString, dateToString,\n fillWithLeadingZero } from '../../../helpers';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { customSelectStyles } from '../../vars/vars';\nimport {\n ButtonStyled,\n DateCalendar,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Message,\n Select,\n Text,\n} from '../../common';\n\n\nconst EMPTY_VALUE = {\n value: null,\n label: '--- Wybierz ---',\n};\n\n\nclass FormPublikowanie extends Component {\n\n constructor(props) {\n super(props);\n\n const o = props.formOgloszenie.context.ogloszenie;\n this.planowanyTerminPodpisaniaUmowy = o.planowanyTerminPodpisaniaUmowy;\n\n this.state ={\n initializingOn: true,\n savingOn: false,\n publishImmediately: props.formOgloszenie.isAlreadyPublished || o.dataOpublikowania === '',\n dataOpublikowania: o.dataOpublikowania,\n terminOfertData: '',\n terminOfertWithTime: false,\n terminOfertGodzina: EMPTY_VALUE,\n error: '',\n formErrors: {},\n dialogPublishClassName: null,\n };\n\n this.xhrFetch = null;\n }\n\n // basic functions\n\n componentDidMount() {\n const formOgloszenie = this.props.formOgloszenie;\n if (formOgloszenie.handleValidate()) {\n formOgloszenie.handleSave(\n null,\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({\n initializingOn: false,\n error: 'Ogłoszenie zawiera błędy. Po ich poprawieniu spróbuj opublikować ogłoszenie jeszcze raz.',\n });\n }\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n // handlers\n\n handleFetchSaveSuccess = (data) => {\n const formOgloszenie = this.props.formOgloszenie;\n formOgloszenie.handleFetchSaveSuccess(\n data,\n () => {\n formOgloszenie.context.updateOgloszenieBeforePublishing(\n () => this.setState({\n initializingOn: false,\n dataOpublikowania: '',\n })\n );\n }\n );\n }\n\n setError = (message) => {\n this.setState({initializingOn: false, error: message});\n }\n\n handleFetchSaveError = (data) => {\n this.setError(\n 'Podczas próby opublikowania ogłoszenia wystąpił nieoczekiwany błąd.');\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.setError(\n `Podczas próby opublikowania ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}.`);\n }\n\n handleCloseDialog = () => {\n this.props.formOgloszenie.setState({publishingOn: false})\n }\n\n handleChangePublikujOdRazu = (event) => {\n const publikujOdRazu = event.currentTarget.value === 'true';\n let data = {publishImmediately: publikujOdRazu};\n if (publikujOdRazu) {\n data['dataOpublikowania'] = '';\n }\n this.setState(data);\n }\n\n handleChangeTerminOfertData = (date) => {\n let data = {terminOfertData: !date ? '' : dateToString(date)};\n if (!date) {\n data['terminOfertGodzina'] = '';\n data['terminOfertWithTime'] = false;\n }\n this.setState(\n prevState => {\n data['formErrors'] = Object.assign({}, prevState.formErrors, {terminOfertGodzina: '', terminOfertData: ''});\n return data\n }\n );\n }\n\n handleChangeTerminOfertWithTime = (ev) => {\n const isChecked = ev.target.checked;\n let data = {terminOfertWithTime: isChecked};\n if (!isChecked) {\n data['terminOfertGodzina'] = EMPTY_VALUE;\n }\n this.setState(data);\n }\n\n handleCalendarOpen = () => {\n this.setState({ dialogPublishClassName: 'dialog--publish'})\n }\n\n handleCalendarClose = () => {\n this.setState({ dialogPublishClassName: null })\n }\n\n handlePublish = () => {\n this.setState(\n {savingOn: true},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n this.xhrFetch = fetchApi(\n `/api/announcements/${this.props.formOgloszenie.context.ogloszenie.ogloszenie.id}/publish`,\n 'POST',\n {},\n getSerializedObject(this.getData(), {toServer: true}),\n this.handleFetchPublishSuccess,\n this.handleFetchPublishError,\n this.handleFetchPublishIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, formErrors: errors});\n }\n }\n );\n }\n\n handleFetchPublishSuccess = (data) => {\n this.xhrFetch = null;\n this.props.formOgloszenie.setPublishingSuccessInfo(\n !this.state.dataOpublikowania\n ? 'Ogłoszenie zostało pomyślnie opublikowane.'\n :'Ogłoszenie zostało zapisane z przyszłą datą publikacji.'\n );\n }\n\n handleFetchPublishError = (data) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n error: `Podczas próby opublikowania ogłoszenia wystąpił błąd. ${translateErrorMessage(data.message)} Dane ogłoszenia zostały zachowane w kopii roboczej.`,\n savingOn: false,\n });\n }\n\n handleFetchPublishIncorrectStatus = (status) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n error: `Podczas próby opublikowania ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}. Dane ogłoszenia zostały zachowane w kopii roboczej.`,\n savingOn: false,\n });\n }\n\n // helpers\n\n validate() {\n const {\n dataOpublikowania,\n publishImmediately,\n terminOfertGodzina,\n terminOfertData,\n terminOfertWithTime,\n } = this.state;\n\n let isValid = true;\n let errors = {};\n\n if (!publishImmediately && !dataOpublikowania) {\n isValid = false;\n errors['dataOpublikowania'] = 'To pole jest wymagane.';\n }\n\n const today = dateToString(new Date());\n\n if (dataOpublikowania && dataOpublikowania <= today) {\n isValid = false;\n errors['dataOpublikowania'] = 'Data publikacji musi być późniejsza niż dziś.';\n }\n if (!terminOfertData) {\n isValid = false;\n errors['terminOfertData'] = 'To pole jest wymagane.';\n } else {\n if (terminOfertWithTime && terminOfertGodzina.value === null) {\n isValid = false;\n errors['terminOfertGodzina'] = 'To pole jest wymagane.';\n }\n\n if (this.planowanyTerminPodpisaniaUmowy && dateStringToYearMonth(this.planowanyTerminPodpisaniaUmowy) < dateStringToYearMonth(terminOfertData)) {\n isValid = false;\n errors['terminOfertData'] = 'Planowany termin podpisania umowy nie może być wcześniejszy niż miesiąc i rok wskazane w terminie ofert. Wróć do formularza ogłoszenia i zamień planowany termin podpisania umowy w sekcji Terminy.';\n } else if (dataOpublikowania && terminOfertData <= dataOpublikowania) {\n isValid = false;\n errors['terminOfertData'] = 'Termin składania ofert musi być późniejszy niż data opublikowania.';\n } else if (terminOfertData <= today) {\n isValid = false;\n errors['terminOfertData'] = 'Termin składania ofert musi być późniejszy niż dziś.';\n }\n }\n\n return [isValid, errors]\n }\n\n getTomorrow() {\n return new Date(new Date().getTime() + 24 * 60 * 60 * 1000)\n }\n\n getData() {\n const {\n dataOpublikowania,\n terminOfertGodzina,\n terminOfertData,\n terminOfertWithTime\n } = this.state;\n\n let terminOfert_;\n if (terminOfertWithTime) {\n terminOfert_ = `${datetimeToString(new Date(new Date(terminOfertData).setHours(terminOfertGodzina.value || 0)))}:00`;\n } else {\n terminOfert_ = `${terminOfertData} 23:59:59`;\n }\n\n return {\n id: this.props.formOgloszenie.context.ogloszenie.id,\n dataOpublikowania: dataOpublikowania,\n terminOfert: terminOfert_,\n }\n }\n\n // rendering\n\n render() {\n let content = null;\n if (this.state.initializingOn) {\n content = Trwa sprawdzanie danych do opublikowania ogłoszenia...;\n } else {\n content = (\n this.state.error.length > 0 ? this.renderError() : this.renderForm()\n );\n }\n return (\n \n {content}\n \n )\n }\n\n renderError() {\n return (\n <>\n \n \n OK\n \n \n )\n }\n\n renderForm() {\n const {\n dataOpublikowania,\n publishImmediately,\n savingOn,\n terminOfertGodzina,\n terminOfertData,\n terminOfertWithTime,\n } = this.state;\n\n const terminOfertDataError = this.state.formErrors.terminOfertData || '';\n const isTerminOfertDataInvalid = terminOfertDataError.length > 0;\n const terminOfertGodzinaError = this.state.formErrors.terminOfertGodzina || '';\n const isTerminOfertGodzinaInvalid = terminOfertGodzinaError.length > 0;\n let terminSkladaniaOfertAriDescribedby1 = null;\n let terminSkladaniaOfertAriDescribedby2 = null;\n let terminSkladaniaOfertAriDescribedby = null;\n\n terminSkladaniaOfertAriDescribedby1 = !['', null].includes(terminOfertData) && 'terminOfertData_id';\n terminSkladaniaOfertAriDescribedby2 = isTerminOfertDataInvalid && 'terminOfertData_error';\n terminSkladaniaOfertAriDescribedby = (terminSkladaniaOfertAriDescribedby1 && terminSkladaniaOfertAriDescribedby2) ? `${terminSkladaniaOfertAriDescribedby1} ${terminSkladaniaOfertAriDescribedby2}` : (terminSkladaniaOfertAriDescribedby1 || terminSkladaniaOfertAriDescribedby2)\n\n const terminOfertInputRef = React.createRef();\n return (\n
    \n {this.renderWhenPublishPart()}\n {!publishImmediately && this.renderPublicationDateField()}\n \n \n \n {isTerminOfertDataInvalid && {terminOfertDataError}}\n \n
    \n \n {\n return {value: h, label: `${fillWithLeadingZero(h)}:00`}\n }))}\n placeholder=\"--- Wybierz ---\"\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n value={terminOfertGodzina}\n onChange={(selectedOption) => this.setState({terminOfertGodzina: selectedOption})}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n {isTerminOfertGodzinaInvalid && {terminOfertGodzinaError}}\n
    \n
    \n {!['', null].includes(terminOfertData) && Konieczne jest zachowanie zgodnego z Wytycznymi, minimalnego okresu między publikacją ogłoszenia a terminem składania ofert. Uwaga! Jeżeli koniec wyznaczonego terminu przypada na sobotę lub dzień ustawowo wolny od pracy, w Bazie należy zaznaczyć dzień następujący po dniu lub dniach wolnych od pracy.}\n \n Wróć do edycji\n Potwierdź publikację\n \n
    \n )\n }\n\n renderWhenPublishPart() {\n const {publishImmediately, savingOn} = this.state;\n const isAlreadyPublished = this.props.formOgloszenie.isAlreadyPublished;\n\n return (\n
    \n Kiedy chcesz opublikować ogłoszenie:\n \n \n {isAlreadyPublished && To ogłoszenie zostało już wcześniej opublikowane, w związku z tym nowa wersja zostanie opublikowana natychmiastowo.}\n
    \n )\n }\n\n renderPublicationDateField() {\n const error = this.state.formErrors.dataOpublikowania || '';\n const isInvalid = error.length > 0;\n const dataOpublikowaniaInputRef = React.createRef();\n return (\n \n this.setState({dataOpublikowania: dateToString(date)})} />\n {isInvalid && {error}}\n \n )\n }\n}\n\n\nexport { FormPublikowanie };\n","import React, { useContext } from 'react';\n\nimport { UserContext } from '../../../context/user-context';\nimport { InfoTextWithIcon } from '../../common';\n\n\nconst AlreadyPublishedInfo = ({info}) => {\n const { user } = useContext(UserContext);\n\n return \n}\n\nexport { AlreadyPublishedInfo };\n","import { Component } from 'react';\n\n\nclass BaseStepComponent extends Component {\n stepName = '';\n\n // basic functions\n\n componentDidMount() {\n if (!this.props.isPreview) {\n window.scrollTo(0, 0);\n }\n\n // clear step error in menu\n this.context.clearStepError(this.stepName);\n\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n}\n\n\nexport { BaseStepComponent }\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { ButtonStyled, DialogCustom, GridCustom, FieldWithLabel, Text, TextFieldCustom } from '../../common';\n\n\nclass FormKryteriumOceny extends Component{\n\n constructor(props) {\n super(props);\n\n if (props.isNew) {\n this.state = Object.assign({}, props.kryteriumOceny, {\n czyKryteriumCenowe: false,\n opis: '',\n });\n } else {\n this.state = Object.assign({}, props.kryteriumOceny);\n }\n }\n\n // basic functions\n\n componentDidMount() {\n window.formOgloszenie.computeProgress();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n // handlers\n\n handleSave = () => {\n const {isNew, kryteriumOceny} = this.props;\n\n this.props.onSave({\n id: isNew ? null : kryteriumOceny.id,\n temporaryId: kryteriumOceny.temporaryId,\n zamowienieTemporaryId: this.props.zamowienieTemporaryId,\n czyKryteriumCenowe: this.state.czyKryteriumCenowe,\n opis: this.state.opis.trim(),\n }, isNew);\n }\n\n handleCloseDialog = () => {\n this.props.onCloseForm();\n }\n\n // rendering\n\n render() {\n return (\n \n <>\n this.setState({czyKryteriumCenowe: event.target.checked})}\n />\n \n {({formErrors}) => {\n const temporaryId = this.props.kryteriumOceny.temporaryId;\n const errors = formErrors.kryteriaOceny[temporaryId] || {};\n return (\n \n 0 ? 'kryteriumOceny_opis_error' : null}\n clearFieldContext=\"opis\"\n textarea\n invalid={(errors.opis || '').length > 0}\n fullwidth\n maxLength={300}\n aria-valuemax={300}\n characterCount\n value={this.state.opis}\n onChange={(event) => this.setState({opis: event.target.value})}\n onClear={(ev) => this.setState({opis: ''})}\n id=\"kryteriumOceny_opis_id\"\n aria-label={`Opis, maksymalna liczba znaków: 300. Wpisano ${this.state.opis.length} znaków.`} />\n {(errors.opis || '').length > 0 && {errors.opis}}\n \n )\n }}\n \n \n Anuluj\n {this.props.isNew ? 'Dodaj' : 'Zapisz zmiany'}\n \n \n \n )\n }\n}\n\n\nexport { FormKryteriumOceny };\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport { Icon } from '@rmwc/icon';\nimport { Draggable, Droppable } from 'react-simple-drag-n-drop';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { listOrEmpty, roundStringTo } from '../../../helpers';\nimport {\n Box,\n ButtonStyled,\n Container,\n DialogCustom,\n Ellipsis,\n GridCustom,\n FieldWithLabel,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { FormKryteriumOceny } from './FormKryteriumOceny';\n\n\nclass Zamowienie extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n newKryteriumOcenyOn: false,\n editingKryteriumOCenyId: null,\n isRemoving: false,\n szacunkowaWartosc: props.zamowienie.szacunkowaWartosc || '',\n };\n }\n\n // handlers\n\n handleMovePrzedmiotZamowieniaFromList(zamowienieTemporaryId, przedmiotZamowieniaTemporaryId) {\n this.props.saveDraggedTemporaryId(przedmiotZamowieniaTemporaryId).then(\n () => this.props.onMovePrzedmiotZamowienia(zamowienieTemporaryId));\n }\n\n handleCloseForm = () => {\n this.setState(\n {\n newKryteriumOcenyOn: false,\n editingKryteriumOCenyId: null,\n },\n () => {\n if (window.formOgloszenie) { window.formOgloszenie.computeProgress()}\n }\n );\n }\n\n handleSaveKryteriumOceny = (data, isNew) => {\n const z = this.props.zamowienie;\n if (isNew && !z.kryteriaOceny.length) {\n this.context.clearAttributeError('zamowienia', z.temporaryId, 'kryteriumOceny');\n }\n this.props.onSaveKryteriumOceny(data, isNew, this.handleCloseForm);\n }\n\n handleChangeSzacunkowaWartosc = (ev) => {\n let value = ev.target.value;\n this.setState(\n prevState => {\n if (value.indexOf(',') === -1 && value.length > 24) {\n value = prevState.szacunkowaWartosc;\n }\n return {szacunkowaWartosc: value}\n },\n () => this.props.onSetZamowienieAttribute(\n this.props.zamowienie.temporaryId, 'szacunkowaWartosc', value)\n );\n }\n\n handleBlurSzacunkowaWartosc = (ev) => {\n let value = roundStringTo(ev.target.value);\n this.setState(\n {szacunkowaWartosc: value},\n () => this.props.onSetZamowienieAttribute(\n this.props.zamowienie.temporaryId, 'szacunkowaWartosc', value)\n );\n }\n\n handleSzacunkowaWartoscKeyPress = (ev) => {\n const szacunkowaWartosc = this.state.szacunkowaWartosc;\n const szacunkowaWartoscLenth = szacunkowaWartosc.length;\n const key = ev.key;\n const keyIndex = ev.target.selectionStart;\n if (!/[\\d,]/.test(key)) {\n ev.preventDefault();\n return\n }\n if (key === ',') {\n if (szacunkowaWartosc.indexOf(',') > -1 || szacunkowaWartoscLenth === 0) {\n ev.preventDefault();\n return\n }\n if (keyIndex < szacunkowaWartoscLenth - 2) {\n ev.preventDefault();\n return\n }\n } else {\n // it's digit\n\n const comaIndex = szacunkowaWartosc.indexOf(',');\n\n if (comaIndex === -1 && szacunkowaWartoscLenth === 24) {\n ev.preventDefault();\n return\n }\n\n if (comaIndex === 24 && keyIndex <= 24) {\n ev.preventDefault();\n return\n }\n\n if (comaIndex > -1 && szacunkowaWartoscLenth === comaIndex + 3 && keyIndex > comaIndex) {\n ev.preventDefault();\n }\n }\n }\n\n handleSzacunkowaWartoscPaste = (ev) => {\n // stop data actually being pasted into input\n ev.preventDefault();\n // set pasted data via clipboard API\n const clipboardData = ev.clipboardData || window.clipboardData;\n const pastedData = clipboardData.getData('Text');\n if (/^\\d{1,24}(,\\d{2})?$/.test(pastedData)) {\n this.setState({szacunkowaWartosc: pastedData});\n }\n }\n\n handleCloseRemoveZamowienieDialog = () => {\n this.setState({isRemoving: false});\n }\n\n // rendering\n\n render() {\n // const from props\n const { isAlreadyPublished, formLocked, onSetZamowienieAttribute } = this.props;\n const { czyWariantowe, kryteriaOceny, przedmiotyZamowienia, temporaryId, tytul } = this.props.zamowienie;\n const kryteriaOceny_ = listOrEmpty(kryteriaOceny);\n const czyWariantowe_ = czyWariantowe || false;\n const tytul_ = tytul || '';\n\n // const from context\n const clearAttributeError = this.context.clearAttributeError;\n const errors = this.context.formErrors.zamowienia[temporaryId] || {};\n\n const isInvalidTytul = (errors.tytul || '').length > 0;\n const tytulId = `title_id_${temporaryId}`;\n\n const isSzacunkowaWartoscInvalid = (errors.szacunkowaWartosc || '').length > 0\n const szacunkowaWartoscId = `szacunkowaWartosc_id_${temporaryId}`;\n\n return (\n (isAlreadyPublished || formLocked) ? {} : this.props.onMovePrzedmiotZamowienia(temporaryId)}>\n \n \n Część {this.props.index}\n {this.renderRemoveZamowienie()}\n \n \n onSetZamowienieAttribute(\n temporaryId, 'tytul', ev.target.value\n )}\n onClear={ev => onSetZamowienieAttribute(\n temporaryId, 'tytul', ''\n )} />\n {isInvalidTytul && {errors.tytul}}\n \n onSetZamowienieAttribute(\n temporaryId, 'czyWariantowe', ev.target.checked\n )}\n />\n\n Przedmioty zamówienia\n Liczba wyników: {przedmiotyZamowienia.length}\n
      \n {przedmiotyZamowienia.map((pz) => this.renderPrzedmiotZamowienia(pz))}\n
    \n {(errors.przedmiotyZamowienia || '').length > 0 && {errors.przedmiotyZamowienia}}\n\n \n clearAttributeError('zamowienia', temporaryId, 'szacunkowaWartosc')}\n onChange={this.handleChangeSzacunkowaWartosc}\n onClear={(ev) => this.setState({szacunkowaWartosc: ''}, () => {\n onSetZamowienieAttribute(temporaryId, 'szacunkowaWartosc', '')\n })}\n onKeyPress={this.handleSzacunkowaWartoscKeyPress}\n onPaste={this.handleSzacunkowaWartoscPaste}\n />\n {isSzacunkowaWartoscInvalid && {errors.szacunkowaWartosc}}\n Wpisz wartość zgodnie ze wzorem: 1000000,00\n \n\n \n Liczba kryteriów oceny: {kryteriaOceny_.length}\n \n {kryteriaOceny_.map(ko => this.renderKryteriumOceny(ko))}\n \n {(errors.kryteriaOceny || '').length > 0 && Kryteria oceny - {errors.kryteriaOceny}}\n \n {this.renderKryteriumOcenyForm()}\n {this.renderNewKryteriumOcenyButton()}\n
    \n
    \n )\n }\n\n renderPrzedmiotZamowienia(pz) {\n const {isAlreadyPublished, formLocked} = this.props;\n let boxWithMenu;\n if (!isAlreadyPublished && this.props.zamowienieTemporaryIds.length > 1) {\n boxWithMenu = (\n <>\n

    Menu przenieś do innej części

    \n
      \n {this.props.zamowienieTemporaryIds.filter(\n ([temporaryId, indexOnList]) => parseInt(temporaryId) !== parseInt(this.props.zamowienie.temporaryId)).map(\n ([temporaryId, indexOnList]) => (\n
    • \n this.handleMovePrzedmiotZamowieniaFromList(temporaryId, pz.temporaryId)}>\n Przenieś do części {indexOnList}\n \n
    • \n ))}\n
    \n \n );\n }\n\n return (\n (isAlreadyPublished || formLocked) ? {} : this.props.saveDraggedTemporaryId(pz.temporaryId)}\n >\n \n \n \n {pz.opis}\n \n \n \n \n )\n }\n\n renderRemoveZamowienie() {\n if (this.props.isAlreadyPublished) { return null }\n if (this.state.isRemoving) {\n if (this.props.zamowienie.przedmiotyZamowienia.length) {\n return (\n <>\n To zamówienie ma zdefiniowane przedmioty zamówienia i nie może zostać usunięte.\n this.setState({isRemoving: false})}primary>OK\n \n )\n }\n return (\n \n \n Anuluj\n this.props.onRemoveZamowienie(this.props.zamowienie.temporaryId)} remove>Usuń\n \n \n )\n }\n\n return (\n <>\n 0}\n remove\n onClick={() => this.setState({isRemoving: true})}>\n Usuń część zamówienia\n \n \n )\n }\n\n renderKryteriumOceny(kryteriumOceny) {\n const formLocked = this.props.formLocked;\n return (\n \n {Object.keys(this.context.formErrors.kryteriaOceny[kryteriumOceny.temporaryId] || {}).length > 0 && Błędy!}\n \n {kryteriumOceny.czyKryteriumCenowe ? 'Tak' : 'Nie'}\n \n \n {kryteriumOceny.opis || '-'}\n \n {!this.props.isAlreadyPublished && (\n \n this.props.onRemoveKryteriumOceny(\n this.props.zamowienie.temporaryId, kryteriumOceny.temporaryId)\n }>\n Usuń\n \n this.setState(\n {editingKryteriumOCenyId: kryteriumOceny.temporaryId})\n }>\n Edytuj{Object.keys(this.context.formErrors.kryteriaOceny[kryteriumOceny.temporaryId] || {}).length > 0 && Uwaga! kryterium cenowe zawiera błędy.}\n \n \n )}\n \n )\n }\n\n renderKryteriumOcenyForm() {\n if (this.props.isAlreadyPublished || (!this.state.newKryteriumOcenyOn &&\n this.state.editingKryteriumOCenyId === null)) { return null }\n\n const {\n editingKryteriumOCenyId,\n newKryteriumOcenyOn\n } = this.state;\n\n const z = this.props.zamowienie;\n\n let ko;\n if (newKryteriumOcenyOn) {\n ko = {temporaryId: this.props.kryteriumOcenyLastTemporaryId + 1};\n } else {\n ko = z.kryteriaOceny.filter(k => k.temporaryId === editingKryteriumOCenyId)[0];\n }\n\n return \n }\n\n renderNewKryteriumOcenyButton() {\n if (this.props.isAlreadyPublished || this.state.newKryteriumOcenyOn) { return null }\n const { temporaryId } = this.props.zamowienie;\n const errors = this.context.formErrors.zamowienia[temporaryId] || {};\n return this.setState({newKryteriumOcenyOn: true, editingKryteriumOCenyId: null})}>\n Dodaj kryterium{(errors.kryteriaOceny || '').length > 0 && {errors.kryteriaOceny}}\n \n }\n}\n\n\nZamowienie.contextType = AdvertisementContext;\n\n\nexport { Zamowienie };\n","import React from 'react';\nimport { Radio } from '@rmwc/radio';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { getLastTemporaryId, listOrEmpty } from '../../../helpers';\nimport {\n ButtonStyled,\n Container,\n GridCustom,\n Steps,\n Text,\n} from '../../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { AlreadyPublishedInfo } from './AlreadyPublishedInfo';\nimport { BaseStepComponent } from './BaseStepComponent';\nimport { Zamowienie } from './Zamowienie';\n\n\nclass StepCzesciKryteria extends BaseStepComponent {\n stepName = 'czesciKryteria';\n\n constructor(props) {\n super(props);\n this.state = {draggedTemporaryId : null};\n }\n\n // handlers\n\n handleSaveCzyDopuszczalnaOfertaCzesciowa = (ev) => {\n const czyDopuszczalnaOfertaCzesciowa = ev.currentTarget.value === 'true';\n this.context.setAttributeValue(\n 'czyDopuszczalnaOfertaCzesciowa', czyDopuszczalnaOfertaCzesciowa);\n }\n\n handleSaveDraggableTemporaryId = (temporaryId) => {\n return new Promise((resolve, reject) => {\n this.setState({draggedTemporaryId: temporaryId}, resolve());\n })\n }\n\n handleMovePrzedmiotZamowienia = (zamowienieTemporaryId) => {\n this.context.movePrzedmiotZamowienia(\n zamowienieTemporaryId,\n this.state.draggedTemporaryId,\n () => this.setState({draggedTemporaryId: null})\n );\n }\n\n // rendering\n\n render() {\n const { isAlreadyPublished, isPreview } = this.props;\n const formLocked = isPreview || this.context.validationOn || this.context.savingOn;\n const o = isPreview ? {} : this.context.ogloszenie;\n const czyDopuszczalnaOfertaCzesciowa = isPreview ? false : o.czyDopuszczalnaOfertaCzesciowa;\n const changeCzyDopuszczalnaOfertaCzesciowaForbidden = czyDopuszczalnaOfertaCzesciowa && o.zamowienia.length > 1;\n const radioDisabled = isAlreadyPublished || formLocked || changeCzyDopuszczalnaOfertaCzesciowaForbidden;\n\n return (\n <>\n \n {isAlreadyPublished && }\n \n
    \n Czy dopuszczalna oferta częściowa?\n \n \n
    \n {!isAlreadyPublished && changeCzyDopuszczalnaOfertaCzesciowaForbidden &&\n Usuń dodatkowe części zamówienia aby odblokować tę opcję.}\n
    \n\n {this.renderZamowienia(formLocked)}\n\n this.props.onChangeCurrentMenuLink('pozostale')}\n onPrevClick={() => this.props.onChangeCurrentMenuLink('warunki')}\n />\n \n )\n }\n\n renderZamowienia(formLocked) {\n if (!this.props.isPreview && this.context.ogloszenie.zamowienia.length) {\n const isAlreadyPublished = this.props.isAlreadyPublished;\n const {\n czyDopuszczalnaOfertaCzesciowa,\n zamowienia,\n } = this.context.ogloszenie;\n const zamowienieTemporaryIds = zamowienia.map((z, i) => [z.temporaryId, i + 1]);\n return (\n <>\n Liczba części zamówienia: {zamowienia.length}\n
      \n {listOrEmpty(zamowienia).map((z, i) => (\n \n ))}\n
    \n {!isAlreadyPublished && czyDopuszczalnaOfertaCzesciowa && (\n \n Dodaj część zamówienia\n \n )}\n \n )\n } else if ((this.context.formErrors.ogloszenie.zamowienia_kryteriaOceny || '').length) {\n return Zdefiniuj przedmioty zamówienia, aby móc dodawać kryteria do części zamówienia.\n } else {return null}\n }\n}\n\n\nStepCzesciKryteria.contextType = AdvertisementContext;\n\n\nexport { StepCzesciKryteria }\n","import React, { useContext, useEffect } from 'react';\n\nimport {\n AdvertisementContext\n} from '../../../../context/advertisementContext';\n\n\nexport const withStepConfiguration = (StepComponent, stepName) => {\n\n return (props) => {\n const context = useContext(AdvertisementContext);\n\n useEffect(() => {\n if (!props.isPreview) {\n window.scrollTo(0, 0);\n }\n\n // clear step error in menu\n context.clearStepError(stepName);\n\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n return () => {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n return \n }\n}\n","import React, { useContext } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport { Typography } from '@rmwc/typography';\n\nimport { SELECT_CLASSNAME, SELECT_INVALID_CLASSNAME } from '../../../const';\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { UserContext } from '../../../context/user-context';\nimport { listOrEmpty } from '../../../helpers';\n import { sortProjects } from '../../../sorters';\nimport { Container, FieldWithLabel, GridCustom, Select, Steps, Text,\n TextFieldCustom } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { AlreadyPublishedInfo } from './AlreadyPublishedInfo';\nimport { withStepConfiguration } from './hoc/withStepConfiguration';\n\n\nconst NO_PROJECT_TEXT =\n 'Nie masz zdefiniowanych projektów. Określ je w menu Projekty i Nabory.';\nconst NO_PROJECT_ADMIN_TEXT =\n 'Ogłoszeniodawca nie ma zdefiniowanych projektów.';\nconst NO_ENROLLMENT_TEXT =\n 'Nie masz zdefiniowanych naborów. Określ je w menu Projekty i Nabory.';\nconst NO_ENROLLMENT_ADMIN_TEXT =\n 'Ogłoszeniodawca nie ma zdefiniowanych naborów.';\nconst NO_OSOBY_TEXT =\n 'Nie masz zdefiniowanych osób do kontaktu. Określ je w ustawieniach profilu.';\n\n\nconst StepPozostaleBase = (props) => {\n\n function sortProjectsEnrollments(objectList) {\n return sortProjects(objectList, 'calyNumer_asc')\n }\n\n const { isAlreadyPublished, isPreview, projectsSelected } = props;\n\n const { user } = useContext(UserContext);\n const { advertisementManagerType } = user;\n const context = useContext(AdvertisementContext);\n const {\n nabory,\n ogloszenie: o,\n osobyDoKontaktu,\n projekty,\n setAttributeValue\n } = context;\n\n const formLocked = isPreview || context.validationOn || context.savingOn;\n\n const errors = context.formErrors.ogloszenie;\n const osobyDoKontaktu_ = isPreview ? [] : listOrEmpty(o.osobyDoKontaktu);\n\n const isProjektyInvalid = (errors.projekty || '').length > 0;\n const isNumerNaboruInvalid = (errors.nabor || '').length > 0;\n const isTytulInvalid = (errors.tytul || '').length > 0;\n const isOsobyDoKontaktuInvalid = (errors.osobyDoKontaktu || '').length > 0;\n\n let tytul = '';\n let zamowieniaUzupelniajace = '';\n let warunkiZmianyUmowy = '';\n if (!isPreview) {\n tytul = o.tytul;\n warunkiZmianyUmowy = o.warunkiZmianyUmowy;\n zamowieniaUzupelniajace = o.zamowieniaUzupelniajace;\n }\n\n const { isAuthor } = advertisementManagerType;\n\n const projectsEnrollmentsDisabled = formLocked ||\n (isAlreadyPublished && isAuthor);\n const contactPersonsDisabled = formLocked ||\n (isAlreadyPublished && advertisementManagerType.isAdmin);\n\n return (\n <>\n \n {isAlreadyPublished && }\n \n \n {isPreview ? '-' : o.ogloszenie.numer || '-'}\n \n \n \n {projectsSelected && (\n \n o.projekty.includes(parseInt(p.id))\n ).map(p => ({value: p.id, label: p.calyNumer}))}\n isDisabled={projectsEnrollmentsDisabled}\n isClearable={false}\n isMulti\n isSearchable\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={\n sortProjectsEnrollments(projekty)\n .map(p => ({value: p.id, label: p.calyNumer}))\n }\n placeholder='Wybierz...'\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej. Możesz wybrać kilka opcji.' }}\n styles={customSelectStyles}\n onChange={selectedOptions => setAttributeValue(\n 'projekty', selectedOptions === null ? [] : [...selectedOptions].map(option => parseInt(option.value))\n )}\n />\n {!projekty.length &&\n \n {isAuthor ? NO_PROJECT_TEXT : NO_PROJECT_ADMIN_TEXT}\n \n }\n {isProjektyInvalid && {errors.projekty}}\n \n )}\n {!projectsSelected && (\n \n o.nabor.value === n.id)\n .map(p => ({value: p.id, label: p.calyNumer}))\n }\n isDisabled={projectsEnrollmentsDisabled}\n isClearable={false}\n isSearchable\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={\n sortProjectsEnrollments(nabory)\n .map(n => ({value: n.id, label: n.calyNumer}))\n }\n placeholder='Wybierz...'\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n onChange={selectedOption => setAttributeValue('nabor', selectedOption)}\n />\n {!nabory.length &&\n \n {isAuthor ? NO_ENROLLMENT_TEXT : NO_ENROLLMENT_ADMIN_TEXT }\n \n }\n {isNumerNaboruInvalid && {errors.nabor}}\n \n )}\n \n \n setAttributeValue('tytul', ev.target.value)}\n onClear={ev => setAttributeValue('tytul', '')} />\n {isTytulInvalid && {errors.tytul}}\n \n \n setAttributeValue('zamowieniaUzupelniajace', ev.target.value)}\n onClear={ev => setAttributeValue('zamowieniaUzupelniajace', '')} />\n \n \n setAttributeValue('warunkiZmianyUmowy', ev.target.value)}\n onClear={ev => setAttributeValue('warunkiZmianyUmowy', '')} />\n \n \n 0 ? SELECT_INVALID_CLASSNAME : SELECT_CLASSNAME}\n closeMenuOnSelect={false}\n defaultValue={osobyDoKontaktu.filter(o => osobyDoKontaktu_.includes(o.id)).map(\n o => ({value: o.id, label: o.imie + ' ' + o.nazwisko}))}\n isClearable={false}\n isDisabled={contactPersonsDisabled}\n isMulti\n isSearchable\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={osobyDoKontaktu.map(o => ({value: o.id, label: o.imie + ' ' + o.nazwisko}))}\n placeholder='Wybierz...'\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej. Możesz wybrać kilka opcji.' }}\n styles={customSelectStyles}\n onChange={selectedOptions => setAttributeValue(\n 'osobyDoKontaktu', selectedOptions === null ? [] : [...selectedOptions].map(option => option.value))}\n />\n {!osobyDoKontaktu.length && {NO_OSOBY_TEXT}}\n {isOsobyDoKontaktuInvalid && {errors.osobyDoKontaktu}}\n \n \n props.onChangeCurrentMenuLink('zalaczniki')}\n onPrevClick={() => props.onChangeCurrentMenuLink('czesciKryteria')}\n />\n \n )\n}\n\nconst StepPozostale = withStepConfiguration(StepPozostaleBase, 'pozostale');\nexport { StepPozostale }\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject } from '../../../serializers';\nimport { customSelectStyles } from '../../vars/vars';\nimport { ButtonStyled, FieldWithLabel, GridCustom, Select, Text } from '../../common';\n\n\nclass FormKodCPV extends Component{\n\n constructor(props) {\n super(props);\n const initial = props.initial ? this.setInitialOptions() : (props.isMulti ? [] : null);\n this.state = {\n selectedKod: initial,\n selectedKodError: '',\n selectMenuIsOpen: false,\n inputOptions: initial,\n moreOptionsAvailable: false,\n fetchError: '',\n };\n\n this.requestId = 0;\n\n this.xhrFetch = null;\n this.xhrTimeout = null;\n\n this.handleChangeInputKodCPV = this.handleChangeInputKodCPV.bind(this);\n this.handleFetchSuccess = this.handleFetchSuccess.bind(this);\n this.handleFetchError = this.handleFetchError.bind(this);\n this.handleFetchIncorrectStatus = this.handleFetchIncorrectStatus.bind(this);\n this.handleBlurKodCPV = this.handleBlurKodCPV.bind(this);\n this.handleChangeKodCPV = this.handleChangeKodCPV.bind(this);\n this.handleAddKodCPV = this.handleAddKodCPV.bind(this);\n }\n\n // basic functions\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n\n // clear timeouts if exist\n if (this.xhrTimeout !== null) {\n clearTimeout(this.xhrTimeout);\n }\n }\n\n // handlers\n\n handleChangeInputKodCPV(inputValue) {\n if (this.xhrTimeout !== null) {\n clearTimeout(this.xhrTimeout);\n this.xhrTimeout = null;\n }\n\n if (inputValue.length < 5 && (inputValue.length < 3 || !/^[A-Za-z ąĄćĆęĘłŁńŃóÓśŚźŹżŹ]{3,4}$/.test(inputValue))) {\n this.setState({\n selectMenuIsOpen: false,\n inputOptions: [],\n moreOptionsAvailable: false,\n fetchError: ''\n });\n } else {\n this.requestId++;\n this.xhrTimeout = setTimeout(() => {\n this.setState(\n {inputOptions: [], moreOptionsAvailable: false, fetchError: ''},\n () => {\n // get data from server\n this.xhrFetch = fetchApi(\n '/api/dictionaries/cpv',\n 'GET',\n {},\n {search_key: inputValue, request_id: this.requestId},\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n );\n }, 500);\n }\n }\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n\n if (parseInt(data.request_id) < this.requestId) {\n // do nothing, there is another fetch on the fly\n return\n }\n let inputOptions = getSerializedObject(data).kodyCPV || [];\n if (inputOptions.length && this.props.usedIds) {\n inputOptions = inputOptions.filter(\n option => !this.props.usedIds.includes(option.id));\n }\n this.setState({\n selectMenuIsOpen: true,\n inputOptions: inputOptions.map(\n option => ({\n value: option.id,\n data: {id: String(option.id), kod: option.kod, nazwa: option.nazwa},\n label: `${option.kod} ${option.nazwa}`\n })\n ),\n moreOptionsAvailable: data.meta.last_page > 1,\n });\n }\n\n handleFetchError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: `Nie udało się pobrać kodów CPV. ${data.message}`,\n });\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: `Nie udało się pobrać kodów CPV. Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n handleBlurKodCPV(ev) {\n this.setState({selectMenuIsOpen: false});\n }\n\n handleChangeKodCPV(selectedOption) {\n let selectedKod;\n if (this.props.isMulti) {\n selectedKod = (selectedOption || []).map(o => o.data);\n } else {\n selectedKod = selectedOption.data;\n }\n this.setState(\n {\n selectMenuIsOpen: false,\n selectedKod,\n },\n () => {\n if (!this.props.withButtons) {\n this.props.addKodCPV(this.state.selectedKod);\n }\n }\n );\n }\n\n handleAddKodCPV(event) {\n if (!this.validate()) { return }\n this.props.addKodCPV(this.state.selectedKod);\n }\n\n // helpers\n\n setInitialOptions() {\n const initial = this.props.initial;\n if (this.props.isMulti) {\n return initial.map(i => {\n return {\n value: parseInt(i.id),\n data: i,\n label: `${i.kod} ${i.nazwa}`}\n })\n } else {\n return {\n value: parseInt(initial.id),\n data: initial,\n label: `${initial.kod} ${initial.nazwa}`\n }\n }\n }\n\n validate() {\n // clean errors\n this.setState({selectedKodError: ''});\n if (this.state.selectedKod === null) {\n this.setState({selectedKodError: 'To pole jest wymagane.'});\n return false\n }\n return true\n }\n\n // rendering\n\n render() {\n const {\n fetchError,\n inputOptions,\n moreOptionsAvailable,\n selectedKod,\n selectedKodError,\n selectMenuIsOpen,\n } = this.state;\n const isSelectInvalid = selectedKodError.length > 0;\n const moreOptionsAvailableText = 'Istnieje więcej pasujących wyników. Jeśli na liście nie ma szukanego kodu, wpisz dodatkowe znaki.';\n return (\n <>\n \n {moreOptionsAvailable && {moreOptionsAvailableText}}\n { return 'Wybierz opcję z listy rozwijanej' }}\n defaultValue={selectedKod}\n isMulti={this.props.isMulti || false}\n menuIsOpen={selectMenuIsOpen}\n options={inputOptions}\n placeholder='Wpisz co najmniej 5 cyfr lub 3 litery...'\n styles={customSelectStyles}\n className={isSelectInvalid ? 'select-custom select-custom--invalid' : 'select-custom'}\n onBlur={this.handleBlurKodCPV}\n onChange={this.handleChangeKodCPV}\n onInputChange={this.handleChangeInputKodCPV}\n components={{\n DropdownIndicator: () => null,\n IndicatorSeparator: () => null\n }}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n aria-label={`Kody CPV, wpisz co najmniej 5 cyfr lub 3 litery ${moreOptionsAvailable ? moreOptionsAvailableText : ''} ${isSelectInvalid ? selectedKodError : ''} ${fetchError.length > 0 ? fetchError : ''}`}\n />\n {isSelectInvalid && {selectedKodError}}\n {fetchError.length > 0 && {fetchError}}\n \n {this.props.withButtons && this.renderButtons()}\n \n )\n }\n\n renderButtons() {\n const addButtonDisabled = this.state.selectedKod === null;\n return (\n \n Anuluj dodawanie kodu CPV\n Dodaj kod CPV. {addButtonDisabled && 'Guzik nieaktywny, musisz wybrać kod, aby go dodać.'}\n \n )\n }\n}\n\n\nexport { FormKodCPV };\n","import React, { Component } from 'react';\n\nimport { ButtonStyled, GridCustom, Text } from '../../common';\nimport { FormKodCPV } from './FormKodCPV';\n\n\nclass KodyCPV extends Component{\n\n constructor(props) {\n super(props);\n this.state = {\n newKodOn: false,\n selectedKod: null,\n };\n\n this.handleAddKodCPV = this.handleAddKodCPV.bind(this);\n this.handleRemoveKodCPV = this.handleRemoveKodCPV.bind(this);\n }\n\n // handlers\n\n handleAddKodCPV(selectedCode) {\n this.setState(\n {newKodOn: false},\n () => this.props.addKodCPV(selectedCode)\n );\n }\n\n handleRemoveKodCPV(id_) {\n this.props.removeKodCPV(id_);\n }\n\n handleCancelKodCPV = () => {\n this.setState({newKodOn: false, selectedKod: null})\n }\n\n // rendering\n\n render() {\n const kodyCPV = this.props.kodyCPV;\n return (\n <>\n Liczba kodów CPV: {kodyCPV.length}\n
      \n {kodyCPV.map(kod_ => {\n return (\n \n {kod_.kod} {kod_.nazwa}\n this.handleRemoveKodCPV(kod_.id)} remove className=\"btn--delete\">\n Usuń kod CPV\n \n \n )\n })}\n
    \n {this.renderNewKodForm()}\n \n )\n }\n\n renderNewKodForm() {\n if (this.state.newKodOn) {\n return parseInt(k.id))}\n withButtons\n addKodCPV={this.handleAddKodCPV}\n onCancelKodCPV={this.handleCancelKodCPV} />\n }\n return (\n \n this.setState({newKodOn: true})}>\n Dodaj kod CPV {this.props.errorsKodyCPV}\n \n \n )\n }\n}\n\n\nexport { KodyCPV };\n","import React, { Component } from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport {\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { FormKraj, FormMiejscowosc } from '../common';\n\n\nconst POLAND = 'Polska';\nconst EMPTY_ADDRESS = {\n kraj: POLAND,\n wojewodztwo: null,\n powiat: null,\n gmina: null,\n miejscowosc: '',\n}\n\n\nclass FormMiejsceRealizacji extends Component {\n\n constructor(props) {\n super(props);\n this.state = Object.assign({\n typ: null,\n adresErrors: {},\n }, EMPTY_ADDRESS);\n\n this.handleChangeMiejscowosc = this.handleChangeMiejscowosc.bind(this);\n this.handleChangeTyp = this.handleChangeTyp.bind(this);\n this.handleSaveMiejsceRealizacji = this.handleSaveMiejsceRealizacji.bind(this);\n }\n\n // basic functions\n\n componentDidMount() {\n this.setState({typ: this.context.adresId});\n }\n\n // handlers\n\n handleChangeMiejscowosc(value) {\n this.setState(prevState =>\n ({\n adresErrors: Object.assign({}, prevState.adresErrors, {miejscowosc: ''}),\n kraj: POLAND,\n ...value\n })\n );\n }\n\n handleChangeZagranicaAttribute(value, field) {\n this.setState(prevState =>\n ({\n adresErrors: Object.assign({}, prevState.adresErrors, {[field]: ''}),\n [field]: value,\n })\n );\n }\n\n handleChangeTyp(selectedOptions) {\n const typ = parseInt(selectedOptions.value);\n if (typ === this.context.adresId) {\n this.setState({\n typ: typ,\n ...EMPTY_ADDRESS,\n adresErrors: {},\n });\n } else if (typ === this.context.zagranicaId) {\n this.setState({\n typ: typ,\n kraj: null,\n wojewodztwo: null,\n powiat: null,\n gmina: null,\n miejscowosc: '',\n adresErrors: {},\n });\n } else {\n this.setState({\n typ: typ,\n kraj: POLAND,\n wojewodztwo: null,\n powiat: null,\n gmina: null,\n miejscowosc: null,\n adresErrors: {},\n });\n }\n }\n\n handleSaveMiejsceRealizacji() {\n if (!this.validate()) { return }\n this.props.saveMiejsceRealizacji({\n id: null,\n temporaryId: this.props.temporaryId,\n typ: this.state.typ,\n kraj: this.state.kraj,\n wojewodztwo: this.state.wojewodztwo,\n powiat: this.state.powiat,\n gmina: this.state.gmina,\n miejscowosc: this.state.miejscowosc,\n });\n }\n\n // helpers\n\n isSaveButtonDisabled() {\n // can't save miejsce realizacji if it's adres and not wojewodztwo set\n // or it's zagranica and not kraj and miejscowosc set\n const {\n kraj,\n miejscowosc,\n typ,\n } = this.state;\n return (\n (typ === this.context.adresId && (miejscowosc || '').length === 0) ||\n (typ === this.context.zagranicaId && !((kraj || '').length && (miejscowosc || '').length))\n )\n }\n\n sortMiejscowosc(miejscowosc1, miejscowosc2) {\n return miejscowosc1.miejscowosc.localeCompare(miejscowosc2.miejscowosc, 'pl')\n }\n\n validate() {\n // clean errors\n this.setState({adresErrors: {}});\n const {\n kraj,\n miejscowosc,\n typ,\n } = this.state;\n if (typ === this.context.adresId && !miejscowosc.length) {\n this.setState({adresErrors: {miejscowosc: 'To pole jest wymagane.'}})\n return false\n }\n if (typ === this.context.zagranicaId && (!(kraj || '').length || !miejscowosc.length)) {\n let errors = {};\n for (let name of ['kraj', 'miejscowosc']) {\n if (!(this.state[name] || '').length) {\n errors[name] = 'To pole jest wymagane.'\n }\n }\n this.setState({adresErrors: errors});\n return false\n }\n return true\n }\n\n // rendering\n\n render() {\n const isSaveButtonDisabled = this.isSaveButtonDisabled();\n const {\n adresId,\n typMiejscaRealizacji,\n zagranicaId,\n } = this.context;\n const typ = this.state.typ;\n\n return (\n \n 'Brak wybranej opcji'}\n options={Object.entries(typMiejscaRealizacji).map(([key, value]) => {\n return {value: key, label: value}\n })}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={{\n value: this.state.typ,\n label: typMiejscaRealizacji[this.state.typ]\n }}\n onChange={this.handleChangeTyp}\n />\n \n {adresId === typ && this.renderAdresForm()}\n {zagranicaId === typ && this.renderZagranicaForm()}\n \n \n Anuluj dodawanie miejsca realizacji\n Dodaj miejsce realizacji.{isSaveButtonDisabled && 'Guzik nieaktywny, musisz wybrać miejsce realizacji, aby je dodać.'}\n \n \n )\n }\n\n renderAdresForm() {\n const adresErrors = this.state.adresErrors;\n const isSelectInvalid = adresErrors.miejscowosc && adresErrors.miejscowosc.length > 0;\n return (\n \n )\n }\n\n renderZagranicaForm() {\n const {\n adresErrors,\n kraj,\n miejscowosc,\n } = this.state;\n const isSelectInvalid = adresErrors.kraj && adresErrors.kraj.length > 0;\n return (\n <>\n this.handleChangeZagranicaAttribute(selectedOption.value, 'kraj')} />\n\n \n 0 ? 'miejscowosc_error' : null}\n clearFieldContext=\"miejscowość\"\n value={miejscowosc || ''}\n onChange={(event) => this.handleChangeZagranicaAttribute(event.target.value, 'miejscowosc')}\n onClear={() => this.handleChangeZagranicaAttribute('', 'miejscowosc')}\n aria-required=\"true\"\n id=\"miejscowosc_id\" />\n {adresErrors.miejscowosc && adresErrors.miejscowosc.length > 0 && {adresErrors.miejscowosc}}\n \n \n )\n }\n}\n\nFormMiejsceRealizacji.contextType = AdvertisementContext;\n\nexport { FormMiejsceRealizacji };\n","import React, { useContext } from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { ButtonStyled, GridCustom, FieldWithLabel, Text } from '../../common';\n\n\nconst MiejsceRealizacji = (props) => {\n const ogloszeniaContext = useContext(AdvertisementContext)\n\n const {\n gmina,\n kraj,\n miejscowosc,\n powiat,\n temporaryId,\n typ,\n wojewodztwo,\n } = props.miejsceRealizacji;\n\n let address = null;\n if (typ === ogloszeniaContext.adresId) {\n address = (\n \n \n {kraj}\n \n \n {wojewodztwo}\n \n \n {powiat || '-'}\n \n \n {gmina || '-'}\n \n \n {miejscowosc || '-'}\n \n \n );\n } else if (typ === ogloszeniaContext.zagranicaId) {\n address = (\n \n \n {kraj || '-'}\n \n \n {miejscowosc || '-'}\n \n \n );\n }\n\n return (\n
  • \n \n {ogloszeniaContext.typMiejscaRealizacji[typ]}\n props.removeMiejsceRealizacji(temporaryId)} remove className=\"btn--delete\">\n Usuń miejsce realizacji\n \n \n {address}\n
  • \n )\n};\n\n\nexport { MiejsceRealizacji };\n","import React, { Component } from 'react';\n\nimport { getLastTemporaryIdFromList } from '../../../helpers';\nimport { ButtonStyled, GridCustom, Text } from '../../common';\nimport { FormMiejsceRealizacji } from './FormMiejsceRealizacji';\nimport { MiejsceRealizacji } from './MiejsceRealizacji';\n\n\nclass MiejscaRealizacji extends Component{\n\n constructor(props) {\n super(props);\n this.state = {\n newMiejsceRealizacjiOn: false,\n };\n\n this.handleSaveMiejsceRealizacji = this.handleSaveMiejsceRealizacji.bind(this);\n }\n\n render() {\n const miejscaRealizacji = this.props.miejscaRealizacji;\n return (\n <>\n Liczba miejsc realizacji: {miejscaRealizacji.length}\n
      \n {miejscaRealizacji.map((mr) =>\n \n )}\n
    \n {this.renderNewMiejsceRealizacjiForm()}\n \n )\n }\n\n renderNewMiejsceRealizacjiForm() {\n if (this.state.newMiejsceRealizacjiOn) {\n // temporaryId is computed based on temporaryIds of all of miejscaRealizacji\n // in ogloszenie and all not saved yet miejscaRealizacji in the przedmiotZamowienia\n const temporaryId = Math.max(this.props.lastTemporaryId, getLastTemporaryIdFromList(this.props.miejscaRealizacji)) + 1;\n return this.setState({newMiejsceRealizacjiOn: false})}\n saveMiejsceRealizacji={this.handleSaveMiejsceRealizacji}\n computeProgress={this.props.computeProgress} />\n } else {\n if (this.props.miejscaRealizacji.length === 10) {\n return null\n }\n return (\n \n this.setState({newMiejsceRealizacjiOn: true})}>\n Dodaj miejsce realizacji {this.props.errorsKodyMiejscaRealizacji}\n \n \n )\n }\n }\n\n handleSaveMiejsceRealizacji(data) {\n this.props.saveMiejsceRealizacji(data).then(\n () => this.setState({newMiejsceRealizacjiOn: false}));\n }\n}\n\n\nexport { MiejscaRealizacji };\n","import React, { Component } from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { ButtonStyled, GridCustom, FieldWithLabel, Select, Text,\n TextFieldCustom } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { KodyCPV } from './KodyCPV';\nimport { MiejscaRealizacji } from './MiejscaRealizacji';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: 'Wybierz',\n}\n\n\nclass FormPrzedmiotZamowienia extends Component {\n\n constructor(props) {\n super(props);\n const pz = props.przedmiotZamowienia || {};\n this.state = {\n temporaryId: pz.temporaryId,\n id: pz.id || null,\n kategoria: pz.kategoria || null,\n podkategoria: pz.podkategoria || null,\n okresGwarancji: pz.okresGwarancji || '',\n opis: pz.opis || '',\n kodyCPV: pz.kodyCPV || [],\n miejscaRealizacji: pz.miejscaRealizacji || [],\n errors: {},\n };\n\n }\n\n // basic functions\n\n componentDidMount() {\n this.setState(\n {errors: this.context.formErrors.przedmiotyZamowienia[this.props.przedmiotZamowienia.temporaryId] || {}},\n () => window.formOgloszenie.computeProgress()\n );\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n // handlers\n\n handleAddKodCPV = (kod) => {\n this.setState(\n prevState => ({\n kodyCPV: [...prevState.kodyCPV, kod]\n }),\n );\n }\n\n handleRemoveKodCPV = (id_) => {\n this.setState(prevState => ({\n kodyCPV: prevState.kodyCPV.filter(code => parseInt(code.id) !== parseInt(id_)),\n }));\n }\n\n handleRemoveMiejsceRealizacji = (temporaryId) => {\n this.setState(prevState => ({\n miejscaRealizacji: prevState.miejscaRealizacji.filter(mr => mr.temporaryId !== temporaryId),\n }));\n }\n\n handleSaveMiejsceRealizacji = (data, isNew) => {\n return new Promise((resolve, reject) => {\n this.setState(prevState => ({\n miejscaRealizacji: [...prevState.miejscaRealizacji, data]\n }), resolve());\n })\n }\n\n handleSave = () => {\n const data = this.getData();\n this.context.clearPrzedmiotZamowieniaErrors(\n this.props.przedmiotZamowienia.temporaryId,\n () => this.props.onSave(data)\n );\n }\n\n // helpers\n\n getData() {\n let data = Object.assign({}, this.state);\n delete data['errors'];\n return data\n }\n\n // rendering\n\n render() {\n const {\n errors,\n kategoria,\n kodyCPV,\n miejscaRealizacji,\n okresGwarancji,\n opis,\n podkategoria,\n } = this.state;\n const{\n przedmiotZamowieniaPodkategoriaDict,\n przedmiotZamowieniaKategoria,\n przedmiotZamowieniaKategoriaDict,\n } = this.context;\n\n const selectClassName = 'select-custom';\n const selectInvalidClassName = 'select-custom select-custom--invalid';\n const isAlreadyPublished = this.props.isAlreadyPublished;\n const kategoriaInvalid = (errors.kategoria || '').length > 0\n\n return (\n <>\n \n \n 0) ? selectInvalidClassName : selectClassName}\n indicatorId=\"pz_kategoria_id\"\n isDisabled={isAlreadyPublished}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={[EMPTY_VALUE, ].concat(...przedmiotZamowieniaKategoria.map(t => ({value: t.id, label: t.nazwa})))}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={{value: kategoria || EMPTY_VALUE.value, label: przedmiotZamowieniaKategoriaDict[kategoria] || EMPTY_VALUE.label}}\n onChange={(selectedOption) => {\n this.setState({kategoria: parseInt(selectedOption.value) || null, podkategoria: null});\n }}\n />\n {kategoriaInvalid && {errors.kategoria}}\n \n \n 0) ? selectInvalidClassName : selectClassName}\n indicatorId=\"pz_podkategoria_id\"\n isDisabled={isAlreadyPublished || kategoria === null}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n options={kategoria === null ? [EMPTY_VALUE, ] : [EMPTY_VALUE, ].concat(\n ...przedmiotZamowieniaKategoria.filter(k => parseInt(k.id) === parseInt(kategoria))[0].podkategorie.map(p => ({value: p.id, label: p.nazwa})))}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n styles={customSelectStyles}\n value={{value: podkategoria || EMPTY_VALUE.value, label: przedmiotZamowieniaPodkategoriaDict[podkategoria] || EMPTY_VALUE.label}}\n onChange={(selectedOption) => this.setState({podkategoria: parseInt(selectedOption.value) || null})}\n />\n {(errors.podkategoria || '').length > 0 && {errors.podkategoria}}\n \n \n this.setState({okresGwarancji: event.target.value})}\n onClear={(event) => this.setState({okresGwarancji: ''})}\n id=\"okresGwarancji_id\"\n aria-label={`Okres gwarancji, maksymalna liczba znaków: 200. Wpisano ${okresGwarancji.length} znaków.`} />\n \n \n\n \n 0 ? 'pz_opis_error' : null}\n textarea\n fullwidth\n maxLength={10000}\n aria-valuemax={10000}\n clearFieldContext=\"opis\"\n characterCount\n invalid={(errors.opis || '').length > 0}\n value={opis}\n onChange={(event) => this.setState({opis: event.target.value})}\n onClear={(ev) => this.setState({opis: ''})}\n id=\"pz_opis_id\"\n aria-label={`Opis, maksymalna liczba znaków: 10000. Wpisano ${opis.length} znaków.`} />\n {(errors.opis || '').length > 0 && {errors.opis}}\n \n \n {(errors.kodyCPV || '').length > 0 && {errors.kodyCPV}}\n \n \n \n {(errors.miejscaRealizacji || '').length > 0 && Miejsce realizacji - {errors.miejscaRealizacji}}\n \n \n \n Anuluj\n \n Zapisz przedmiot zamówienia\n \n \n \n )\n }\n}\n\nFormPrzedmiotZamowienia.contextType = AdvertisementContext;\n\n\nexport { FormPrzedmiotZamowienia };\n","import React, { Component } from 'react';\nimport '@material/dialog/dist/mdc.dialog.css';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { isNotEmpty, listOrEmpty } from '../../../helpers';\nimport { Box, ButtonStyled, DialogCustom, Ellipsis, GridCustom, FieldWithLabel, Text } from '../../common';\n\n\nclass PrzedmiotZamowienia extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isRemovingOn: false,\n };\n }\n\n // rendering\n\n render() {\n const pz = this.props.przedmiotZamowienia;\n const formLocked = this.props.formLocked;\n\n let kodyCPVPrzedmiotuZamowienia;\n if (isNotEmpty(pz.kodyCPV)) {\n kodyCPVPrzedmiotuZamowienia = listOrEmpty(pz.kodyCPV).map(kod_ => {\n return {kod_.kod} {kod_.nazwa}\n });\n } else {\n kodyCPVPrzedmiotuZamowienia = '-';\n }\n return (\n \n {({\n formErrors,\n przedmiotZamowieniaPodkategoriaDict,\n przedmiotZamowieniaKategoriaDict\n }) => (\n 0}\n titleWithSubtitle={przedmiotZamowieniaKategoriaDict[pz.kategoria] || '-'}\n tag=\"li\"\n subtitle={przedmiotZamowieniaPodkategoriaDict[pz.podkategoria] || '-'}\n ariaLabelMoreOptions={`Rozwiń opcje przedmiotu zamówienia: edytuj ${!this.props.isAlreadyPublished ? ', usuń' : ''}`}\n boxWithMenu={(\n <>\n

    Menu więcej opcji przedmiotu ogłoszenia

    \n
      \n
    • \n this.props.onEditClick(pz.temporaryId)}>\n Edytuj\n \n
    • \n {!this.props.isAlreadyPublished && (\n
    • \n this.setState({isRemovingOn: true})}>\n Usuń\n \n
    • \n )}\n
    \n \n )} >\n \n \n {pz.opis || '-'}\n \n \n \n {kodyCPVPrzedmiotuZamowienia}\n \n {this.renderRemovingPart()}\n \n )}\n
    \n )\n }\n\n handleCloseRemovingDialog = () => {\n this.setState({isRemovingOn: false});\n }\n\n renderRemovingPart() {\n if (this.state.isRemovingOn) {\n return (\n \n <>\n Jeśli tak, zostaną usunięte również następujące obiekty powiązane, o ile zostały zdefiniowane:\n - Miejsca realizacji\n - Etapy\n - Wymagania\n \n Anuluj\n this.props.onRemoveClick(this.props.przedmiotZamowienia.temporaryId)} remove>Usuń\n \n \n \n )\n }\n }\n}\n\n\nexport { PrzedmiotZamowienia };\n","import React from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { getLastTemporaryId, getSortedOrderItemsFromOrder,\n isNotEmpty } from '../../../helpers';\nimport {\n ButtonStyled,\n DialogCustom,\n GridCustom,\n Steps,\n Text,\n} from '../../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { AlreadyPublishedInfo } from './AlreadyPublishedInfo';\nimport { BaseStepComponent } from './BaseStepComponent';\nimport { FormPrzedmiotZamowienia } from './FormPrzedmiotZamowienia';\nimport { PrzedmiotZamowienia } from './PrzedmiotZamowienia';\n\n\nclass StepPrzedmiotZamowienia extends BaseStepComponent {\n stepName = 'przedmiot';\n\n constructor(props) {\n super(props);\n this.state = {\n formPrzedmiotZamowieniaOn: false,\n addedPrzedmiotZamowieniaId: null,\n editedPrzedmiotZamowieniaId: null,\n };\n }\n\n // handlers\n\n handleCloseForm = () => {\n this.setState(\n {\n formPrzedmiotZamowieniaOn: false,\n addedPrzedmiotZamowieniaId: null,\n editedPrzedmiotZamowieniaId: null,\n },\n () => {\n if (window.formOgloszenie) { window.formOgloszenie.computeProgress()}\n }\n );\n }\n\n handleSave = (data) => {\n const isNew = this.state.editedPrzedmiotZamowieniaId === null;\n this.context.savePrzedmiotZamowienia(\n data,\n isNew,\n () => this.setState(\n {\n formPrzedmiotZamowieniaOn: false,\n addedPrzedmiotZamowieniaId: isNew ? data.temporaryId : null,\n editedPrzedmiotZamowieniaId: null,\n }\n )\n )\n }\n\n handleEditClick = (temporaryId) => {\n this.setState({\n formPrzedmiotZamowieniaOn: true,\n editedPrzedmiotZamowieniaId: temporaryId,\n });\n }\n\n handleRemovePrzedmiotZamowienia = (temporaryId) => {\n this.context.removePrzedmiotZamowienia(temporaryId);\n }\n\n // rendering\n\n render() {\n const { isAlreadyPublished, isPreview } = this.props;\n const przedmiotZamowieniaError = this.context.formErrors.ogloszenie.przedmiotyZamowienia;\n const o = this.context.ogloszenie;\n const przedmiotyZamowienia = isPreview ? [] : getSortedOrderItemsFromOrder(o.zamowienia);\n\n const formLocked = this.props.isPreview || this.context.validationOn || this.context.savingOn;\n return (\n <>\n \n {isAlreadyPublished && }\n {!isAlreadyPublished && (\n \n {\n this.setState({formPrzedmiotZamowieniaOn: true});\n e.currentTarget.blur();\n }} >\n Dodaj nowy przedmiot zamówienia\n \n \n )}\n Lista przedmiotów zamówienia\n Liczba wyników: {przedmiotyZamowienia.length}\n
      \n {przedmiotyZamowienia.map(pz => {\n return \n })}\n
    \n {!isNotEmpty(przedmiotyZamowienia) && (przedmiotZamowieniaError || '').length > 0 && {przedmiotZamowieniaError}}\n this.props.onChangeCurrentMenuLink('terminy')}\n />\n {this.state.addedPrzedmiotZamowieniaId !== null && o.czyDopuszczalnaOfertaCzesciowa && o.zamowienia.length > 1 && (\n this.setState({ addedPrzedmiotZamowieniaId: null })}\n >\n \n this.setState({ addedPrzedmiotZamowieniaId: null })} primary>OK\n \n \n )}\n {this.state.formPrzedmiotZamowieniaOn && this.renderPrzedmiotZamowieniaForm(przedmiotyZamowienia)}\n \n )\n }\n\n renderPrzedmiotZamowieniaForm(przedmiotyZamowienia) {\n let przedmiotZamowieniaData = {};\n const { editedPrzedmiotZamowieniaId } = this.state;\n const pzLength = przedmiotyZamowienia.length;\n const zamowienia = this.context.ogloszenie.zamowienia;\n\n if (editedPrzedmiotZamowieniaId === null) {\n przedmiotZamowieniaData['temporaryId'] = pzLength ? Math.max(...przedmiotyZamowienia.map(pz => pz.temporaryId)) + 1 : 1;\n przedmiotZamowieniaData['zamowienieTemporaryId'] = zamowienia.length ? Math.min(...zamowienia.map(z => z.temporaryId)) : 1;\n } else {\n for (let pz of przedmiotyZamowienia) {\n if (pz.temporaryId === editedPrzedmiotZamowieniaId) {\n przedmiotZamowieniaData = pz;\n break;\n }\n }\n }\n const isAlreadyPublished = this.props.isAlreadyPublished;\n return (\n \n <>\n {isAlreadyPublished && }\n \n \n \n )\n }\n}\n\n\nStepPrzedmiotZamowienia.contextType = AdvertisementContext;\n\n\nexport { StepPrzedmiotZamowienia }\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport '@material/checkbox/dist/mdc.checkbox.css';\nimport '@material/form-field/dist/mdc.form-field.css';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { dateToString } from '../../../helpers';\nimport {\n ButtonStyled,\n DateCalendar,\n DialogCustom,\n GridCustom,\n FieldWithLabel,\n Text,\n TextFieldCustom\n} from '../../common';\n\n\nclass FormHarmonogram extends Component{\n\n constructor(props) {\n super(props);\n\n if (props.isNew) {\n this.state = Object.assign({}, props.harmonogram, {\n poczatekRealizacji: '',\n koniecRealizacji: '',\n opis: '',\n czyWystepujePlatnoscCzesciowa: false,\n isPickerOpen: false,\n });\n } else {\n this.state = Object.assign(\n {isPickerOpen: false}, props.harmonogram);\n }\n }\n\n // basic functions\n\n componentDidMount() {\n window.formOgloszenie.computeProgress();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n // helpers\n\n handleEscPress = (event) => {\n if (event.keyCode === 27) {\n if (this.state.isPickerOpen) {\n event.nativeEvent.stopImmediatePropagation();\n } else {\n this.props.onCloseForm();\n }\n }\n}\n\n // handlers\n\n handleSave = () => {\n const {isNew, harmonogram} = this.props;\n this.props.onSave({\n id: isNew ? null : harmonogram.id,\n temporaryId: harmonogram.temporaryId,\n przedmiotZamowieniaTemporaryId: this.props.przedmiotZamowieniaTemporaryId,\n poczatekRealizacji: this.state.poczatekRealizacji,\n koniecRealizacji: this.state.koniecRealizacji,\n opis: this.state.opis.trim(),\n czyWystepujePlatnoscCzesciowa: this.state.czyWystepujePlatnoscCzesciowa,\n }, isNew);\n }\n\n handleCloseDialog = () => {\n this.props.onCloseForm();\n }\n\n handleCalendarOpen = () => {\n this.setState({isPickerOpen: true})\n }\n\n handleCalendarClose = () => {\n this.setState({isPickerOpen: false})\n }\n\n // rendering\n\n render() {\n const poczatekInputRef = React.createRef();\n const koniecInputRef = React.createRef();\n return (\n \n {({formErrors, clearAttributeError}) => {\n const temporaryId = this.props.harmonogram.temporaryId;\n const errors = formErrors.harmonogramy[temporaryId] || {};\n const koniecRealizacjiErrorVisible = (errors.koniecRealizacji || '').length > 0;\n return (\n \n <>\n Dodaj etap\n \n this.setState({opis: event.target.value})}\n onClear={(ev) => this.setState({opis: ''})}\n textarea\n value={this.state.opis}\n />\n \n \n this.setState({poczatekRealizacji: dateToString(date)})} />\n \n \n this.setState(\n {koniecRealizacji: dateToString(date)},\n () => {\n if (koniecRealizacjiErrorVisible) {\n clearAttributeError('harmonogramy', temporaryId, 'koniecRealizacji') // it's possible to change value by clicking clear button\n }\n }\n )}\n onFocus={(ev) => {clearAttributeError('harmonogramy', temporaryId, 'koniecRealizacji')}} />\n {koniecRealizacjiErrorVisible && {errors.koniecRealizacji}}\n \n this.setState({czyWystepujePlatnoscCzesciowa: event.target.checked})} />\n \n Anuluj\n {this.props.isNew ? 'Dodaj' : 'Zapisz zmiany'}\n \n {(errors.koniecRealizacji || '').length > 0 && Formularz zawiera błędy.}\n \n \n )\n }}\n \n )\n }\n}\n\n\nexport { FormHarmonogram };\n","import React, { Component } from 'react';\nimport { Icon } from '@rmwc/icon';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { Box, ButtonStyled, Ellipsis, GridCustom, FieldWithLabel, Text } from '../../common';\nimport { FormHarmonogram } from './FormHarmonogram';\n\n\nclass Harmonogramy extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n newHarmonogramOn: false,\n editingHarmonogramId: null,\n };\n }\n\n // handlers\n\n handleCloseForm = () => {\n this.setState(\n {\n newHarmonogramOn: false,\n editingHarmonogramId: null,\n },\n () => {\n if (window.formOgloszenie) { window.formOgloszenie.computeProgress()}\n }\n );\n }\n\n handleSave = (data, isNew) => {\n this.props.onSaveHarmonogram(data, isNew, this.handleCloseForm);\n }\n\n // rendering\n\n render() {\n const {\n harmonogramy,\n okresGwarancji,\n opis,\n podkategoria,\n typ,\n } = this.props;\n return (\n \n {({formErrors, przedmiotZamowieniaPodkategoriaDict, przedmiotZamowieniaKategoriaDict}) => (\n \n \n \n {opis}\n \n \n {okresGwarancji.length > 0 && (\n \n {okresGwarancji}\n \n )}\n Etapy\n Liczba wyników: {harmonogramy.length}\n \n {harmonogramy.map((h, i) => {\n return this.renderHarmonogram(h, i + 1, formErrors);\n })}\n \n {this.renderHarmonogramForm()}\n {this.renderNewHarmonogramButton()}\n \n )}\n \n )\n }\n\n renderHarmonogram(harmonogram, index, formErrors) {\n const formLocked = this.props.formLocked;\n const etapErrors = Object.keys(formErrors.harmonogramy[harmonogram.temporaryId] || {}).length > 0\n return (\n \n
    \n {etapErrors && (\n \n Niepoprawne informacje o etapie\n \n )}\n Etap {index}\n \n \n {harmonogram.opis || '-'}\n \n \n \n \n {harmonogram.poczatekRealizacji || '-'}\n \n \n {harmonogram.koniecRealizacji || '-'}\n \n \n \n {harmonogram.czyWystepujePlatnoscCzesciowa ? 'TAK' : 'NIE'}\n \n
    \n \n this.props.onRemoveHarmonogram(\n this.props.przedmiotZamowieniaTemporaryId, harmonogram.temporaryId)\n }>\n Usuń etap {index}\n \n this.setState(\n {editingHarmonogramId: harmonogram.temporaryId})\n }>\n Edytuj etap {index} {etapErrors ? 'Uwaga! Etap zawiera błędy!' : ''}\n \n \n
    \n )\n }\n\n renderHarmonogramForm() {\n const {\n editingHarmonogramId,\n newHarmonogramOn\n } = this.state;\n\n if (newHarmonogramOn || editingHarmonogramId !== null) {\n let h;\n if (newHarmonogramOn) {\n h = {temporaryId: this.props.lastTemporaryId + 1};\n } else {\n h = this.props.harmonogramy.filter(\n harm => harm.temporaryId === editingHarmonogramId)[0];\n }\n\n return \n }\n return null\n }\n\n renderNewHarmonogramButton() {\n if (this.state.newHarmonogramOn) { return null }\n return (\n \n this.setState({newHarmonogramOn: true})}>\n Dodaj etap\n \n \n )\n }\n}\n\n\nexport { Harmonogramy };\n","import React from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { dateToString, getLastTemporaryId, getSortedOrderItemsFromOrder,\n listOrEmpty } from '../../../helpers';\nimport {\n DateCalendar,\n FieldWithLabel,\n GridCustom,\n Steps,\n Text,\n} from '../../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { BaseStepComponent } from './BaseStepComponent';\nimport { Harmonogramy } from './Harmonogramy';\n\n\nclass StepTerminy extends BaseStepComponent {\n stepName = 'terminy';\n\n // rendering\n\n render() {\n const { isPreview } = this.props;\n const formLocked = isPreview || this.context.validationOn || this.context.savingOn;\n const o = this.context.ogloszenie;\n const przedmiotyZamowienia = isPreview ? [] : getSortedOrderItemsFromOrder(o.zamowienia);\n\n let przedmiotyZamowienia_;\n if (przedmiotyZamowienia.length) {\n przedmiotyZamowienia_ =
      {przedmiotyZamowienia.map(pz =>\n \n )}
    \n } else if ((this.context.formErrors.ogloszenie.przedmiotyZamowienia_harmonogramy || '').length) {\n przedmiotyZamowienia_ = Zdefiniuj przedmioty zamówienia, aby móc dodawać do nich terminy.;\n }\n\n const planowanyTerminPodpisaniaUmowyInputRef = React.createRef();\n return (\n <>\n \n \n
    \n \n {isPreview ? '---' : o.ogloszenie.dataOpublikowania || '---'}\n \n \n this.context.setAttributeValue('planowanyTerminPodpisaniaUmowy', dateToString(date))} />\n \n
    \n
    \n {przedmiotyZamowienia_}\n this.props.onChangeCurrentMenuLink('warunki')}\n onPrevClick={() => this.props.onChangeCurrentMenuLink('przedmiot')}\n />\n \n )\n }\n}\n\n\nStepTerminy.contextType = AdvertisementContext;\n\n\nexport { StepTerminy }\n","import React, { Component } from 'react';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { ButtonStyled, DialogCustom, GridCustom, FieldWithLabel, Select, Text, TextFieldCustom } from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: '--- Wybierz ---',\n}\n\n\nclass FormWarunekUdzialu extends Component{\n\n constructor(props) {\n super(props);\n\n let stateDict = {\n opisError: '',\n typError: '',\n isValidating: false,\n }\n if (props.isNew) {\n this.state = Object.assign(stateDict, props.warunekUdzialu, {\n typ: null,\n opis: '',\n });\n } else {\n this.state = Object.assign(stateDict, props.warunekUdzialu);\n }\n }\n\n // basic functions\n\n componentDidMount() {\n window.formOgloszenie.computeProgress();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (window.formOgloszenie) {\n window.formOgloszenie.computeProgress();\n }\n }\n\n // handlers\n\n handleChangeTyp(value) {\n this.setState({typ: parseInt(value) || null});\n }\n\n handleSave = (clearFunct) => {\n if (!this.validate(clearFunct)) { return }\n const {isNew, warunekUdzialu} = this.props;\n\n this.props.onSave({\n id: isNew ? null : warunekUdzialu.id,\n temporaryId: warunekUdzialu.temporaryId,\n przedmiotZamowieniaTemporaryId: this.props.przedmiotZamowieniaTemporaryId,\n typ: this.state.typ,\n opis: this.state.opis.trim(),\n }, isNew);\n }\n\n handleCloseDialog = () => {\n this.props.onCloseForm();\n }\n\n // helpers\n\n mergeErrors(globalErrors) {\n // copy global errors\n let errors = Object.assign({}, globalErrors);\n\n // get state errors\n for (let name of ['typ', 'opis']) {\n const error = this.state[`${name}Error`];\n if (error.length) {\n errors[name] = error;\n }\n }\n\n return errors\n }\n\n validate(clearFunct) {\n // clean errors\n const temporaryId = this.props.warunekUdzialu.temporaryId;\n clearFunct('warunkiUdzialu', temporaryId, 'opis')\n clearFunct('warunkiUdzialu', temporaryId, 'typ')\n this.setState({isValidating: true, opisError: '', typError: ''});\n\n let isValid = true;\n if (this.state.typ === null) {\n this.setState({typError: 'To pole jest wymagane.'});\n isValid = false;\n }\n if (!this.state.opis.trim()) {\n this.setState({opisError: 'To pole jest wymagane.'});\n isValid = false;\n }\n this.setState({isValidating: false});\n return isValid\n }\n\n // rendering\n\n render() {\n const isValidating = this.state.isValidating;\n return (\n \n {({clearAttributeError, formErrors, typWarunku}) => {\n const temporaryId = this.props.warunekUdzialu.temporaryId;\n const errors = this.mergeErrors(formErrors.warunkiUdzialu[temporaryId]);\n const selectClassName = 'select-custom';\n const selectInvalidClassName = 'select-custom select-custom--invalid';\n const errorsOpisVisible = (errors.opis || '').length > 0;\n const errorsTypVisible = (errors.typ || '').length > 0;\n\n return (\n \n <>\n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className={errorsTypVisible ? selectInvalidClassName : selectClassName}\n isDisabled={isValidating}\n aria-required={true}\n options={[EMPTY_VALUE, ].concat(...Object.entries(typWarunku).filter(([id, _]) => !this.props.usedWarunkiUdzialuIds.includes(parseInt(id))).sort().map(([key, value]) => ({value: key, label: value})))}\n value={{value: this.state.typ || EMPTY_VALUE.value, label: typWarunku[this.state.typ] || EMPTY_VALUE.label}}\n onChange={(selectedOption) => this.handleChangeTyp(selectedOption.value)}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n {errorsTypVisible && {errors.typ}}\n \n \n this.setState({opis: event.target.value})}\n onClear={(ev) => this.setState({opis: ''})}\n aria-required={true}\n id=\"warunekUdzialu_opis_id\"\n aria-label={`Opis wymagania, maksymalna liczba znaków: 6000. Wpisano ${this.state.opis.length} znaków.`}\n />\n {errorsOpisVisible && {errors.opis}}\n \n \n Anuluj\n this.handleSave(clearAttributeError)} >\n {this.props.isNew ? 'Dodaj' : 'Zapisz zmiany'}\n \n \n {(errors.typ || errors.opis || '').length > 0 && Formularz zawiera błędy.}\n \n \n )\n }}\n \n )\n }\n}\n\n\nexport { FormWarunekUdzialu };\n","import React, { Component } from 'react';\nimport { Icon } from '@rmwc/icon';\n\nimport { AdvertisementConsumer } from '../../../context/advertisementContext';\nimport { Box, ButtonStyled, Ellipsis, FieldWithLabel, GridCustom, Text } from '../../common';\nimport { FormWarunekUdzialu } from './FormWarunekUdzialu';\n\n\nclass WarunkiUdzialu extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n newWarunekUdzialuOn: false,\n editingWarunekUdzialuTemporaryId: null,\n };\n }\n\n // handlers\n\n handleCloseForm = () => {\n this.setState(\n {\n newWarunekUdzialuOn: false,\n editingWarunekUdzialuTemporaryId: null,\n },\n () => {\n if (window.formOgloszenie) { window.formOgloszenie.computeProgress()}\n }\n );\n }\n\n handleSave = (data, isNew) => {\n this.props.onSaveWarunekUdzialu(data, isNew, this.handleCloseForm);\n }\n\n // rendering\n\n render() {\n const {\n opis,\n podkategoria,\n typ,\n warunkiUdzialu,\n } = this.props;\n return (\n \n {({\n formErrors,\n przedmiotZamowieniaPodkategoriaDict,\n przedmiotZamowieniaKategoriaDict,\n typWarunku\n }) => (\n \n \n \n {opis}\n \n \n Wymagania\n Liczba wyników: {warunkiUdzialu.length}\n \n {warunkiUdzialu.map((wu) => this.renderWarunekUdzialu(wu, formErrors, typWarunku))}\n \n {this.renderWarunekUdzialuForm()}\n {this.renderNewWarunekUdzialuButton(typWarunku)}\n \n )}\n \n )\n }\n\n renderWarunekUdzialu(warunekUdzialu, formErrors, typWarunku) {\n const formLocked = this.props.formLocked;\n return (\n \n {Object.keys(formErrors.warunkiUdzialu[warunekUdzialu.temporaryId] || {}).length > 0 && Błędy!}\n \n {typWarunku[warunekUdzialu.typ] || '-'}\n \n \n \n {warunekUdzialu.opis || '-'}\n \n \n {!this.props.isAlreadyPublished && (\n \n this.props.onRemoveWarunekUdzialu(\n this.props.przedmiotZamowieniaTemporaryId, warunekUdzialu.temporaryId)\n }>\n Usuń\n \n this.setState(\n {newWarunekUdzialuOn: null, editingWarunekUdzialuTemporaryId: warunekUdzialu.temporaryId})\n }>\n Edytuj\n \n \n )}\n \n )\n }\n\n renderWarunekUdzialuForm() {\n const {\n editingWarunekUdzialuTemporaryId,\n newWarunekUdzialuOn,\n } = this.state;\n if (newWarunekUdzialuOn || editingWarunekUdzialuTemporaryId !== null) {\n const {\n lastTemporaryId,\n przedmiotZamowieniaTemporaryId,\n warunkiUdzialu, // list of warunekUdzialu for this przedmiotZamowienia\n } = this.props;\n\n let wu, usedWarunkiUdzialuIds;\n if (newWarunekUdzialuOn) {\n wu = {temporaryId: lastTemporaryId + 1};\n usedWarunkiUdzialuIds = warunkiUdzialu.map(wu => parseInt(wu.typ));\n } else {\n wu = warunkiUdzialu.filter(\n w => w.temporaryId === editingWarunekUdzialuTemporaryId)[0];\n usedWarunkiUdzialuIds = warunkiUdzialu.map(\n wu => parseInt(wu.typ)).filter((id) => id !== parseInt(wu.typ));\n }\n\n return \n }\n return null\n }\n\n renderNewWarunekUdzialuButton(typWarunku) {\n if (this.props.isAlreadyPublished) { return null }\n\n if (!this.state.newWarunekUdzialuOn &&\n Object.keys(typWarunku).filter(id => !this.props.warunkiUdzialu.map(\n wu => parseInt(wu.typ)).includes(parseInt(id))).length) {\n return (\n \n this.setState({newWarunekUdzialuOn: true, editingWarunekUdzialuTemporaryId: null})}>\n Dodaj wymaganie\n \n \n )\n }\n return null\n }\n}\n\n\nexport { WarunkiUdzialu };\n","import React from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { getLastTemporaryId, getSortedOrderItemsFromOrder,\n listOrEmpty } from '../../../helpers';\nimport { GridCustom, Steps, Text } from '../../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { AlreadyPublishedInfo } from './AlreadyPublishedInfo';\nimport { BaseStepComponent } from './BaseStepComponent';\nimport { WarunkiUdzialu } from './WarunkiUdzialu';\n\n\nclass StepWarunki extends BaseStepComponent {\n stepName = 'warunki';\n\n // rendering\n\n render() {\n const { isAlreadyPublished, isPreview } = this.props;\n const formLocked = isPreview || this.context.validationOn || this.context.savingOn;\n const o = this.context.ogloszenie;\n const przedmiotyZamowienia = isPreview ? [] : getSortedOrderItemsFromOrder(o.zamowienia);\n\n let przedmiotyZamowienia_;\n if (przedmiotyZamowienia.length) {\n przedmiotyZamowienia_ = przedmiotyZamowienia.map(pz =>\n \n )\n } else if ((this.context.formErrors.ogloszenie.przedmiotyZamowienia_warunkiUdzialu || '').length) {\n przedmiotyZamowienia_ = Zdefiniuj przedmioty zamówienia, aby móc dodawać do nich warunki.\n }\n\n return (\n <>\n \n {isAlreadyPublished && }\n {przedmiotyZamowienia_}\n this.props.onChangeCurrentMenuLink('czesciKryteria')}\n onPrevClick={() => this.props.onChangeCurrentMenuLink('terminy')}\n />\n \n )\n }\n}\n\n\nStepWarunki.contextType = AdvertisementContext;\n\n\nexport { StepWarunki }\n","import React from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { Steps, Text } from '../../common';\nimport { Zalaczniki } from '../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { AlreadyPublishedInfo } from './AlreadyPublishedInfo';\nimport { BaseStepComponent } from './BaseStepComponent';\n\n\nconst MAX_ATTACHMENTS_NUMBER = 20;\n\n\nclass StepZalaczniki extends BaseStepComponent {\n stepName = 'zalaczniki';\n\n // helpers\n distinguishAttachments() {\n let oldAttachments = [];\n let currentAttachments = [];\n const ogloszenie = this.context.ogloszenie;\n for (let attachment of ogloszenie.zalaczniki) {\n if (!attachment.origin) { continue }\n if ((ogloszenie.status.label === 'DRAFT' && attachment.origin.id === this.context.ogloszenie.id) || (ogloszenie.status.label !== 'DRAFT' && attachment.origin.id === null)) {\n currentAttachments.push(attachment);\n } else {\n oldAttachments.push(attachment);\n }\n }\n return [oldAttachments, currentAttachments]\n }\n\n // rendering\n\n render() {\n const { isAlreadyPublished, isPreview } = this.props;\n const formLocked = isPreview || this.context.validationOn || this.context.savingOn;\n const [oldAttachments, currentAttachments] = isPreview ? [[], []] : this.distinguishAttachments();\n const oldAttachmentsLength = oldAttachments.length;\n return (\n <>\n \n Załączniki\n Liczba wyników: {oldAttachments.length + currentAttachments.length}\n Możesz załączyć maksymalnie {MAX_ATTACHMENTS_NUMBER} plików.\n {this.renderCurrentAttachments(\n currentAttachments, oldAttachmentsLength, isAlreadyPublished, formLocked)}\n {this.renderOldAttachments(oldAttachments, oldAttachmentsLength, isAlreadyPublished)}\n this.props.onChangeCurrentMenuLink('pozostale')}\n />\n \n )\n }\n\n renderCurrentAttachments(attachments, oldAttachmentsLength, isAlreadyPublished, formLocked) {\n return (\n \n {oldAttachmentsLength > 0 && Liczba wyników: {attachments.length}}\n \n )\n }\n\n renderOldAttachments(attachments, attachmentsLength, isAlreadyPublished) {\n if (!attachmentsLength) { return null }\n return (\n \n Liczba wyników: {attachments.length}\n \n \n )\n }\n}\n\n\nStepZalaczniki.contextType = AdvertisementContext;\n\n\nexport { StepZalaczniki }\n","import React from 'react';\nimport { Icon } from '@rmwc/icon';\nimport '@material/form-field/dist/mdc.form-field.css';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { fetchApi } from '../../../fetch';\nimport { computeProgress, dateToString, getOrderItemsLength, setFocusOnElement } from '../../../helpers';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { URLS } from '../../../urls/frontend';\nimport {\n ButtonStyled,\n DialogCustom,\n GridCellCustom,\n GridCustom,\n LinearProgressCustom,\n MenuBasic,\n Message,\n Text,\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport { FormPublikowanie } from './FormPublikowanie';\nimport { StepCzesciKryteria } from './StepCzesciKryteria';\nimport { StepPozostale } from './StepPozostale';\nimport { StepPrzedmiotZamowienia } from './StepPrzedmiotZamowienia';\nimport { StepTerminy } from './StepTerminy';\nimport { StepWarunki } from './StepWarunki';\nimport { StepZalaczniki } from './StepZalaczniki';\n\n\nconst DEFAULT_OGLOSZENIE = {\n ogloszenie: {\n id: null,\n status: {},\n numer: null,\n dataOpublikowania : '',\n },\n id: null,\n projekty: [],\n tytul: '',\n zamowieniaUzupelniajace: '',\n nabor: null,\n warunkiZmianyUmowy: '',\n czyDopuszczalnaOfertaCzesciowa: false,\n dataOpublikowania: '',\n terminOfert: '',\n planowanyTerminPodpisaniaUmowy: '',\n zamowienia: [],\n osobyDoKontaktu: [],\n zalaczniki: [],\n};\n\n\nclass FormOgloszenie extends BaseComponent {\n componentDidMount() {\n // clear context state before first request to server\n this.context.clearState(\n () => {\n if (this.props.preview) { return }\n\n document.title = `Baza Konkurencyjności - ${this.state.isNew ? 'dodaj ogłoszenie' : 'edycja ogłoszenia'}`;\n super.componentDidMount();\n }\n );\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.userId !== this.props.userId) {\n this.setState(prevState => {\n if (!this.state.isNew) {\n this.initializeData(); // TODO: check if dictionaries are valid for new user\n }\n });\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n\n if (this.xhrSaveFetch !== null) {\n this.xhrSaveFetch.abort();\n }\n\n if (this.clearMenuErrorTimeout !== null) {\n clearTimeout(this.clearMenuErrorTimeout);\n }\n\n // don't leave not default data and errors in state\n this.context.clearState();\n if (this.props.setAdvertisementManagerType) {\n this.props.setAdvertisementManagerType(\n {isAuthor: false, isAdmin: false});\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n const { isNew } = this.state;\n if (!isNew) {\n // clean some data, it will be set from advertisement dictionaries data\n Object.assign(data, {\n projects: [],\n enrollment_numbers: [],\n contact_persons: [],\n })\n }\n\n this.context.setConstsFromServer(\n data,\n () => {\n // prepare advertisement data\n if (isNew) {\n this.props.setAdvertisementManagerType(\n {isAuthor: true, isAdmin: false},\n this.context.setOgloszenie(\n null,\n () => this.setState({initializingOn: false})\n )\n );\n } else {\n this.getAdvertisementDataFromServer(this.props.match.params.id);\n }\n }\n );\n }\n\n handleSetCurrentMenuLink(id) {\n this.setState({currentMenuLink: id});\n setFocusOnElement(this.formContentRef);\n }\n\n handleChangeCurrentMenuLink = (stepName) => {\n this.handleSetCurrentMenuLink(this.menuLinksMapNameId[stepName]);\n }\n\n handleChangeProjectsSelected = (ev) => {\n const checked = ev.target.checked;\n this.setState(\n {projectsSelected: checked},\n () => this.context.changeProjectsSelected(checked)\n );\n }\n\n handleReturnToList = () => {\n this.props.history.push(URLS[\n this.props.userData.advertisementManagerType.isAdmin\n ? 'managementAdvertisements'\n : 'advertisements'\n ].path);\n }\n\n handleFetchOgloszenieSuccess = (data, additionalSuccessFunction=null) => {\n this.xhrFetch = null; // clean xhr object\n\n let ogloszenie = Object.assign(\n {}, DEFAULT_OGLOSZENIE,\n getSerializedObject(data.advertisement, {\n dateAttributes: [\n 'planowanyTerminPodpisaniaUmowy', 'dataModyfikacji',\n 'poczatekRealizacji', 'koniecRealizacji', 'dataOpublikowania'],\n dateTimeAttributes: ['dataUtworzenia', ],\n addTemporaryId: true,\n })\n );\n\n const nabor = ogloszenie.ogloszenie.nabor || null;\n Object.assign(ogloszenie, {\n zamowienia: this.reformatPrzedmiotyZamowieniaData(ogloszenie.zamowienia),\n projekty: ogloszenie.ogloszenie.projekty.map(p => p.id),\n osobyDoKontaktu: ogloszenie.osobyDoKontaktu.map(o => o.id),\n nabor: nabor !== null ? {value: nabor.id, label: nabor.calyNumer} : null,\n });\n delete ogloszenie.ogloszenie['projekty'];\n delete ogloszenie.ogloszenie['nabor'];\n\n document.title = \"Baza Konkurencyjności - edycja ogłoszenia \" + ogloszenie.tytul;\n this.isAlreadyPublished = !!this.props.preview ? false : parseInt(\n ogloszenie.ogloszenie.status.id) !== parseInt(this.context.roboczeStatus);\n\n this.context.setConstsFromAdvertisementData(\n data.dictionaries,\n () => {\n const {jestAutorem = false} = ogloszenie.ogloszenie;\n this.props.setAdvertisementManagerType(\n {isAuthor: jestAutorem, isAdmin: !jestAutorem},\n () => {\n this.context.setOgloszenie(\n ogloszenie,\n () => this.setState(\n {\n initializingOn: false,\n projectsSelected: ogloszenie.projekty.length > 0 || ogloszenie.nabor === null,\n },\n () => {\n // do some additional steps\n if (additionalSuccessFunction) {\n additionalSuccessFunction();\n }\n }\n )\n );\n }\n );\n }\n )\n }\n\n handleFetchError = (data) => {\n this.xhrFetch = null; // clean xhr object\n this.setState(\n {\n fetchError: translateErrorMessage(data.message),\n initializingOn: false,\n },\n () => {\n if (this.context.savingOn) {\n this.context.changeFormLockedState('savingOn', false);\n }\n }\n );\n }\n\n handleFetchIncorrectStatus = (status) => {\n this.xhrFetch = null; // clean xhr object\n\n if ([403, 404].includes(status)) {\n this.setState({pageNotFound: true, initializingOn: false});\n return\n }\n this.setState(\n {\n fetchError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n initializingOn: false,\n },\n () => {\n if (this.context.savingOn) {\n this.context.changeFormLockedState('savingOn', false);\n }\n }\n );\n }\n\n handleValidate = () => {\n this.context.changeFormLockedState('validationOn', true);\n\n this.setState({\n instruction: true,\n validationAria: 'Sprawdź poprawność danych. Zwalidowano ogłoszenie. Wskaż element w menu, aby odczytać wynik walidacji.'\n });\n setTimeout((prevState) => {\n this.setState({ validationAria: prevState });\n }, 500);\n\n let projectsSelected = this.state.projectsSelected;\n if (\n this.isAlreadyPublished &&\n this.props.userData.advertisementManagerType.isAuthor\n ) {\n // set as null and don't validate it; owner can't edit projects/enrollment\n projectsSelected = null;\n }\n\n const isValid = this.context.validate(\n projectsSelected,\n this.isAlreadyPublished,\n this.props.userData.advertisementManagerType\n );\n\n // clear error/info for current step in menu after 10 seconds\n this.clearMenuErrorTimeout = setTimeout(() => {\n this.context.clearStepError(this.menuLinksMapIdName[this.state.currentMenuLink]);\n }, 10000);\n\n this.context.changeFormLockedState('validationOn', false);\n\n return isValid\n }\n\n handleSave = (\n ev=null,\n callbackSuccess=null,\n callbackError=null,\n callbackIncorrectStatus=null\n ) => {\n\n const cleanData = () => {\n this.xhrSaveFetch = null; // clean xhr object\n this.context.changeFormLockedState('savingOn', false);\n }\n\n let callbackError_ = null;\n if (callbackError) {\n callbackError_ = (data) => {\n callbackError(data);\n cleanData();\n }\n }\n\n let callbackIncorrectStatus_ = null;\n if (callbackIncorrectStatus) {\n callbackIncorrectStatus_ = (status) => {\n callbackIncorrectStatus(status);\n cleanData();\n }\n }\n\n this.context.changeFormLockedState(\n 'savingOn', true,\n () => {\n const isNew = this.state.isNew;\n const data = this.getDataForSaving();\n // save advertisement on server\n this.xhrSaveFetch = fetchApi(\n isNew ? '/api/announcements' : `/api/announcements/${data.ogloszenie.id}`,\n isNew ? 'POST' : 'PUT',\n {},\n getSerializedObject(data, {toServer: true}),\n callbackSuccess || this.handleFetchSaveSuccess,\n callbackError_ || this.handleFetchSaveError,\n callbackIncorrectStatus_ || this.handleFetchSaveIncorrectStatus,\n );\n }\n )\n }\n\n handleFetchSaveSuccess = (data, callback=null) => {\n this.xhrSaveFetch = null;\n // clear errors\n this.context.clearFormErrors();\n\n const ogloszenie = getSerializedObject(data.advertisement);\n this.context.saveOgloszenie(\n ogloszenie,\n () => this.getAdvertisementDataFromServer(\n this.context.ogloszenie.ogloszenie.id,\n () => {\n this.context.changeFormLockedState(\n 'savingOn', false,\n () => {\n this.setState(\n {\n isNew: false,\n fetchSaveError: '',\n saveBtnText: 'Zapisano',\n },\n () => {\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: 'Zapisz wersję roboczą'});\n }, 5000)\n if (callback) { callback() }\n }\n );\n }\n );\n }\n )\n );\n }\n\n handleFetchSaveError = (data) => {\n this.xhrSaveFetch = null; // clean xhr object\n this.setState(\n {fetchSaveError: translateErrorMessage(data.message)},\n () => this.context.changeFormLockedState('savingOn', false)\n );\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrSaveFetch = null; // clean xhr object\n let msg;\n if (status === 403) {\n msg = 'Nie masz uprawnień do edycji tego ogłoszenia.';\n } else {\n msg = `Wystąpił nieoczekiwany błąd o kodzie ${status}.`;\n }\n this.setState(\n {fetchSaveError: msg},\n () => this.context.changeFormLockedState('savingOn', false)\n );\n }\n\n setPublishingSuccessInfo(info) {\n this.setState({\n publishingOn: false,\n publishingSuccessInfo: info,\n });\n }\n\n handlePublishByAdmin = () => {\n if (this.handleValidate()) {\n this.handleSave(\n null,\n () => this.setPublishingSuccessInfo(\n 'Ogłoszenie zostało pomyślnie opublikowane.')\n );\n } else {\n this.setState({\n notValidByAdminError:\n 'Ogłoszenie zawiera błędy. Po ich poprawieniu spróbuj ' +\n 'opublikować ogłoszenie jeszcze raz.',\n });\n }\n }\n\n handlePublish = () => {\n const { advertisementManagerType } = this.props.userData;\n if (advertisementManagerType.isAuthor) {\n this.setState({publishingOn: true});\n } else if (advertisementManagerType.isAdmin) {\n this.handlePublishByAdmin();\n }\n }\n\n handleClosePublishingSuccessDialog = () => {\n this.props.history.push(\n this.props.userData.advertisementManagerType.isAuthor\n ? URLS.advertisements.path\n : URLS.advertisementsDetails.getUrl(this.props.match.params.id)\n );\n }\n\n handleClosePublishingByAdminErrorDialog = () => {\n this.setState({notValidByAdminError: ''});\n }\n\n // helpers\n\n preState(props) {\n this.handleSetCurrentMenuLink = this.handleSetCurrentMenuLink.bind(this);\n this.menuLinks = [\n {name: 'przedmiot', id: 1, label: 'Przedmiot', onClick: this.handleSetCurrentMenuLink},\n {name: 'terminy', id: 2, label: 'Terminy', onClick: this.handleSetCurrentMenuLink},\n {name: 'warunki', id: 3, label: 'Warunki', onClick: this.handleSetCurrentMenuLink},\n {name: 'czesciKryteria', id: 4, label: 'Części i kryteria', onClick: this.handleSetCurrentMenuLink},\n {name: 'pozostale', id: 5, label: 'Pozostałe', onClick: this.handleSetCurrentMenuLink},\n {name: 'zalaczniki', id: 6, label: 'Załączniki', onClick: this.handleSetCurrentMenuLink},\n ];\n this.menuLinksMapNameId = {};\n this.menuLinksMapIdName = {};\n for (let link of this.menuLinks) {\n this.menuLinksMapNameId[link.name] = link.id;\n this.menuLinksMapIdName[link.id] = link.name;\n }\n\n this.isAlreadyPublished = false;\n }\n\n getAdditionalState(props) {\n return {\n initializingOn: props.preview ? false : true,\n progress: 0,\n currentMenuLink: props.preview && props.step ? this.menuLinksMapNameId[props.step] || 1 : 1,\n saveBtnText: 'Zapisz wersję roboczą',\n instruction: false,\n isNew: props.isNew,\n validationAria: null,\n publishingOn: false,\n projectsSelected: true,\n fetchSaveError: '',\n notValidByAdminError: '',\n publishingSuccessInfo: '',\n }\n }\n\n postState(props) {\n super.postState(props);\n this.clearMenuErrorTimeout = null;\n this.formContentRef = React.createRef();\n this.menuBasicRef = React.createRef();\n this.xhrSaveFetch = null;\n }\n\n getFetchUrl() {\n return '/api/dictionaries'\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać danych do formularza. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania danych do formularza wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n getAdvertisementDataFromServer(id_, additionalSuccessFunction) {\n this.xhrFetch = fetchApi(\n `/api/announcements/${id_}`,\n 'GET',\n {},\n {\n dictionaries: ['projects', 'enrollment_numbers', 'contact_persons'],\n version_mode: 'draft_or_last_published'\n },\n (data) => this.handleFetchOgloszenieSuccess(data, additionalSuccessFunction),\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n\n computeProgress() {\n let progress;\n if (this.state.currentMenuLink === this.menuLinksMapNameId['przedmiot']) {\n progress = computeProgress(getOrderItemsLength(this.context.ogloszenie.zamowienia) > 0 ? 1 : 0, 1);\n } else {\n progress = computeProgress();\n }\n if (progress !== this.state.progress) {\n this.setState({progress});\n }\n }\n\n reformatPrzedmiotyZamowieniaData(zamowienia) {\n let temporaryId = 1;\n return zamowienia.map(z => {\n let przedmiotyZamowienia = [];\n for (let pz of z.przedmiotyZamowienia) {\n pz.temporaryId = temporaryId++;\n pz.kategoria = pz.kategoria ? pz.kategoria.id : null;\n pz.podkategoria = pz.podkategoria ? pz.podkategoria.id : null;\n for (let mr of pz.miejscaRealizacji) {\n mr.typ = mr.typ.id;\n }\n for (let wu of pz.warunkiUdzialu) {\n wu.typ = wu.typ.id;\n }\n przedmiotyZamowienia.push(pz);\n }\n z.przedmiotyZamowienia = przedmiotyZamowienia;\n return z\n })\n }\n\n getDataForSaving() {\n if (this.isAlreadyPublished) {\n return this.getPublishedDataForSaving()\n }\n\n const ogloszenie = this.context.ogloszenie;\n return {\n ogloszenie: {\n id: ogloszenie.ogloszenie.id,\n projekty: ogloszenie.projekty,\n nabor: ogloszenie.nabor === null ? null : ogloszenie.nabor.value,\n },\n id: ogloszenie.id,\n tytul: ogloszenie.tytul.trim(),\n zamowieniaUzupelniajace: ogloszenie.zamowieniaUzupelniajace.trim(),\n warunkiZmianyUmowy: ogloszenie.warunkiZmianyUmowy.trim(),\n czyDopuszczalnaOfertaCzesciowa: ogloszenie.czyDopuszczalnaOfertaCzesciowa,\n planowanyTerminPodpisaniaUmowy: ogloszenie.planowanyTerminPodpisaniaUmowy,\n zamowienia: ogloszenie.zamowienia.map(z => (\n {\n id: z.id,\n zamowienieNode: z.zamowienieNode ? z.zamowienieNode.id : null,\n tytul: z.tytul,\n czyWariantowe: z.czyWariantowe,\n przedmiotyZamowienia: z.przedmiotyZamowienia.map(pz => {\n return Object.assign({}, pz, {kodyCPV: pz.kodyCPV.map(kod_ => kod_.id)})\n }),\n szacunkowaWartosc: z.szacunkowaWartosc,\n kryteriaOceny: z.kryteriaOceny,\n }\n )),\n osobyDoKontaktu: ogloszenie.osobyDoKontaktu,\n zalaczniki: ogloszenie.zalaczniki.map(z => ({id: z.id, nazwa: z.nazwa, plik: z.plik.id})),\n }\n }\n\n getPublishedDataForSaving() {\n const { ogloszenie} = this.context;\n const { advertisementManagerType } = this.props.userData;\n return {\n ogloszenie: {\n id: ogloszenie.ogloszenie.id,\n // institution administrator can edit projects and enrollments\n ...(advertisementManagerType.isAdmin\n ? {\n projekty: ogloszenie.projekty,\n nabor: ogloszenie.nabor === null ? null : ogloszenie.nabor.value,\n }\n : {}\n )\n },\n id: ogloszenie.id,\n tytul: ogloszenie.tytul.trim(),\n planowanyTerminPodpisaniaUmowy: ogloszenie.planowanyTerminPodpisaniaUmowy,\n zamowienia: ogloszenie.zamowienia.map(z => (\n {\n id: z.id,\n zamowienieNode: z.zamowienieNode.id,\n przedmiotyZamowienia: z.przedmiotyZamowienia.map(pz => (\n {\n id: pz.id,\n okresGwarancji: pz.okresGwarancji,\n opis: pz.opis,\n kodyCPV: pz.kodyCPV.map(kod_ => kod_.id),\n miejscaRealizacji: pz.miejscaRealizacji,\n harmonogramy: pz.harmonogramy,\n groupUuid: pz.group_uuid,\n }\n )),\n szacunkowaWartosc: z.szacunkowaWartosc,\n }\n )),\n // advertisement owner can edit contact persons\n ...(advertisementManagerType.isAuthor\n ? {osobyDoKontaktu: ogloszenie.osobyDoKontaktu}\n : {}\n ),\n zalaczniki: ogloszenie.zalaczniki.map(\n z => ({id: z.id, nazwa: z.nazwa, plik: z.plik.id})),\n }\n }\n\n // rendering\n\n renderContent() {\n const currentMenuLink = this.state.currentMenuLink;\n\n let fetchSaveError = null;\n if (this.state.fetchSaveError.length) {\n fetchSaveError = (\n \n {this.state.fetchSaveError}\n this.setState({fetchSaveError: ''})} lite>OK\n \n );\n }\n\n return (\n \n \n \n {this.state.instruction && this.renderInstruction()}\n \n \n {this.renderFuturePublishingInfo()}\n \n {currentMenuLink === this.menuLinksMapNameId['przedmiot'] && this.renderPrzedmiotZamowienia()}\n {currentMenuLink === this.menuLinksMapNameId['terminy'] && this.renderTerminy()}\n {currentMenuLink === this.menuLinksMapNameId['warunki'] && this.renderWarunki()}\n {currentMenuLink === this.menuLinksMapNameId['czesciKryteria'] && this.renderCzesciKryteria()}\n {currentMenuLink === this.menuLinksMapNameId['pozostale'] && this.renderPozostale()}\n {currentMenuLink === this.menuLinksMapNameId['zalaczniki'] && this.renderZalaczniki()}\n\n {this.renderButtons()}\n {fetchSaveError}\n \n {this.state.notValidByAdminError.length > 0 &&\n this.renderPublishingByAdminError()\n }\n {this.state.publishingSuccessInfo.length > 0 &&\n this.renderPublishingSuccessInfo()\n }\n \n )\n }\n\n renderInstruction() {\n return (\n
    \n Poprawna walidacja\n Wymaga uwagi\n
    \n )\n }\n\n renderFuturePublishingInfo() {\n if (this.props.preview) { return }\n const dataOpublikowania = this.context.ogloszenie.dataOpublikowania;\n if (dataOpublikowania && dataOpublikowania > dateToString(new Date())) {\n return (\n \n To ogłoszenie ma ustawiony przyszły termin publikacji oraz przyszły termin składania ofert. Po zapisie kopii roboczej pola te zostaną wyczyszczone.\n \n )\n }\n return null\n }\n\n renderPrzedmiotZamowienia() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderTerminy() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderWarunki() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderCzesciKryteria() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderPozostale() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderZalaczniki() {\n const isPreview = !!this.props.preview;\n return \n }\n\n renderButtons() {\n const isPreview = !!this.props.preview;\n const formLocked = isPreview || this.context.validationOn || this.context.savingOn;\n const { instruction, saveBtnText, validationAria } = this.state;\n return (\n <>\n \n Sprawdź poprawność danych\n {validationAria && (\n {validationAria}\n )}\n {instruction && (\n \n )}\n \n \n {(isPreview || this.props.userData.advertisementManagerType.isAuthor) && (\n <>\n {saveBtnText}\n {saveBtnText === 'Zapisano' && Zapisano!}\n \n )}\n \n Publikuj ogłoszenie\n \n \n \n Powrót do listy ogłoszeń\n \n {this.state.publishingOn && (\n )}\n \n )\n }\n\n renderPublishingSuccessInfo() {\n return (\n \n \n \n OK\n \n \n )\n }\n\n renderPublishingByAdminError() {\n return (\n \n \n \n \n OK\n \n \n \n )\n }\n}\n\n\nFormOgloszenie.contextType = AdvertisementContext;\n\nexport { FormOgloszenie };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Switch } from '@rmwc/switch';\n\nimport '@material/switch/dist/mdc.switch.css';\n\nimport { fetchApi } from '../../../fetch';\nimport { ADVERTISEMENTS_CLEANED_FILTERS, filterAdvertisements } from '../../../filters';\nimport {\n dateToString,\n getUserFullName,\n isAdvertisementLocked,\n triggerBodyClick\n} from '../../../helpers';\nimport { serializeObject, serializeObjectList } from '../../../serializers';\nimport { ADVERTISEMENTS_SORTING_VALUES, sortAdvertisements } from '../../../sorters';\nimport { URLS } from '../../../urls/frontend';\nimport {\n Box,\n ButtonStyled,\n Container,\n DateCalendar,\n DialogCustom,\n GridCustom,\n FieldWithLabel,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { BaseComponent } from '../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia';\nimport { BadgeAnchor, Badge } from '@rmwc/badge';\nimport '@rmwc/badge/badge.css';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: '--- Wybierz ---',\n}\nconst ANNOUNCEMENT_STATUS_DRAFT = 'announcement_status_draft';\nconst ANNOUNCEMENT_STATUS_PUBLISHED = 'announcement_status_published';\nconst ANNOUNCEMENT_STATUSES = 'announcement_statuses';\n\n\nclass Ogloszenia extends BaseComponent {\n\n // basic functions\n\n componentDidMount() {\n if (this.props.preview) { return }\n\n document.title = \"Baza Konkurencyjności - ogłoszenia\";\n super.componentDidMount();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n // abort api requests if exist\n for (let xhr of [this.xhrRemoveAdvertisement, this.xhrCopyAdvertisement,\n this.xhrCancelAdvertisement]) {\n if (xhr !== null) {\n xhr.abort();\n }\n }\n }\n\n // handlers\n\n handleFetchSuccess = (data) => {\n super.handleFetchSuccess(data);\n\n const ogloszenia = serializeObjectList(data.advertisements);\n\n // update const values according to data from server\n this.obublikowaneStatusId = data.dictionaries[ANNOUNCEMENT_STATUS_PUBLISHED];\n this.roboczeStatusId = data.dictionaries[ANNOUNCEMENT_STATUS_DRAFT];\n this.statusyOgloszen = data.dictionaries[ANNOUNCEMENT_STATUSES];\n\n // update state after const defining\n this.setState({initializingOn: false, ogloszenia: ogloszenia});\n }\n\n handleRemoveOgloszenie = (removeFunct, dialogComponent) => {\n // remove advertisement on server\n this.xhrRemoveAdvertisement = fetchApi(\n `/api/announcements/${this.state.removedOgloszenieId}`,\n 'DELETE',\n {},\n {},\n this.handleFetchRemoveOgloszenieSuccess,\n this.handleFetchRemoveOgloszenieError,\n this.handleFetchRemoveOgloszenieIncorrectStatus,\n );\n }\n\n handleFetchRemoveOgloszenieSuccess = (data) => {\n this.xhrRemoveAdvertisement = null; // clean xhr object\n\n // remove advertisement from state\n this.setState(prevState => ({\n ogloszenia: prevState.ogloszenia.filter(o => o.ogloszenie.id !== prevState.removedOgloszenieId),\n }), this.handleCloseActionDialog);\n }\n\n handleFetchRemoveOgloszenieError = (data) => {\n this.xhrRemoveAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: data.message});\n }\n\n handleFetchRemoveOgloszenieIncorrectStatus = (status) => {\n this.xhrRemoveAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`});\n }\n\n handleCopyOgloszenie = (baseOgloszenieId) => {\n this.setState(\n {copyingOgloszenieId: baseOgloszenieId},\n () => {\n this.xhrCopyAdvertisement = fetchApi(\n `/api/announcements/${baseOgloszenieId}/copy`,\n 'POST',\n {},\n {},\n this.handleFetchCopyOgloszenieSuccess,\n this.handleFetchCopyOgloszenieError,\n this.handleFetchCopyOgloszenieIncorrectStatus,\n );\n }\n );\n }\n\n handleFetchCopyOgloszenieSuccess = (data, baseOgloszenieId) => {\n this.xhrCopyAdvertisement = null; // clean xhr object\n\n // update advertisements list and other state values\n const ogloszenie = serializeObject(data.advertisement);\n this.setState(prevState => ({\n ogloszenia: [...prevState.ogloszenia, ogloszenie],\n copiedOgloszenieIds: [...prevState.copiedOgloszenieIds, ogloszenie.ogloszenie.id],\n }));\n }\n\n handleFetchCopyOgloszenieError = (data) => {\n this.xhrCopyAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: `Podczas kopiowania ogłoszenia wystąpił nieoczekiwany błąd: ${data.message}`});\n }\n\n handleFetchCopyOgloszenieIncorrectStatus = (status) => {\n this.xhrCopyAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: `Podczas kopiowania ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}.`});\n }\n\n handleToggleFilters = (checked) => {\n if (checked) {\n this.setFiltersData();\n this.setState({filtersAreOn: true});\n } else {\n this.setState({\n filtersAreOn: false,\n filters: ADVERTISEMENTS_CLEANED_FILTERS,\n });\n }\n }\n\n handleChangeFilter = (name, value) => {\n this.setState((prevState) => {\n return {filters: Object.assign({}, prevState.filters, {[name]: value})}\n });\n }\n\n handleCancelOgloszenie = () => {\n // cancel advertisement on server\n this.xhrRemoveAdvertisement = fetchApi(\n `/api/announcements/${this.state.cancelledOgloszenieId}/cancel`,\n 'POST',\n {},\n {},\n this.handleFetchCancelOgloszenieSuccess,\n this.handleFetchCancelOgloszenieError,\n this.handleFetchCancelOgloszenieIncorrectStatus,\n );\n }\n\n handleFetchCancelOgloszenieSuccess = (data) => {\n this.xhrCancelAdvertisement = null; // clean xhr object\n const ogloszenieData = serializeObject(data.advertisement);\n\n // update advertisement status in the state\n this.setState(\n prevState => {\n let ogloszenia = [];\n for (let o of prevState.ogloszenia) {\n if (o.ogloszenie.id === prevState.cancelledOgloszenieId) {\n o.ogloszenie.status = Object.assign({}, o.ogloszenie.status, ogloszenieData.status);\n }\n ogloszenia.push(o);\n }\n return {ogloszenia}\n },\n this.handleCloseActionDialog\n );\n }\n\n handleFetchCancelOgloszenieError = (data) => {\n this.xhrCancelAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: data.message});\n }\n\n handleFetchCancelOgloszenieIncorrectStatus = (status) => {\n this.xhrCancelAdvertisement = null; // clean xhr object\n this.setState({fetchActionError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`});\n }\n\n handleCloseActionDialog = () => {\n this.setState({\n removedOgloszenieId: null,\n removedOgloszenieTitle: '',\n cancelledOgloszenieId: null,\n cancelledOgloszenieTitle: '',\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n initializingOn: props.preview ? false : true,\n filtersAreOn: false,\n currentSortingValue: {\n value: ADVERTISEMENTS_SORTING_VALUES[0][0],\n label: ADVERTISEMENTS_SORTING_VALUES[0][1],\n },\n removedOgloszenieId: null,\n removedOgloszenieTitle: '',\n cancelledOgloszenieId: null,\n cancelledOgloszenieTitle: '',\n filters: Object.assign({}, ADVERTISEMENTS_CLEANED_FILTERS),\n copyingOgloszenieId: null, // for dialog after copying id of base ogloszenie\n copiedOgloszenieIds: [], // for distinguishing on the list\n ogloszenia: [],\n fetchActionError: '',\n }\n }\n\n postState(props) {\n this.obublikowaneStatusId = null;\n this.roboczeStatusId = null;\n this.statusyOgloszen = {};\n\n this.actionComponent = null;\n\n // keep xhr objects for componentWillUnmount\n this.xhrRemoveAdvertisement = null;\n this.xhrCopyAdvertisement = null;\n this.xhrCancelAdvertisement = null;\n\n if (this.props.preview) { return }\n\n this.createdByList = []; // needed for filtering\n this.modifiedByList = []; // needed for filtering\n }\n\n getFetchUrl() {\n return '/api/announcements'\n }\n\n getFetchData() {\n return {\n dictionaries: [\n ANNOUNCEMENT_STATUS_DRAFT, ANNOUNCEMENT_STATUS_PUBLISHED,\n ANNOUNCEMENT_STATUSES],\n mode: 'advertiser',\n }\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać ogłoszeń. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych ogłoszeń. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // helpers\n\n setFiltersData() {\n\n // set data for Utworzył and Modyfikował filters\n let creators = [];\n let createdByList = []\n let modifiers = [];\n let modifiedByList = [];\n\n for (let o of this.state.ogloszenia) {\n const { ktoUtworzyl, ktoModyfikowal } = o.ogloszenie;\n if (ktoUtworzyl) {\n const creator = getUserFullName(ktoUtworzyl);\n if (!creators.includes(creator)) {\n creators.push(creator);\n createdByList.push([creator, ktoUtworzyl.id]);\n }\n }\n\n if (ktoModyfikowal) {\n const modifier = getUserFullName(ktoModyfikowal);\n if (!modifiers.includes(modifier)) {\n modifiers.push(modifier);\n modifiedByList.push([modifier, ktoModyfikowal.id])\n }\n }\n }\n\n this.createdByList = createdByList.sort().map(([creator, id]) => [id, creator]);\n this.modifiedByList = modifiedByList.sort().map(([modifier, id]) => [id, modifier]);\n }\n\n // rendering\n\n renderContent() {\n const {\n cancelledOgloszenieId,\n copyingOgloszenieId,\n currentSortingValue,\n filters,\n filtersAreOn,\n ogloszenia,\n removedOgloszenieId,\n } = this.state;\n const { preview } = this.props;\n\n const advertisements = sortAdvertisements(\n filterAdvertisements(ogloszenia, filtersAreOn, filters),\n currentSortingValue.value\n );\n\n return (\n <>\n \n Lista ogłoszeń\n Liczba ogłoszeń: {advertisements.length}\n \n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n isDisabled={preview}\n isSearchable={false}\n options={ADVERTISEMENTS_SORTING_VALUES.map(([value, label]) => ({value, label}))}\n value={currentSortingValue}\n onChange={(selectedOption) => this.setState({currentSortingValue: selectedOption})}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n this.handleToggleFilters(ev.target.checked)}\n id=\"ogloszenia_filters_id\"\n />\n \n \n \n \n {filtersAreOn && this.renderFilters()}\n \n {this.renderAddOgloszenieButton()}\n {advertisements.map((o) => this.renderOgloszenie(o))}\n \n {removedOgloszenieId !== null && this.renderRemovingOgloszenie()}\n {cancelledOgloszenieId !== null && this.renderCancellingOgloszenie()}\n \n {copyingOgloszenieId !== null && this.renderCopiedMessage(\n advertisements.filter(o => parseInt(o.ogloszenie.id) === parseInt(copyingOgloszenieId))[0].tytul)}\n \n )\n }\n\n renderFilters() {\n const filters = this.state.filters;\n\n const ktoUtworzylList = this.createdByList;\n const ktoUtworzylDict = {};\n for (let [id, username] of ktoUtworzylList) {\n ktoUtworzylDict[id] = username;\n }\n\n const ktoModyfikowalList = this.modifiedByList;\n const ktoModyfikowalDict = {};\n for (let [id, username] of ktoModyfikowalList) {\n ktoModyfikowalDict[id] = username;\n }\n\n const dataUtworzeniaInputRef = React.createRef();\n const dataModyfikacjiInputRef = React.createRef();\n const terminOfertInputRef = React.createRef();\n\n return (\n \n \n \n this.handleChangeFilter('tytul', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('tytul', '')}\n id=\"filters_title_id\" />\n \n \n this.handleChangeFilter('ogloszenie_numer', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('ogloszenie_numer', '')}\n id=\"filters_number_id\" />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom filters__input\"\n options={[EMPTY_VALUE, ].concat(...ktoUtworzylList.map(([id, label]) => ({value: id, label: label})))}\n value={{value: filters.ktoUtworzyl || EMPTY_VALUE.value, label: ktoUtworzylDict[filters.ktoUtworzyl] || EMPTY_VALUE.label}}\n onChange={(selectedOption) =>this.handleChangeFilter(\n 'ktoUtworzyl', selectedOption === null ? 0 : parseInt(selectedOption.value))}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n this.handleChangeFilter('dataUtworzenia', dateToString(date))} />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom filters__input\"\n options={[EMPTY_VALUE, ].concat(...Object.entries(this.statusyOgloszen).map(([id, name]) => [name, id]).sort().map(([name, id]) => ({value: id, label: name})))}\n value={{value: filters.status || EMPTY_VALUE.value, label: this.statusyOgloszen[filters.status] || EMPTY_VALUE.label}}\n onChange={(selectedOption) =>this.handleChangeFilter(\n 'status', selectedOption === null ? 0 : parseInt(selectedOption.value))}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom filters__input\"\n options={[EMPTY_VALUE, ].concat(...ktoModyfikowalList.map(([id, label]) => ({value: id, label: label})))}\n value={{value: filters.ktoModyfikowal || EMPTY_VALUE.value, label: ktoModyfikowalDict[filters.ktoModyfikowal] || EMPTY_VALUE.label}}\n onChange={(selectedOption) =>this.handleChangeFilter(\n 'ktoModyfikowal', selectedOption === null ? 0 : parseInt(selectedOption.value))}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n this.handleChangeFilter('dataModyfikacji', dateToString(date))} />\n \n \n this.handleChangeFilter('terminOfert', dateToString(date))} />\n \n \n \n )\n }\n\n renderAddOgloszenieButton() {\n return (\n \n \n this.props.history.push('/ogloszenia/nowe')}\n className=\"btn\" >\n Dodaj nowe ogłoszenie\n \n \n \n )\n }\n\n renderOgloszenie(o) {\n const status = parseInt(o.ogloszenie.status.id);\n const isDraft = status === parseInt(this.roboczeStatusId);\n const isPublished = status === parseInt(this.obublikowaneStatusId);\n const isLocked = isAdvertisementLocked(o.ogloszenie.status);\n const { dataOpublikowania } = o.ogloszenie;\n return (\n \n

    Menu więcej opcji ogłoszenia

    \n
      \n
    • \n this.props.history.push(\n URLS.advertisementsEdit.getUrl(o.ogloszenie.id)\n )}\n className=\"box__menu-item\" >\n Edytuj\n \n
    • \n
    • \n {\n this.handleCopyOgloszenie(o.ogloszenie.id);\n // hide box menu by triggering click\n triggerBodyClick();\n }}\n >\n Skopiuj\n \n
    • \n
    • \n {\n this.setState(\n {removedOgloszenieId: o.ogloszenie.id, removedOgloszenieTitle: o.tytul},\n () => triggerBodyClick() // hide box menu by triggering click\n );\n }}\n disabled={!isDraft}\n className=\"box__menu-item\" >\n Usuń\n \n
    • \n
    • \n {\n this.setState(\n {cancelledOgloszenieId: o.ogloszenie.id, cancelledOgloszenieTitle: o.tytul},\n () => triggerBodyClick() // hide box menu by triggering click\n );\n }}\n disabled={!isPublished}\n className=\"box__menu-item\" >\n Anuluj\n \n
    • \n
    \n \n )} >\n\n {this.state.copiedOgloszenieIds.includes(o.ogloszenie.id) && Ogłoszenie skopiowane}\n \n \n {o.ogloszenie.numer || '-'}\n \n \n {o.ogloszenie.status.nazwa}\n {status === this.obublikowaneStatusId && o.ogloszenie.czyMaKopieRobocza && + Posiada kopię roboczą}\n \n \n \n 0 && dataOpublikowania > dateToString(new Date()) ? 'odroczonej ' : ''}publikacji`}>\n {dataOpublikowania || '-'}\n \n \n {o.terminOfert || '-'}\n \n \n \n \n {o.czyDopuszczalnaOfertaCzesciowa ? 'TAK' : 'NIE'}\n {o.czyDopuszczalnaOfertaCzesciowa && ` (Części: ${o.liczbaZamowien})`}\n \n \n\n \n \n Pokaż szczegóły{` ogłoszenia ${o.tytul}`}\n \n {o.badge_count > 0 && }\n \n\n\n \n )\n }\n\n renderRemovingOgloszenie() {\n return this.renderActionDialog('usunąć', 'Usuń', 'removed', this.handleRemoveOgloszenie)\n }\n\n renderCopiedMessage(baseOgloszenieTytul) {\n let content;\n if (this.state.fetchActionError.length) {\n content = (\n Nie udało się skopiować ogłoszenia. {this.state.fetchActionError}\n );\n } else {\n content = `Ogłoszenie ${baseOgloszenieTytul.length > 0 ? '\"' + baseOgloszenieTytul + '\"' : 'bez tytułu'} zostało skopiowane.`;\n }\n return (\n this.setState({ copyingOgloszenieId: null, fetchActionError: '' })}\n >\n \n this.setState({copyingOgloszenieId: null, fetchActionError: ''})} primary>OK\n \n \n )\n }\n\n renderCancellingOgloszenie() {\n return this.renderActionDialog('anulować', 'Anuluj', 'cancelled', this.handleCancelOgloszenie)\n }\n\n renderActionDialog(verbString, actionName, actionPrefix, fetchHandler) {\n let content, title = null;\n if (this.state.fetchActionError.length) {\n title = `Nie udało się ${verbString} ogłoszenia.`;\n\n content = (\n <>\n {this.state.fetchActionError}\n \n this.setState(\n {fetchActionError: '', [`${actionPrefix}OgloszenieId`]: null, [`${actionPrefix}OgloszenieTitle`]: ''}\n )}\n primary>\n OK\n \n \n \n );\n } else {\n title = `Czy na pewno chcesz ${verbString} ogłoszenie \"${this.state[`${actionPrefix}OgloszenieTitle`] || 'Bez tytułu'}\"?`;\n\n content = (\n \n Nie. Wróć do listy\n {actionName} ogłoszenie\n \n );\n }\n return (\n { this.actionComponent = c }}\n onClose={() => { this.setState({ [`${actionPrefix}OgloszenieId`]: null, [`${actionPrefix}OgloszenieTitle`]: '' }) }}\n >\n {content}\n \n )\n }\n}\n\nexport { Ogloszenia };\n","import React from 'react';\n\nimport { AdvertisementContext } from '../../../context/advertisementContext';\nimport { getSerializedObject } from '../../../serializers';\nimport { ButtonStyled, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\n\n\nclass PomocEkranowa extends BaseComponent {\n\n // basic functions\n\n componentDidMount() {\n // id content declared in props, render it\n if (this.props.content) {\n this.setState({initializingOn: false, pomoc: this.props.content});\n return\n }\n // get pomoc from server\n this.fetchInitialData();\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n this.setState({\n initializingOn: false,\n pomoc: getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).pomoc,\n });\n }\n\n handleFetchError(data) {\n // do nothing, don't render error\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false});\n }\n\n handleFetchIncorrectStatus(status) {\n // do nothing, don't render error\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false});\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n showText: true,\n pomoc: {},\n }\n }\n\n getFetchUrl() {\n return `/api/help/${this.props.ekran}`\n }\n\n getFetchData() {\n return {screen: this.props.ekran}\n }\n\n // rendering\n\n render() {\n if (this.state.initializingOn || !Object.keys(this.state.pomoc).length) { return null }\n const {\n pomoc,\n showText,\n } = this.state;\n return (\n
    \n {pomoc.naglowek}\n this.setState(prevState => ({showText: !prevState.showText}))} className=\"help__show-more\">{showText ? 'Zwiń pomoc' : 'Rozwiń pomoc'}\n {showText && }\n
    \n )\n }\n}\n\n\nPomocEkranowa.contextType = AdvertisementContext;\n\n\nexport { PomocEkranowa };\n","import React from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n hasPerspectiveInstitutions,\n hasPerspectiveRegions,\n serializePerspectiveForSelect\n} from '../../../helpers';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { ButtonStyled, DialogCustom, FieldWithLabel, GridCustom, Text, TextFieldCustom } from '../../common';\nimport {\n FormBaseComponent,\n INSTITUTION_NUMBER_DEFAULT_DICT,\n ProjectNumberSelectsWithPerspectives\n} from '../common';\n\nconst SELECTS_CODES = {\n programOperacyjny: 'AAAA',\n osPriorytetowa: '00',\n dzialanie: '00',\n dzialanieIpoddzialanie: '00.00',\n region: '00',\n instytucja: 'AA.00',\n};\n\n\nclass Form extends FormBaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n if ((data.perspectives || []).length) {\n const perspectives =\n serializePerspectiveForSelect(data).perspectives;\n this.setState(\n {\n initializingOn: false,\n fetchError: '',\n perspektywa: perspectives[0],\n perspektywy: perspectives,\n },\n () => {\n this.setNumberParts();\n this.setState({fullNumber: this.getFullNumber()});\n }\n );\n return\n }\n this.handleFetchError({});\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: this.getFetchIncorrectStatusError(status),\n });\n }\n\n handleChangePerspektywa = (data, callback) => {\n this.setState(\n {\n perspektywa: data.perspective,\n programOperacyjny: data.programme,\n osPriorytetowa: data.priority,\n dzialanie: data.activity,\n numerInstytucji: data.institutionNumber,\n region: data.region,\n instytucja: data.institution,\n },\n () => {\n this.setNumberParts();\n this.updateNumber();\n if (callback) {\n callback();\n }\n }\n );\n }\n\n handleChangeProgramOperacyjny = (data, callback) => {\n this.setState(\n {\n programOperacyjny: data.programme,\n osPriorytetowa: data.priority,\n dzialanie: data.activity,\n region: data.region,\n instytucja: data.institution,\n },\n () => {\n this.updateNumber();\n if (callback) {\n callback();\n }\n }\n );\n };\n\n handleChangeOsPriorytetowa = (data, callback) => {\n this.setState(\n {\n osPriorytetowa: data.priority,\n dzialanie: data.activity,\n region: data.region,\n instytucja: data.institution,\n },\n () => {\n this.updateNumber();\n if (callback) {\n callback();\n }\n }\n );\n };\n\n handleChangeDzialanie = (data, callback) => {\n this.setState(\n {\n dzialanie: data.activity,\n region: data.region,\n instytucja: data.institution,\n },\n () => {\n this.updateNumber();\n if (callback) { callback()}\n }\n );\n };\n\n handleChangeRegion = (data) => {\n this.setState(\n {region: data.region},\n this.updateNumber\n );\n };\n\n handleChangeInstytucja = (data) => {\n this.setState(\n {instytucja: data.institution},\n this.updateNumber\n );\n };\n\n changeInputNumber(value, attrName, defaultDict) {\n value = value.replace(/[^\\da-zA-Z-/.]/, '').toUpperCase();\n this.setState(\n prevState => ({\n [attrName]: {\n ...prevState[attrName],\n ...(!value ? defaultDict : {value, code: value, label: value}),\n }\n }),\n this.updateNumber\n );\n }\n\n handleChangeOthers = (value) => {\n this.changeInputNumber(\n value, 'suffix', {...this.getSuffixDefaultDict()});\n };\n\n handleChangeInstitutionNumber = (value) => {\n this.changeInputNumber(\n value, 'numerInstytucji', INSTITUTION_NUMBER_DEFAULT_DICT);\n }\n\n handleSave = () => {\n this.setState(\n {savingOn: true, errors: {}},\n () => {\n let data = {\n nazwa: this.state.nazwa.trim(),\n programOperacyjny: (this.state.programOperacyjny || {}).value || 0,\n osPriorytetowa: (this.state.osPriorytetowa || {}).value || 0,\n dzialanie: (this.state.dzialanie || {}).value || 0,\n numer: this.state.suffix.value || '',\n };\n\n const { perspektywa } = this.state;\n data['perspektywa'] = perspektywa.value;\n if (hasPerspectiveRegions(perspektywa)) {\n if (!this.props.isProjekt) {\n data['institutionNumber'] =\n this.state.numerInstytucji.value || '';\n }\n data['region'] = (this.state.region || {}).value || 0;\n }\n if (hasPerspectiveInstitutions(perspektywa)) {\n data['institution'] = (\n this.state.instytucja || {}).value || 0;\n }\n\n // save object on server\n this.xhrFetchSave = fetchApi(\n this.props.saveUrl,\n 'POST',\n {},\n getSerializedObject(data, {toServer: true}),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n this.handleShowSaveErrors,\n );\n }\n );\n }\n\n handleFetchSaveSuccess = (data) => {\n super.handleFetchSaveSuccess(data);\n this.props.onSave(getSerializedObject(data)[this.props.isProjekt ? 'projekt' : 'nabor']);\n }\n\n // helpers\n\n preState(props) {\n this.parts = [];\n }\n\n getSuffixDefaultDict() {\n return {\n value: '',\n code: this.props.suffixMask,\n label: this.props.suffixMask,\n }\n }\n\n getAdditionalState(props) {\n return {\n // fields\n nazwa: '',\n perspektywa: null,\n programOperacyjny: null,\n osPriorytetowa: null,\n dzialanie: null,\n // this one is form old perspective and enrollment\n numerInstytucji: {...INSTITUTION_NUMBER_DEFAULT_DICT},\n region: null,\n instytucja: null,\n suffix: {...this.getSuffixDefaultDict()},\n // helpers\n fullNumber: '',\n perspektywy: [],\n osiePriorytetowe: [],\n dzialania: [],\n regiony: [],\n instytucje: [],\n }\n }\n\n postState(props) {\n this.xhrFetchSave = null;\n this.state['fullNumber'] = this.getFullNumber();\n }\n\n getFetchUrl() {\n return API_URLS.perspectives.path\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych do formularza. ${translateErrorMessage(message)}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych do formularza. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n setNumberParts() {\n let parts = [\n ['', 'programOperacyjny'],\n ['.', 'osPriorytetowa'],\n ];\n const { perspektywa } = this.state;\n const hasRegions = hasPerspectiveRegions(perspektywa);\n const hasInstitutions = hasPerspectiveInstitutions(perspektywa);\n\n if (hasRegions) {\n parts.push(['.', 'dzialanie', 'dzialanieIpoddzialanie']);\n if (!this.props.isProjekt) {\n parts.push(['-', 'numerInstytucji']);\n }\n parts.push(['-', 'region']);\n }\n if (hasInstitutions) {\n parts.push(['.', 'dzialanie']);\n parts.push(['-', 'instytucja']);\n }\n\n parts.push(['-', 'suffix']);\n this.parts = parts;\n }\n\n getFullNumber() {\n let fullNumber = '';\n for (let [separator, attrName, alternativeAttrName] of this.parts) {\n const attrValue = this.state[attrName];\n fullNumber += `${separator}${attrValue === null \n ? (SELECTS_CODES[alternativeAttrName] || SELECTS_CODES[attrName])\n : attrValue.code\n }`;\n }\n return fullNumber\n }\n\n updateNumber() {\n const fullNumber = this.getFullNumber();\n this.setState(\n {fullNumber},\n () => {\n if (this.props.onNumberChange) {\n this.props.onNumberChange(fullNumber);\n }\n }\n );\n }\n\n // rendering\n\n render() {\n\n let content;\n if (this.state.initializingOn) {\n content = Trwa inicjalizacja danych...;\n } else {\n const { title } = this.props;\n content = (\n <>\n

    {title}

    \n {this.renderNumer()}\n {this.renderNazwa()}\n \n Anuluj\n \n Zapisz projekt\n \n \n {this.renderError('fetchError')}\n {this.renderError('fetchSaveError')}\n \n );\n }\n\n return (\n \n {content}\n \n\n )\n }\n\n renderNumer() {\n return (\n <>\n \n Powstały numer: {this.state.fullNumber}\n \n {this.renderSelects()}\n {this.renderOthers()}\n \n )\n }\n\n renderSelects() {\n const { errors } = this.state;\n return (\n \n )\n }\n\n renderOthers() {\n const { errors, suffix } = this.state;\n const isSuffixInvalid = (errors.numer || []).length > 0;\n const maxSuffixLength = this.props.suffixMask.length\n return (\n \n this.handleChangeOthers(event.target.value)}\n onClear={event => this.handleChangeOthers('')} />\n {isSuffixInvalid &&
      {errors.numer.map((e, i) => {e})}
    }\n Wpisz numer zgodnie ze wzorem: {this.props.suffixMask}\n \n )\n }\n\n renderNazwa() {\n const { errors, nazwa, savingOn } = this.state;\n const isNazwaInvalid = (errors.nazwa || []).length > 0;\n return (\n \n this.setState({nazwa: event.target.value})}\n onClear={(event) => this.setState({nazwa: ''})} />\n {isNazwaInvalid &&
      {errors.nazwa.map((e, i) => {e})}
    }\n
    \n )\n }\n\n renderError(errorName) {\n if (this.state[errorName].length) {\n return (\n \n {this.state[errorName]}\n this.setState({[errorName]: ''})} lite>OK\n \n );\n }\n return null\n }\n}\n\n\nexport { Form };\n","import React, { useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { ButtonStyled, Ellipsis, FieldWithLabel, GridCustom, Text } from '../../common';\n\n\nconst Ogloszenie = (props) => {\n const [showDetails, setShowDetails] = useState(false);\n const ogloszenie = props.ogloszenie;\n const wersja = ogloszenie.wersja;\n\n return (\n
    \n \n {wersja.tytul || '-'}\n \n \n \n {ogloszenie.numer || '-'}\n \n {showDetails && (\n \n {ogloszenie.status.nazwa}\n \n )}\n \n {showDetails && (\n \n \n {wersja.dataOpublikowania || '-'}\n \n \n {wersja.terminOfert || '-'}\n \n \n )}\n setShowDetails(prevShowDetails => !prevShowDetails)}\n aria-label={(showDetails ? 'Zwiń' : 'Rozwiń') + ' szczegóły ogłoszenia ' + (wersja.tytul || 'numer' + ogloszenie.numer)}\n >\n {(showDetails ? 'Zwiń ' : 'Rozwiń ') + ' szczegóły ogłoszenia'}\n \n \n Przejdź do ogłoszenia\n \n
    \n );\n}\n\nexport { Ogloszenie };\n","import React, { Component } from 'react';\n\nimport { getUserFullName } from '../../../helpers';\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport {\n AuditData,\n Box,\n ButtonStyled,\n FieldWithLabel,\n Text\n} from '../../common';\nimport { Ogloszenie } from './Ogloszenie';\n\n\nclass Projekt extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n ogloszenia: [],\n detailsOn: false,\n initializingDetailsOn: false,\n removingOn: false,\n fetchError: '',\n }\n this.isProject = props.projekt.typ === 'project';\n\n this.xhrFetch = null;\n }\n\n // basic functions\n\n componentWillUnmount() {\n // abort api request if exists\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n // handlers\n\n handleShowOgloszenia = () => {\n this.setState(\n {\n detailsOn: true,\n initializingDetailsOn: true,\n fetchError: '',\n },\n this.getOgloszenia\n );\n }\n\n handleHideOgloszenia = () => {\n this.setState({\n detailsOn: false,\n initializingDetailsOn: false,\n fetchError: '',\n });\n }\n\n handleFetchOgloszeniaSuccess = (data) => {\n this.xhrFetch = null;\n this.setState({\n initializingDetailsOn: false,\n ogloszenia: getSerializedObject(data).ogloszenia,\n });\n }\n\n handleFetchOgloszeniaError = (data) => {\n this.xhrFetch = null;\n this.setState({\n initializingDetailsOn: false,\n fetchError: `Nie udało się pobrać danych ogłoszeń. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchOgloszeniaIncorrectStatus = (status) => {\n this.xhrFetch = null;\n this.setState({\n initializingDetailsOn: false,\n fetchError: `Nie udało się pobrać danych ogłoszeń. Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n handleCloseRemovingOn = () => {\n this.setState({removingOn: false});\n }\n\n // helpers\n\n getOgloszenia() {\n // save ogloszenia from server\n this.xhrFetch = fetchApi(\n `/api/announcements/project_enrollment/${this.props.projekt.id}`,\n 'GET',\n {},\n {},\n this.handleFetchOgloszeniaSuccess,\n this.handleFetchOgloszeniaError,\n this.handleFetchOgloszeniaIncorrectStatus,\n );\n }\n\n // rendering\n\n render() {\n const { projekt } = this.props;\n const { detailsOn } = this.state;\n const isProject = projekt.typ === 'project';\n\n return (\n \n \n {projekt.nazwa || '-'}\n \n
    \n \n {detailsOn ? 'Ukryj ' : 'Pokaż '} szczegóły {isProject ? 'projektu ' : 'naboru '}\n {projekt.nazwa}\n \n {this.renderOgloszeniaDetails()}\n {this.renderRemovingPart()}\n
    \n \n
    \n );\n }\n\n renderOgloszeniaDetails() {\n if (!this.state.detailsOn) { return null }\n if (this.state.initializingDetailsOn) {\n return Trwa pobieranie danych ogłoszeń...\n }\n if (this.state.fetchError.length) {\n return {this.state.fetchError}\n }\n\n const { ogloszenia } = this.state;\n const { projekt } = this.props;\n let ogloszenia_;\n if (ogloszenia.length) {\n ogloszenia_ = (\n
      \n {ogloszenia.map(o =>
    • )}\n
    \n );\n } else {\n ogloszenia_ = Ten {this.isProject ? 'projekt' : 'nabór'} nie ma przypisanych ogłoszeń.;\n }\n return (\n <>\n \n Lista ogłoszeń\n \n {` podpiętych do ${this.isProject ? 'projektu' : 'naboru'} ${projekt.nazwa}`}\n :\n \n {ogloszenia_}\n \n )\n }\n\n renderRemovingPart() {\n if (!this.state.removingOn) {\n return (\n this.setState({removingOn: true})}\n >\n Usuń{this.isProject ? ' projekt ' : ' nabór '} {this.props.projekt.nazwa}\n \n )\n }\n\n if (this.props.projekt.maOpublikowaneOgloszenia) {\n return (\n <>\n Tego {this.isProject ? 'projektu' : 'naboru'} nie można usunąć, ponieważ ma przypisane ogłoszenia już opublikowane.\n OK\n \n )\n }\n const { projekt } = this.props;\n let msg;\n if (projekt.maRoboczeOgloszenia) {\n msg = (\n \n Ten {this.isProject ? 'projekt' : 'nabór'} ma przypisane ogłoszenia o statusie \"Robocze\" i po usunięciu zostaną one od niego odpięte.\n \n );\n } else {\n msg = Ten {this.isProject ? 'projekt' : 'nabór'} nie ma przypisanych ogłoszeń i może być bezpiecznie usunięty.;\n }\n return (\n <>\n {msg}\n this.props.onRemove(projekt.id, this.isProject)}\n >\n Usuń{this.isProject ? ' projekt ' : ' nabór '}{projekt.nazwa}\n \n Anuluj usuwanie{this.isProject ? ' projektu ' : ' naboru '}{projekt.nazwa}\n \n )\n }\n};\n\n\nexport { Projekt };\n","import React from 'react';\nimport { Switch } from '@rmwc/switch';\n\nimport { CZY_PROJEKT_CHOICES } from '../../../const';\nimport { fetchApi } from '../../../fetch';\nimport { filterProjects, PROJECTS_CLEANED_FILTERS } from '../../../filters';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { PROJECTS_SORTING_VALUES, sortProjects } from '../../../sorters';\nimport {\n Box,\n ButtonStyled,\n Container,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { BaseComponent } from '../common';\nimport { PomocEkranowa } from '../zarzadzanieTrescia/PomocEkranowa';\nimport { Form } from './Form';\nimport { Projekt } from './Projekt';\n\n\nclass Projekty extends BaseComponent {\n\n // basic functions\n\n componentDidMount() {\n if (this.props.preview) {\n this.setState({initializingOn: false});\n return\n }\n\n document.title = \"Baza Konkurencyjności - projekty\";\n super.componentDidMount();\n };\n\n // handlers\n\n handleFetchSuccess = (data) => {\n super.handleFetchSuccess(data);\n this.setState({\n projekty: getSerializedObject(data).projektyNabory,\n initializingOn: false,\n });\n }\n\n handleSave = (data) => {\n this.setState(prevState => {\n return {\n formOn: false,\n projekty: [...prevState.projekty, data],\n }\n });\n }\n\n handleToggleFilters(checked) {\n if (checked) {\n this.setState({filtersAreOn: true});\n } else {\n this.setState({\n filtersAreOn: false,\n filters: PROJECTS_CLEANED_FILTERS,\n });\n }\n }\n\n handleChangeFilter(name, value) {\n this.setState(prevState => {\n return {filters: Object.assign({}, prevState.filters, {[name]: value})}\n });\n }\n\n handleRemove = (id, isProject) => {\n // remove project on server\n this.xhrFetch = fetchApi(\n `/api/${isProject ? 'project' : 'enrollment'}/${id}`,\n 'DELETE',\n {},\n {},\n this.handleFetchRemoveSuccess,\n this.handleFetchRemoveError,\n this.handleFetchRemoveIncorrectStatus,\n );\n }\n\n handleFetchRemoveSuccess = (data) => {\n this.xhrFetch = null;\n const serializedData = getSerializedObject(data);\n this.setState(prevState => ({\n projekty: prevState.projekty.filter(\n p => parseInt(p.id) !== parseInt((serializedData.projekt || serializedData.nabor || {}).id),\n ),\n removingError: '',\n }));\n }\n\n handleFetchRemoveError = (data) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({removingError: `Nie udało się usunąć obiektu. ${translateErrorMessage(data.message)}`});\n }\n\n handleFetchRemoveIncorrectStatus = (status) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({removingError: `Nie udało się usunąć obiektu. Wystąpił nieoczekiwany błąd o kodzie ${status}.`});\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n currentSortingValue: {\n value: PROJECTS_SORTING_VALUES[0][0],\n label: PROJECTS_SORTING_VALUES[0][1],\n },\n czyNewProjekt: true,\n formOn: false,\n filtersAreOn: false,\n filters: Object.assign({}, PROJECTS_CLEANED_FILTERS),\n projekty: [],\n removingError: '',\n }\n }\n\n getFetchUrl() {\n return '/api/project_enrollment'\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych projektów i naborów. ${translateErrorMessage(message)}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych projektów i naborów. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n renderContent() {\n const {\n currentSortingValue,\n filters,\n filtersAreOn,\n formOn,\n projekty\n } = this.state;\n\n const projects = sortProjects(\n filterProjects(projekty, filtersAreOn, filters),\n currentSortingValue.value\n );\n\n const isPreview = !!this.props.preview;\n\n return (\n <>\n \n Lista projektów i naborów\n Liczba wyników: {projects.length}\n \n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n value={currentSortingValue}\n isDisabled={isPreview}\n isSearchable={false}\n options={PROJECTS_SORTING_VALUES.map(([value, label]) => ({value, label}))}\n onChange={(selectedOption) => this.setState({currentSortingValue: selectedOption})}\n className=\"select-custom\"\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n this.handleToggleFilters(ev.target.checked)}\n id=\"project_filters_id\"\n />\n \n \n \n \n {filtersAreOn && this.renderFilters()}\n \n \n
    \n {\n this.setState({formOn: true, czyNewProjekt: true});\n e.currentTarget.blur();\n }}>\n Dodaj projekt\n \n {\n this.setState({formOn: true, czyNewProjekt: false});\n e.currentTarget.blur();\n }}>\n Dodaj nabór\n \n
    \n
    \n {projects.map(p => )}\n
    \n
    \n {formOn && this.renderForm()}\n {this.state.removingError.length > 0 && this.renderRemovingErrorDialog()}\n \n )\n }\n\n renderFilters() {\n const filters = this.state.filters;\n return (\n \n \n \n this.handleChangeFilter('calyNumer', ev.target.value)}\n onClear={(ev) => this.handleChangeFilter('calyNumer', '')}\n value={filters.calyNumer}\n />\n \n \n this.handleChangeFilter('nazwa', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('nazwa', '')}\n id=\"filters_project_title_id\" />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n options={CZY_PROJEKT_CHOICES.map(s => ({value: s[0], label: s[1]}))}\n value={{value: filters.typ.value || CZY_PROJEKT_CHOICES[0][0], label: filters.typ.label || CZY_PROJEKT_CHOICES[0][1]}}\n onChange={(selectedOption) => this.handleChangeFilter('typ', selectedOption)}\n styles={customSelectStyles}\n />\n \n \n \n )\n }\n\n renderForm() {\n let isProjekt, suffixMask, saveUrl, title;\n if (this.state.czyNewProjekt) {\n isProjekt = true;\n suffixMask = \"0000/00\";\n saveUrl = '/api/project';\n title = 'Dodaj projekt';\n } else {\n isProjekt = false;\n suffixMask = \"000/00\";\n saveUrl = '/api/enrollment';\n title = 'Dodaj nabór';\n }\n return p.numer)}\n onClose={() => this.setState({formOn: false})}\n onSave={this.handleSave} />\n }\n\n renderRemovingErrorDialog() {\n return (\n this.setState({ removingError: '' })}\n >\n \n this.setState({removingError: ''})} primary>OK\n \n \n )\n }\n}\n\n\nexport { Projekty };\n","import React, { useEffect, useState } from \"react\";\n\nimport {\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Select,\n TextFieldCustom,\n Text,\n DialogCustom,\n} from \"../../common\";\nimport { customSelectStyles } from \"../../vars/vars\";\n\nimport { serializeObjectList } from \"../../../serializers\";\n\nimport { fetchApi } from \"../../../fetch\";\n\nimport {\n sortMiejsceRealizacjiFilter,\n sortProgrammeFilter,\n} from \"../../../sorters\";\n\nimport { FormKodCPV } from \"../ogloszenia/FormKodCPV\";\n\nconst EMPTY_VALUE = {\n value: 0,\n label: \"Wybierz\",\n};\n\nconst ORDER_ITEM_CATEGORIES = \"order_item_categories\";\n\nconst serializeProgrammeSelectStructure = (data) => {\n let data_ = {};\n for (let programme of Object.values(data)) {\n data_[programme.id] = `${programme.code.toUpperCase()} - ${programme.name}`;\n }\n return Object.entries(data_).sort(sortProgrammeFilter) || [];\n};\n\nconst removeEmptyArraysAndNulls = (obj) => {\n if (!obj) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(obj).filter(\n ([_, value]) =>\n value !== null && (!Array.isArray(value) || value.length > 0)\n )\n );\n};\n\nexport const NewsletterSettingsFilter = (props) => {\n const [state, setState] = useState({\n isSelectOpen: false,\n dictionaries: {\n programOperacyjny: [],\n przedmiotZamowieniaKategoria: [],\n miejsceRealizacji: [],\n },\n currentDictionaries: {\n programOperacyjny: [],\n przedmiotZamowieniaKategoria: [],\n miejsceRealizacji: [],\n },\n errors: { errorNipOgloszeniodawcy: {} },\n filters: removeEmptyArraysAndNulls(props.filter) || {},\n isLoading: true,\n });\n\n useEffect(() => {\n fetchApi(\n \"/api/dictionaries/search-filters\",\n \"GET\",\n {},\n {},\n (data) => {\n const dictionaries = {\n przedmiotZamowieniaKategoria: serializeObjectList(\n data[ORDER_ITEM_CATEGORIES]\n ),\n programOperacyjny: serializeProgrammeSelectStructure(\n data.operation_programme\n ),\n miejsceRealizacji:\n Object.entries(data.location_id).sort(\n sortMiejsceRealizacjiFilter\n ) || [],\n };\n setState({ ...state, dictionaries: dictionaries, isLoading: false });\n },\n () => {},\n () => {}\n );\n }, []);\n\n /** Hook to filter out already selected dictionaries */\n useEffect(() => {\n const operationalProgramsIdsInFilter =\n state.filters.programme?.map((x) => `${x.value}`) ?? [];\n\n const fulfillmentPlacesIdsInFilter =\n state.filters.fulfillmentPlaces?.map((x) => x.value) ?? [];\n\n const currentDictionaries = {\n przedmiotZamowieniaKategoria:\n state.dictionaries.przedmiotZamowieniaKategoria,\n miejsceRealizacji: state.dictionaries.miejsceRealizacji.filter(\n (x) => !fulfillmentPlacesIdsInFilter.includes(x[0])\n ),\n programOperacyjny: state.dictionaries.programOperacyjny.filter(\n (x) => !operationalProgramsIdsInFilter.includes(x[0])\n ),\n };\n\n setState({ ...state, currentDictionaries });\n }, [state.filters, state.dictionaries]);\n\n const handleChangeFilter = (name, value) => {\n let dict = { [name]: value };\n if (name === \"advertiserIdentificationNumber\") {\n // allow to insert only letters and digits\n dict[\"advertiserIdentificationNumber\"] = value.replace(/[^a-zA-Z\\d]/, \"\");\n } else {\n dict[name] = value;\n }\n if (name === \"category\") {\n let updatedFilters = state.filters;\n updatedFilters.subcategory = undefined;\n setState({ ...state, filters: updatedFilters });\n delete dict[\"subcategory\"];\n }\n // clean error (just in case if exists)\n let errors = Object.assign({}, state.errors);\n delete errors[name];\n\n const newFilters = Object.assign({}, state.filters, dict);\n\n if (value?.length === 0 || !value) {\n delete newFilters[name];\n }\n\n setState({\n ...state,\n errors,\n filters: newFilters,\n });\n };\n\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n if (state.isSelectOpen) {\n event.stopPropagation();\n } else {\n props.close();\n }\n }\n };\n\n return state.isLoading ? (\n <>\n ) : (\n \n

    \n Filtr newslettera\n

    \n
    \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isMulti\n options={state.currentDictionaries.programOperacyjny.map(\n ([value, label]) => ({ value, label })\n )}\n placeholder=\"Zacznij wpisywać...\"\n value={state.filters.programme}\n onChange={(selectedOption) =>\n handleChangeFilter(\"programme\", selectedOption || [])\n }\n onMenuOpen={() => setState({ ...state, isSelectOpen: true })}\n onMenuClose={() => setState({ ...state, isSelectOpen: false })}\n styles={customSelectStyles}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n options={[EMPTY_VALUE].concat(\n ...state.currentDictionaries.przedmiotZamowieniaKategoria.map(\n (t) => ({\n value: t.id,\n label: t.nazwa,\n })\n )\n )}\n value={state.filters.category || EMPTY_VALUE}\n onChange={(selectedOption) => {\n handleChangeFilter(\n \"category\",\n selectedOption.value === 0 ? null : selectedOption\n );\n }}\n onMenuOpen={() => setState({ ...state, isSelectOpen: true })}\n onMenuClose={() => setState({ ...state, isSelectOpen: false })}\n styles={customSelectStyles}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isDisabled={state.filters.category === null}\n options={\n state.filters.category === null\n ? [EMPTY_VALUE]\n : [EMPTY_VALUE].concat(\n ...(state.currentDictionaries.przedmiotZamowieniaKategoria\n .filter(\n (k) =>\n parseInt(k.id) ===\n parseInt(state.filters.category?.value)\n )[0]\n ?.podkategorie.map((p) => ({\n value: p.id,\n label: p.nazwa,\n })) ?? [])\n )\n }\n value={state.filters.subcategory || EMPTY_VALUE}\n onChange={(selectedOption) =>\n handleChangeFilter(\n \"subcategory\",\n selectedOption.value === 0 ? null : selectedOption\n )\n }\n onMenuOpen={() => setState({ ...state, isSelectOpen: true })}\n onMenuClose={() => setState({ ...state, isSelectOpen: false })}\n styles={customSelectStyles}\n aria-hidden={state.filters.category === null}\n aria-label={state.filters.category !== null && \"Podkategoria\"}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n handleChangeFilter(\"cpvItem\", selectedOptions || [])\n }\n />\n \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isMulti\n options={state.currentDictionaries.miejsceRealizacji.map((m) => ({\n value: m[0],\n label: m[1],\n }))}\n placeholder=\"Zacznij wpisywać...\"\n value={state.filters.fulfillmentPlaces}\n onChange={(selectedOption) =>\n handleChangeFilter(\"fulfillmentPlaces\", selectedOption || [])\n }\n onMenuOpen={() => setState({ ...state, isSelectOpen: true })}\n onMenuClose={() => setState({ ...state, isSelectOpen: false })}\n styles={{\n ...customSelectStyles,\n menuPortal: (provided, state) => ({\n ...provided,\n maxHeight: \"160px\",\n }),\n menuList: (provided, state) => ({\n ...provided,\n maxHeight: \"160px\",\n }),\n }}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n 0\n ? \"filters_numer_identyfikacyjny_ogloszeniodawcy_error\"\n : null\n }\n aria-label={`Numer identyfikacyjny ogłoszeniodawcy: 255. Wpisz tylko cyfry. Wpisano ${\n state.filters.advertiserIdentificationNumber?.length ?? 0\n } znaków.`}\n aria-valuemax={255}\n characterCount\n className=\"filters__input\"\n clearFieldContext=\"numer identyfikacyjny ogłoszeniodawcy\"\n id=\"filters_numer_identyfikacyjny_ogloszeniodawcy_id\"\n invalid={(state.errors.errorNipOgloszeniodawcy || \"\").length > 0}\n maxLength={255}\n onChange={(ev) =>\n handleChangeFilter(\n \"advertiserIdentificationNumber\",\n ev.target.value\n )\n }\n onClear={(ev) =>\n handleChangeFilter(\"advertiserIdentificationNumber\", \"\")\n }\n onKeyUp={(ev) =>\n handleChangeFilter(\n \"advertiserIdentificationNumber\",\n ev.target.value\n )\n }\n value={state.filters.advertiserIdentificationNumber ?? \"\"}\n />\n {(state.errors.errorNipOgloszeniodawcy || \"\").length > 0 && (\n \n {state.errors.errorNipOgloszeniodawcy}\n \n )}\n \n \n
    \n \n x !== \"id\")?.length <= 0\n }\n onClick={() => {\n props.save(state.filters);\n }}\n primary\n >\n Zapisz\n \n \n Anuluj\n \n \n \n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { PomocEkranowa } from \"../zarzadzanieTrescia\";\nimport { Text } from \"../../common\";\nimport { Elevation, Switch } from \"rmwc\";\nimport {\n GridCustom,\n ButtonStyled,\n GridCellCustom,\n DialogCustom,\n} from \"../../common\";\nimport { Badge } from \"@rmwc/badge\";\nimport \"@rmwc/badge/badge.css\";\nimport { NewsletterSettingsFilter } from \"./NewsletterSettingsFilter\";\nimport { generateUUIDV4 } from \"../../../helpers\";\nimport { fetchApi } from \"../../../fetch\";\nimport { Link } from \"react-router-dom\";\nimport { dateToString } from \"../../../helpers\";\nimport { Pagination } from \"../../common\";\n\nexport const NewsletterSettings = ({ isPreview, content }) => {\n const [showDeleteFilterModal, setShowDeleteFilterModal] = useState(undefined);\n const [filterModalData, setFilterModalData] = useState({\n visible: false,\n filter: undefined,\n });\n const [filters, setFilters] = useState([]);\n const [advertisements, setAdvertisements] = useState([]);\n\n const yesterdayDate = dateToString(\n new Date(new Date().valueOf() - 1000 * 60 * 60 * 24)\n );\n\n const dayBeforeYesterdayDate = dateToString(\n new Date(new Date().valueOf() - 1000 * 60 * 60 * 24 * 2)\n );\n\n const [advertisementsFilters, setAdvertisementsFilters] = useState({\n page: 1,\n total: 1,\n day: yesterdayDate,\n status: \"new\",\n });\n\n const [updatedCount, setUpdatedCount] = useState(0);\n const [newCount, setNewCount] = useState(0);\n const [isBusy, setIsBusy] = useState(false);\n\n const PAGE_LIMIT = 5;\n\n const refreshUpdatedAnnouncementsCount = () => {\n return new Promise((resolve, reject) => {\n fetchApi(\n `/api/announcements?mode=newsletter&page=1&limit=1&day=${advertisementsFilters.day}&newsletter_status=updated`,\n \"GET\",\n {},\n {},\n (announcements) => {\n setUpdatedCount(announcements.meta.total);\n resolve();\n },\n () => {\n reject();\n },\n () => {\n reject();\n }\n );\n });\n };\n\n const refreshNewAnnouncementsCount = () => {\n return new Promise((resolve, reject) => {\n fetchApi(\n `/api/announcements?mode=newsletter&page=1&limit=1&day=${advertisementsFilters.day}&newsletter_status=new`,\n \"GET\",\n {},\n {},\n (announcements) => {\n setNewCount(announcements.meta.total);\n resolve();\n },\n () => {\n reject();\n },\n () => {\n reject();\n }\n );\n });\n };\n\n const refreshFilters = () => {\n fetchApi(\n \"/api/newsletter-filters\",\n \"GET\",\n {},\n {},\n (filters) => {\n const { newsletter_filters } = filters;\n\n const mappedFilters = newsletter_filters.map((filter) => {\n const modalFilter = filter.modal_settings;\n\n return {\n id: generateUUIDV4(),\n name: buildFilterName(modalFilter),\n filter: { ...modalFilter, id: filter.id },\n filterByPropertiesCount: countFilters(modalFilter),\n enabled: filter.enabled,\n };\n });\n\n setFilters(mappedFilters);\n },\n () => {},\n () => {}\n );\n };\n\n useEffect(() => {\n refreshFilters();\n }, []);\n\n useEffect(() => {\n setIsBusy(true);\n\n var promise1 = refreshAnnouncements();\n var promise2 = refreshUpdatedAnnouncementsCount();\n var promise3 = refreshNewAnnouncementsCount();\n\n Promise.all([promise1, promise2, promise3]).then(() => {\n setIsBusy(false);\n });\n }, [\n advertisementsFilters.page,\n advertisementsFilters.status,\n advertisementsFilters.day,\n ]);\n\n const countFilters = (filter) => {\n const modalFilterProperties = Object.keys(filter)\n .map((key) => {\n if (Array.isArray(filter[key]) && filter[key].length > 0) {\n return filter[key];\n } else if (!Array.isArray(filter[key]) && filter[key] && key !== \"id\") {\n return filter[key];\n }\n return null;\n })\n .filter((x) => x);\n\n return modalFilterProperties.length;\n };\n\n const refreshAnnouncements = () => {\n const filters = advertisementsFilters;\n\n return new Promise((resolve, reject) => {\n fetchApi(\n `/api/announcements?mode=newsletter&page=${filters.page}&limit=${PAGE_LIMIT}&day=${filters.day}&newsletter_status=${filters.status}`,\n \"GET\",\n {},\n {},\n (announcements) => {\n setAdvertisements(announcements.advertisements);\n setAdvertisementsFilters({\n ...advertisementsFilters,\n total: announcements.meta.total,\n });\n\n if (filters.status === \"new\") {\n setNewCount(announcements.meta.total);\n } else if (filters.status === \"updated\") {\n setUpdatedCount(announcements.meta.total);\n }\n resolve();\n },\n () => {\n reject();\n },\n () => {\n reject();\n }\n );\n });\n };\n\n const addFilter = (filter) => {\n if (Object.keys(filter)?.length > 0) {\n mapAndSaveFilter(null, filter, () => {\n refreshFilters();\n refreshAnnouncements();\n refreshUpdatedAnnouncementsCount();\n refreshNewAnnouncementsCount();\n });\n }\n };\n\n const editFilter = (id, filter) => {\n mapAndSaveFilter(filter.id, filter, () => {\n const updatedFilters = filters.map((existingFilter) => {\n if (existingFilter.id === id) {\n return {\n id: id,\n name: buildFilterName(filter),\n filter: filter,\n filterByPropertiesCount: countFilters(filter),\n };\n } else {\n return existingFilter;\n }\n });\n\n setFilters(updatedFilters);\n refreshAnnouncements();\n refreshUpdatedAnnouncementsCount();\n });\n };\n\n const mapAndSaveFilter = (id, filter, onSuccess) => {\n const filterToSave = {\n advertiser_identification_number: filter.advertiserIdentificationNumber,\n programme_ids: filter.programme?.map((x) => x.value) ?? [],\n category_id: filter.category?.value,\n subcategory_id: filter.subcategory?.value,\n cpv_item_ids: filter.cpvItem?.map((x) => x.id) ?? [],\n fulfillment_place_codes:\n filter.fulfillmentPlaces?.map((x) => x.value) ?? [],\n };\n\n const requestUrl = id\n ? `/api/newsletter-filters/${id}`\n : `/api/newsletter-filters`;\n\n const requestMethod = id ? \"PUT\" : \"POST\";\n\n fetchApi(\n requestUrl,\n requestMethod,\n {},\n filterToSave,\n () => onSuccess(),\n () => {},\n () => {}\n );\n };\n\n const enableDisableFilter = (checked, filter) => {\n fetchApi(\n `/api/newsletter-filters/${filter.filter.id}/enabled`,\n \"PUT\",\n {},\n { enabled: checked },\n () => {\n const updatedFilters = [\n ...filters.map((x) => {\n if (x.id === filter.id) {\n x.enabled = checked;\n }\n\n return x;\n }),\n ];\n setFilters(updatedFilters);\n refreshAnnouncements();\n refreshUpdatedAnnouncementsCount();\n refreshNewAnnouncementsCount();\n },\n () => {},\n () => {}\n );\n };\n\n const deleteFilter = (filter) => {\n fetchApi(\n `/api/newsletter-filters/${filter.filter.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n const newFilters = filters.filter((x) => x.id !== filter.id);\n setFilters(newFilters);\n refreshAnnouncements();\n refreshUpdatedAnnouncementsCount();\n refreshNewAnnouncementsCount();\n setShowDeleteFilterModal(undefined);\n },\n () => {},\n () => {}\n );\n };\n\n const buildFilterName = (filter) => {\n const { id, ...rest } = filter;\n\n const propValues = Object.values(rest)\n .filter((x) => x)\n .map((value) => {\n if (Array.isArray(value)) {\n return value\n .map((item) => {\n if (item.hasOwnProperty(\"label\")) {\n return item.label;\n } else {\n return `${item.kod} ${item.nazwa}`;\n }\n })\n .join(\", \");\n } else if (typeof value === \"object\") {\n return value?.label;\n } else {\n return value;\n }\n });\n return propValues.filter((x) => x).join(\"; \");\n };\n\n const handleChangePage = (next = true) => {\n if (next) {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n page: advertisementsFilters.page + 1,\n });\n } else {\n if (advertisementsFilters.page > 1) {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n page: advertisementsFilters.page - 1,\n });\n }\n }\n };\n\n const handleAddToFavorites = (object) => {\n fetchApi(\n `/api/favorite-announcements/${object.advertisement.id}`,\n \"POST\",\n {},\n {},\n () => {\n const index = advertisements.findIndex((obj) => obj.id === object.id);\n const updatedObjects = [...advertisements];\n updatedObjects[index] = { ...updatedObjects[index], favorite: true };\n setAdvertisements(updatedObjects);\n }\n );\n };\n\n const handleRemoveFromFavorites = (object) => {\n fetchApi(\n `/api/favorite-announcements/${object.advertisement.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n const index = advertisements.findIndex((obj) => obj.id === object.id);\n const updatedObjects = [...advertisements];\n updatedObjects[index] = { ...updatedObjects[index], favorite: false };\n setAdvertisements(updatedObjects);\n }\n );\n };\n\n return (\n <>\n
    \n \n \n Ustawienia newslettera\n \n\n
    \n {filters.map((filter, index) => {\n return (\n \n \n \n enableDisableFilter(ev.target.checked, filter)\n }\n >\n {filter.name}\n \n \n {\n setFilterModalData({\n visible: true,\n filter: filter.filter,\n id: filter.id,\n });\n }}\n >\n EDYTUJ\n \n \n\n {\n setShowDeleteFilterModal(filter);\n }}\n >\n USUŃ\n \n \n \n \n );\n })}\n
    \n {\n setFilterModalData({ visible: true, filter: undefined });\n }}\n >\n Dodaj\n \n \n Wyniki\n \n\n \n

    Data opublikowania:

    \n {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n day: dayBeforeYesterdayDate,\n page: 1,\n });\n }}\n >\n {dayBeforeYesterdayDate}\n \n {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n day: yesterdayDate,\n page: 1,\n });\n }}\n >\n {yesterdayDate}\n \n
    \n\n \n {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n status: \"new\",\n page: 1,\n });\n }}\n >\n NOWE ({newCount} OGŁOSZEŃ)\n \n {\n setAdvertisementsFilters({\n ...advertisementsFilters,\n status: \"updated\",\n page: 1,\n });\n }}\n >\n ZAKTUALIZOWANE ({updatedCount} OGŁOSZEŃ)\n \n \n\n
      \n {advertisements.map((advertisement) => {\n return (\n \n \n \n \n \n \n {advertisement.is_mine && (\n Moje ogłoszenie\n )}\n \n {!advertisement.is_mine && (\n \n {advertisement.favorite === false && (\n handleAddToFavorites(advertisement)}\n primary\n icon=\"favorite\"\n >\n DODAJ DO ULUBIONYCH\n \n ogłoszenie {advertisement.title}\n \n \n )}\n {advertisement.favorite === true && (\n \n handleRemoveFromFavorites(advertisement)\n }\n remove\n icon=\"close\"\n >\n USUŃ Z ULUBIONYCH\n \n {\" \"}\n ogłoszenie {advertisement.title}\n \n \n )}\n \n )}\n \n\n

      \n \n \n Opublikowano: {advertisement.publication_date}\n \n \n Termin składania ofert: {advertisement.submission_deadline}\n \n \n \n \n {(advertisement.fulfillment_place || \"\").length > 0 && (\n \n {advertisement.fulfillment_place}\n \n )}\n \n \n );\n })}\n
    \n 1}\n handleChangePage={handleChangePage}\n />\n
    \n {filterModalData.visible && (\n {\n if (filterModalData.filter) {\n editFilter(filterModalData.id, filter);\n } else {\n addFilter(filter);\n }\n\n setFilterModalData({ visible: false, filter: undefined });\n }}\n close={() => {\n setFilterModalData({ visible: false, filter: undefined });\n }}\n />\n )}\n {showDeleteFilterModal && (\n {\n setShowDeleteFilterModal(undefined);\n }}\n >\n \n {\n setShowDeleteFilterModal(undefined);\n }}\n cancel\n >\n Anuluj\n \n {\n deleteFilter(showDeleteFilterModal);\n }}\n remove\n >\n Usuń\n \n \n \n )}\n \n );\n};\n","import React, { Component } from \"react\";\n\nimport {\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Select,\n TextFieldCustom,\n Text,\n} from \"../../common\";\nimport { customSelectStyles } from \"../../vars/vars\";\n\nimport { serializeObjectList } from \"../../../serializers\";\n\nimport { fetchApi } from \"../../../fetch\";\n\nimport {\n sortMiejsceRealizacjiFilter,\n sortProgrammeFilter,\n} from \"../../../sorters\";\n\nimport { FormKodCPV } from \"../ogloszenia/FormKodCPV\";\n\nconst EMPTY_VALUE = {\n value: 0,\n label: \"Wybierz\",\n};\n\nconst ORDER_ITEM_CATEGORIES = \"order_item_categories\";\n\nconst serializeProgrammeSelectStructure = (data) => {\n let data_ = {};\n for (let programme of Object.values(data)) {\n data_[programme.id] = `${programme.code.toUpperCase()} - ${programme.name}`;\n }\n return Object.entries(data_).sort(sortProgrammeFilter) || [];\n};\n\nclass FavoritesFilters extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n initializingOn: true,\n filters: props.filters,\n dictionaries: props.dictionaries,\n errors: {},\n };\n\n this.xhrFetch = null;\n\n this.handleFetchSuccess = this.handleFetchSuccess.bind(this);\n this.handleFetchError = this.handleFetchError.bind(this);\n this.handleFetchIncorrectStatus =\n this.handleFetchIncorrectStatus.bind(this);\n this.handleApplyFilters = this.handleApplyFilters.bind(this);\n }\n\n componentDidMount() {\n if (!Object.keys(this.state.dictionaries).length) {\n // get dictionaries from server\n this.xhrFetch = fetchApi(\n \"/api/dictionaries/search-filters\",\n \"GET\",\n {},\n {},\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus\n );\n } else {\n this.setState({ initializingOn: false });\n }\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n //handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n let dictionaries = {\n przedmiotZamowieniaKategoria: serializeObjectList(\n data[ORDER_ITEM_CATEGORIES]\n ),\n programOperacyjny: serializeProgrammeSelectStructure(\n data.operation_programme\n ),\n miejsceRealizacji:\n Object.entries(data.location_id).sort(sortMiejsceRealizacjiFilter) ||\n [],\n };\n\n this.setState(\n {\n initializingOn: false,\n dictionaries,\n },\n () => this.props.updateDictionaries(dictionaries)\n );\n }\n\n handleFetchError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: `Nie udało się pobrać danych do filtrów. ${data.message}`,\n });\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n handleApplyFilters() {\n this.props.updateFilters(this.state.filters);\n }\n\n handleChangeFilter(name, value) {\n this.setState((prevState) => {\n let dict = { [name]: value };\n if (name === \"advertiserIdentificationNumber\") {\n // allow to insert only letters and digits\n dict[\"advertiserIdentificationNumber\"] = value.replace(\n /[^a-zA-Z\\d]/,\n \"\"\n );\n } else {\n dict[name] = value;\n }\n if (name === \"category\") {\n dict[\"subcategory\"] = null;\n }\n // clean error (just in case if exists)\n let errors = Object.assign({}, prevState.errors);\n delete errors[name];\n return { errors, filters: Object.assign({}, prevState.filters, dict) };\n });\n }\n\n // rendering\n\n render() {\n const filters = this.state.filters;\n if (this.state.initializingOn) {\n return (\n \n Trwa inicjalizacja danych...\n \n );\n } else {\n return (\n <>\n
    \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isMulti\n options={this.state.dictionaries.programOperacyjny.map(\n ([value, label]) => ({ value, label })\n )}\n placeholder=\"Zacznij wpisywać...\"\n value={filters.programme}\n onChange={(selectedOption) =>\n this.handleChangeFilter(\"programme\", selectedOption || [])\n }\n styles={customSelectStyles}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n options={[EMPTY_VALUE].concat(\n ...this.state.dictionaries.przedmiotZamowieniaKategoria.map(\n (t) => ({\n value: t.id,\n label: t.nazwa,\n })\n )\n )}\n value={filters.category || EMPTY_VALUE}\n onChange={(selectedOption) => {\n this.handleChangeFilter(\n \"category\",\n selectedOption.value === 0 ? null : selectedOption\n );\n }}\n styles={customSelectStyles}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isDisabled={filters.category === null}\n options={\n filters.category === null\n ? [EMPTY_VALUE]\n : [EMPTY_VALUE].concat(\n ...this.state.dictionaries.przedmiotZamowieniaKategoria\n .filter(\n (k) =>\n parseInt(k.id) ===\n parseInt(filters.category?.value)\n )[0]\n .podkategorie.map((p) => ({\n value: p.id,\n label: p.nazwa,\n }))\n )\n }\n value={filters.subcategory || EMPTY_VALUE}\n onChange={(selectedOption) =>\n this.handleChangeFilter(\n \"subcategory\",\n selectedOption.value === 0 ? null : selectedOption\n )\n }\n styles={customSelectStyles}\n aria-hidden={filters.category === null}\n aria-label={filters.category !== null && \"Podkategoria\"}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n this.handleChangeFilter(\"cpvItem\", selectedOptions || [])\n }\n />\n \n \n \n {\n return \"Wybierz opcję z listy rozwijanej\";\n }}\n className=\"select-custom\"\n isMulti\n options={this.state.dictionaries.miejsceRealizacji.map(\n (m) => ({\n value: m[0],\n label: m[1],\n })\n )}\n placeholder=\"Zacznij wpisywać...\"\n value={filters.fulfillmentPlaces}\n onChange={(selectedOption) =>\n this.handleChangeFilter(\n \"fulfillmentPlaces\",\n selectedOption || []\n )\n }\n styles={customSelectStyles}\n noOptionsMessage={() => \"Brak wybranej opcji\"}\n />\n \n \n 0\n ? \"filters_numer_identyfikacyjny_ogloszeniodawcy_error\"\n : null\n }\n aria-label={`Numer identyfikacyjny ogłoszeniodawcy: 255. Wpisz tylko cyfry. Wpisano ${filters.advertiserIdentificationNumber.length} znaków.`}\n aria-valuemax={255}\n characterCount\n className=\"filters__input\"\n clearFieldContext=\"numer identyfikacyjny ogłoszeniodawcy\"\n id=\"filters_numer_identyfikacyjny_ogloszeniodawcy_id\"\n invalid={\n (this.state.errors.errorNipOgloszeniodawcy || \"\").length > 0\n }\n maxLength={255}\n onChange={(ev) =>\n this.handleChangeFilter(\n \"advertiserIdentificationNumber\",\n ev.target.value\n )\n }\n onClear={(ev) =>\n this.handleChangeFilter(\n \"advertiserIdentificationNumber\",\n \"\"\n )\n }\n onKeyUp={(ev) =>\n this.handleChangeFilter(\n \"advertiserIdentificationNumber\",\n ev.target.value\n )\n }\n value={filters.advertiserIdentificationNumber}\n />\n {(this.state.errors.errorNipOgloszeniodawcy || \"\").length >\n 0 && (\n \n {this.state.errors.errorNipOgloszeniodawcy}\n \n )}\n \n \n
    \n \n \n Anuluj\n \n \n Zastosuj kryteria\n \n \n \n );\n }\n }\n}\n\nexport { FavoritesFilters };\n","import React from \"react\";\nimport { PomocEkranowa } from \"../zarzadzanieTrescia\";\nimport { PaginatedBaseComponent } from \"../common\";\n\nimport { Link } from \"react-router-dom\";\nimport {\n getFavoritesAdvertFiltersCount,\n FAVORITES_ADVERT_CLEANED_FILTERS,\n} from \"../../../filters\";\nimport { FavoritesFilters } from \"./FavoritesFilters\";\n\nimport {\n Box,\n FieldWithLabel,\n GridCustom,\n ButtonStyled,\n Text,\n} from \"../../common\";\nimport { dateToString } from \"../../../helpers\";\nimport { isAdvertisementLocked } from \"../../../helpers\";\nimport { fetchApi } from \"../../../fetch\";\nimport { BadgeAnchor, Badge } from \"@rmwc/badge\";\nimport \"@rmwc/badge/badge.css\";\n\nclass Favorites extends PaginatedBaseComponent {\n preState(props) {\n super.preState(props);\n this.objectsName = \"ogloszenia\";\n this.paginateBy = 20;\n this.sortingValues = [\n [\"publicationDate\", \"Po dacie publikacji ogłoszeń\"],\n [\"submissionDeadline\", \"Po terminie składania ofert\"],\n [\"default\", \"Domyślnie\"],\n ];\n this.filteringLabel = \"Filtruj listę\";\n this.filtersComponentClass = FavoritesFilters;\n\n this.getFiltersCount = getFavoritesAdvertFiltersCount;\n }\n\n postState(props) {\n super.postState(props);\n this.dictionaries = {};\n }\n\n handleReload = (link = null) => {\n this.setState({ initializingOn: true, fetchError: \"\", objects: [] }, () => {\n this.fetchInitialData();\n });\n };\n\n getAdditionalState(props) {\n const params = new URLSearchParams(props.location.search);\n return Object.assign({}, super.getAdditionalState(props), {\n selectedSort: {\n value: this.sortingValues[2][0],\n label: this.sortingValues[2][1],\n },\n query: params.get(\"q\") || \"\",\n filters: FAVORITES_ADVERT_CLEANED_FILTERS,\n });\n }\n\n renderHeader() {\n return (\n <>\n \n \n Lista ulubionych ogłoszeń\n \n \n );\n }\n\n renderEmptyObjects() {\n return (\n \n Nie znaleziono ogłoszeń spełniających kryteria wyszukiwania.\n \n );\n }\n\n getFetchUrl() {\n return \"/api/announcements\";\n }\n\n getFetchData() {\n let queryDict = super.getFetchData();\n\n if (this.state.query.length) {\n queryDict[\"query\"] = this.state.query;\n }\n for (let [name, value] of Object.entries(this.state.filters)) {\n if ([\"publicationDateRange\", \"submissionDeadlineRange\"].includes(name)) {\n for (let [subname, subvalue] of Object.entries(value)) {\n if (subname === \"type\") {\n continue;\n }\n if (!!subvalue) {\n queryDict[`${name}[${subname}]`] = subvalue;\n }\n }\n } else if (name === \"cpvItem\") {\n if (Object.keys(value).length) {\n queryDict[name] = value.map((kod) => kod.kod);\n }\n } else if (\"programme\" === name) {\n if (value.length) {\n queryDict[name] = value.map((mr) => mr.value.toUpperCase());\n }\n } else if (\"fulfillmentPlaces\" === name) {\n if (value.length) {\n queryDict[name] = value.map((mr) => mr.value);\n }\n } else if ([\"category\", \"subcategory\"].includes(name)) {\n if (value !== null) {\n queryDict[name] = value.label;\n }\n } else if (\n (name === \"status\" && Object.keys(value).length) ||\n value !== FAVORITES_ADVERT_CLEANED_FILTERS[name]\n ) {\n queryDict[name] = value;\n } else if (name === \"mode\") {\n queryDict[name] = value;\n }\n }\n return queryDict;\n }\n\n renderFiltersComponent() {\n return (\n this.setState({ filtersAreOn: false })}\n updateDictionaries={(dictionaries) =>\n (this.dictionaries = dictionaries)\n }\n updateFilters={this.handleApplyFilters}\n />\n );\n }\n\n renderList() {\n const total = this.state.total;\n return (\n <>\n \n Znaleziono {total < this.paginateBy ? \"\" : \"około \"}\n {total} ogłoszeń\n \n \n \n {this.state.objects.map((o) => this.renderOgloszenie(o))}\n \n \n \n );\n }\n\n handleAddToFavorites = (id) => {\n fetchApi(`/api/favorite-announcements/${id}`, \"POST\", {}, {}, () => {\n this.handleReload();\n });\n };\n\n handleRemoveFromFavorites = (id) => {\n fetchApi(`/api/favorite-announcements/${id}`, \"DELETE\", {}, {}, () => {\n this.handleReload();\n });\n };\n\n renderOgloszenie(o) {\n const status = parseInt(o.ogloszenie.status?.id);\n const isLocked = isAdvertisementLocked(o.ogloszenie.status);\n return (\n \n \n \n {o.ogloszenie.numer || \"-\"}\n \n \n {o.ogloszenie.status?.nazwa}\n \n \n \n 0 &&\n o.dataOpublikowania > dateToString(new Date())\n ? \"odroczonej \"\n : \"\"\n }publikacji`}\n >\n {o.dataOpublikowania || \"-\"}\n \n \n {o.terminOfert || \"-\"}\n \n \n \n \n {o.czyDopuszczalnaOfertaCzesciowa ? \"TAK\" : \"NIE\"}\n {o.czyDopuszczalnaOfertaCzesciowa &&\n ` (Części: ${o.liczbaZamowien})`}\n \n \n\n \n \n Pokaż szczegóły\n {` ogłoszenia ${o.tytul}`}\n \n {o.badge_count > 0 && (\n \n )}\n \n\n {o.favorite === false && (\n this.handleAddToFavorites(o.ogloszenie.id)}\n primary\n icon=\"favorite\"\n >\n DODAJ DO ULUBIONYCH\n ogłoszenie {o.tytul}\n \n )}\n {o.favorite === true && (\n this.handleRemoveFromFavorites(o.ogloszenie.id)}\n remove\n icon=\"close\"\n >\n USUŃ Z ULUBIONYCH\n ogłoszenie {o.tytul}\n \n )}\n \n );\n }\n}\n\nexport { Favorites };\n","import React, { Component } from 'react';\n\nimport { ButtonStyled, DialogCustom } from '../../common';\nimport { LandingPage } from '../LandingPage';\nimport { FormOgloszenie } from '../ogloszenia/FormOgloszenie';\nimport { Ogloszenia } from '../ogloszenia/Ogloszenia';\nimport { Projekty } from '../projekty/Projekty';\nimport { NewsletterSettings } from '../newsletter/NewsletterSettings';\nimport { Favorites } from '../newsletter/Favorites';\n\n\nclass TrescPreview extends Component {\n\n // rendering\n\n render() {\n return (\n \n <>\n Zamknij podgląd\n

    Baza Konkurencyjności

    \n {this.renderPreview()}\n \n \n )\n }\n\n renderPreview() {\n let Component = null;\n let step = null;\n switch (this.props.screen) {\n case 'homePage':\n Component = LandingPage;\n break;\n case 'projekty_lista_ogloszeniodawca':\n Component = Projekty;\n break;\n case 'ogloszenia_lista_ogloszeniodawca':\n Component = Ogloszenia;\n break;\n case 'newsletter_ustawienia':\n Component = NewsletterSettings;\n break;\n case 'ulubione_lista':\n Component = Favorites;\n break;\n default:\n Component = FormOgloszenie;\n step = this.props.screen.split('_').pop();\n }\n if (!Component) { return null }\n return \n }\n}\n\n\nexport { TrescPreview };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport Select from 'react-select';\nimport { Radio } from '@rmwc/radio';\n\nimport { EKRANOWA, EKRANY_DICT, OGOLNA } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport {\n countWysiwygChars,\n extractYoutubeSrc,\n getAuthTokenCookieValue,\n refreshTimerAfterRequest\n} from '../../../helpers';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { validateWysiwygEditor } from '../../../validators';\nimport {\n Breadcrumps,\n ButtonStyled,\n Container,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom,\n WysiwygEditor,\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { BaseComponent } from '../common';\nimport { TrescPreview } from './TrescPreview';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: '--- Wybierz ---',\n}\nconst SAVE_BUTTON_DEFAULT_LABEL = 'Zapisz pomoc';\n\n\nclass FormPomoc extends BaseComponent {\n\n // base functions\n\n componentDidMount() {\n this.fetchInitialData();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this.xhrSaveFile !== null) {\n this.xhrSaveFile.abort();\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const serializedData = getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]});\n if (this.state.isNew) {\n this.setState({\n initializingOn: false,\n availableParents: serializedData.pomoce.parents_candidates.data || [],\n availableRelatives: serializedData.pomoce.parents_candidates.data || [],\n availableScreens: serializedData.pomoce.screens_available || [],\n });\n return\n }\n const pomoc = serializedData.pomoc;\n const typOgolna = pomoc.typ === OGOLNA;\n const rozdzialNadrzedny = !pomoc.rozdzialNadrzedny ? null : {value: pomoc.rozdzialNadrzedny.id, label: pomoc.rozdzialNadrzedny.naglowek};\n this.setState(\n {\n initializingOn: false,\n ...Object.assign({}, pomoc, {\n ekran: typOgolna ? EMPTY_VALUE : (\n pomoc.ekran ? {value: pomoc.ekran, label: EKRANY_DICT[pomoc.ekran].label} : EMPTY_VALUE),\n tresc: !Object.keys(pomoc.tresc).length ? '' : pomoc.tresc,\n rozdzialNadrzedny,\n powiazane: pomoc.powiazane.map(p => ({value: p.id, label: p.naglowek})),\n }),\n isRoot: pomoc.root || false,\n hasChildren: pomoc.has_children || false,\n originalTypOgolna: typOgolna,\n originalRozdzialNadrzedny: rozdzialNadrzedny === null ? null : rozdzialNadrzedny.value,\n typOgolna,\n availableParents: serializedData.slowniki.parents_candidates.data || [],\n availableRelatives: serializedData.slowniki.relatives_candidates.data || [],\n availableScreens: serializedData.slowniki.screens_available || [],\n },\n () => {\n // update url if slugs are not equal\n const urlParams = this.props.match.params;\n if (pomoc.slug !== urlParams.slug) {\n this.props.history.push(`/zarzadzanie-trescia/pomoc/${urlParams.id}-${pomoc.slug}/edytuj`);\n }\n }\n );\n }\n\n handleSaveTypOgolna(ev) {\n this.setState({\n typOgolna: ev.currentTarget.value === 'true',\n ekran: EMPTY_VALUE,\n rozdzialNadrzedny: EMPTY_VALUE,\n powiazane: [],\n });\n }\n\n handleChangeAttribute(name, value) {\n this.setState(prevState => ({\n [name]: value,\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleClearAttributeError(name) {\n this.setState(prevState => ({\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleUploadFile(file) {\n return new Promise((resolve, reject) => {\n const formData = new FormData();\n formData.append('file', file);\n\n this.xhrSaveFile = new XMLHttpRequest();\n this.xhrSaveFile.open('POST', '/api/files?context=help');\n\n const authTokenCookieValue = getAuthTokenCookieValue();\n if (authTokenCookieValue) {\n this.xhrSaveFile.setRequestHeader(\n 'X-Auth-Token', authTokenCookieValue);\n }\n\n this.xhrSaveFile.onload = () => {\n refreshTimerAfterRequest(\n authTokenCookieValue, this.xhrSaveFile.status);\n let success = true;\n let error;\n let jsonData = {};\n try {\n jsonData = JSON.parse(this.xhrSaveFile.responseText);\n } catch(error) {\n success = false;\n }\n\n if (success) {\n if (jsonData.status === 'OK') {\n resolve({data: {link: jsonData.data.file.uri}});\n return\n } else if (jsonData.errors) {\n error = translateErrorMessage(jsonData.errors.file);\n } else {\n error = translateErrorMessage(jsonData.message);\n }\n } else if (this.xhrSaveFile.status === 413) {\n error = 'Wybrany plik jest zbyt duży. Maksymalny rozmiar pliku to 25 MB.';\n } else {\n error = `Wystąpił nieoczekiwany błąd o kodzie ${this.xhrSaveFile.status}. Nie udało się dodać pliku.`;\n }\n this.setState({uploadImageError: error}, () => reject(error));\n this.xhrSaveFile = null;\n };\n\n this.xhrSaveFile.onerror = () => {\n this.xhrSaveFile = null;\n const error = 'Wystąpił nieoczekiwany błąd. Nie udało się dodać pliku.';\n this.setState({uploadImageError: error}, () => reject(error));\n };\n\n this.xhrSaveFile.send(formData);\n })\n }\n\n handleLoadEmbed(url) {\n const embeddedUrl = extractYoutubeSrc(url);\n if (!embeddedUrl) {\n this.setState({loadEmbedError: 'Podano niepoprawny url wideo.'});\n return\n }\n return embeddedUrl\n }\n\n handleSave() {\n this.setState(\n {savingOn: true, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n const { id, isNew } = this.state;\n for (let block of this.state.tresc.blocks) {\n\t\t\t\t\t\tif(block.type === 'unstyled' && block.entityRanges.length){\n\t\t\t\t\t\t\tfor (let entityRange of block.entityRanges){\n\t\t\t\t\t\t\t\tdelete this.state.tresc.entityMap[entityRange.key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tblock.entityRanges.length = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n // save pomoc on server\n this.xhrFetch = fetchApi(\n isNew\n ? API_URLS.helpAdmin.path\n : API_URLS.helpAdminDetails.getUrl(id),\n isNew ? 'POST' : 'PUT',\n {},\n getSerializedObject(\n {\n id: id,\n typ: this.state.typOgolna ? OGOLNA : EKRANOWA,\n rozdzialNadrzedny: this.state.rozdzialNadrzedny ? this.state.rozdzialNadrzedny.value : null,\n ekran: this.state.ekran.value,\n naglowek: this.state.naglowek,\n tresc: this.state.tresc,\n powiazane: this.state.powiazane.map(p => p.value),\n root: this.state.isRoot,\n },\n {toServer: true, nonRecursiveKeys: ['tresc', ]}\n ),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors, saveBtnText: SAVE_BUTTON_DEFAULT_LABEL});\n }\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetch = null;\n this.setState(\n prevState => ({\n isNew: false,\n savingOn: false,\n saveBtnText: 'Zapisano',\n id: getSerializedObject(data).pomoc.id,\n originalRozdzialNadrzedny: prevState.rozdzialNadrzedny === null ? null : prevState.rozdzialNadrzedny.value,\n }),\n () => {\n this.isNew = false;\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: SAVE_BUTTON_DEFAULT_LABEL})\n }, 5000)\n }\n );\n }\n\n handleFetchSaveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: `Nie udało się zapisać pomocy. ${data.message}`,\n });\n }\n\n handleFetchSaveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({savingOn: false, pageNotFound: true});\n } else {\n let message = '';\n if (status === 403) {\n message = `Nie masz uprawnień do ${this.state.isNew\n ? 'dodawania' : 'edycji'} pomocy.`;\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: message || `Podczas zapisu pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n }\n\n handlePreview() {\n if (this.state.ekran.value === 0) { return }\n const [isValid, errors] = this.validate();\n if (isValid) {\n this.setState({previewOn: true});\n } else {\n this.setState({errors});\n }\n }\n\n // helpers\n\n preState(props) {\n this.trescMaxLength = 5000;\n }\n\n getAdditionalState(props) {\n return {\n isNew: !props.editing,\n isRoot: false,\n hasChildren: false,\n previewOn: false,\n originalTypOgolna: null,\n originalRozdzialNadrzedny: 0,\n id: null,\n typOgolna: null,\n rozdzialNadrzedny: EMPTY_VALUE,\n ekran: EMPTY_VALUE,\n naglowek: '',\n tresc: '',\n powiazane: [],\n savingOn: false,\n errors: {\n ekran: '',\n naglowek: '',\n },\n uploadImageError: '',\n loadEmbedError: '',\n fetchSaveError: '',\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n availableParents: [],\n availableRelatives: [],\n availableScreens: [],\n };\n }\n\n postState(props) {\n this.xhrSaveFile = null;\n }\n\n setAdditionalHandlers() {\n this.handleSaveTypOgolna = this.handleSaveTypOgolna.bind(this);\n this.handleUploadFile = this.handleUploadFile.bind(this);\n this.handleLoadEmbed = this.handleLoadEmbed.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this);\n this.handleFetchSaveError = this.handleFetchSaveError.bind(this);\n this.handleFetchSaveIncorrectStatus = this.handleFetchSaveIncorrectStatus.bind(this);\n this.handlePreview = this.handlePreview.bind(this);\n }\n\n getFetchUrl() {\n if (this.state.isNew) {\n return API_URLS.helpAdminDictionaries.path\n }\n return API_URLS.helpAdminDetails.getUrl(this.props.match.params.id)\n }\n\n getFetchData() {\n if (this.state.isNew) {\n return {}\n }\n return {dictionary: 'auto_determining'}\n }\n\n getFetchError(message) {\n if (this.state.isNew) {\n return `Nie udało się pobrać danych do formularza pomocy. ${message}`\n }\n return `Nie udało się pobrać pomocy. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n if (this.state.isNew) {\n return `Podczas pobierania danych do formularza pomocy wystąpił nieoczekiwany błąd o kodzie ${status}`\n }\n return `Podczas pobierania pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('help');\n }\n\n validate() {\n let isValid = true;\n const {\n isRoot,\n naglowek,\n rozdzialNadrzedny,\n tresc,\n typOgolna,\n } = this.state;\n const requiredMsg = 'To pole jest wymagane.';\n let errors = {};\n\n // validateTyp\n if (![true, false].includes(typOgolna)) {\n errors['typOgolna'] = requiredMsg;\n isValid = false;\n }\n\n // validate rozdzialNadrzedny\n if (!isRoot && typOgolna === true && rozdzialNadrzedny.value === 0) {\n errors['rozdzialNadrzedny'] = requiredMsg;\n isValid = false;\n }\n\n // validate naglowek\n if (!naglowek.length) {\n errors['naglowek'] = requiredMsg;\n isValid = false;\n }\n\n // validate tresc\n if (!validateWysiwygEditor(tresc)) {\n errors['tresc'] = requiredMsg;\n isValid = false;\n } else if (countWysiwygChars(tresc) > this.trescMaxLength) {\n errors['tresc'] = `To pole może mieć maksymalnie ${this.trescMaxLength} znaków.`;\n isValid = false;\n }\n\n return [isValid, errors]\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Pomoc
  • \n
  • {this.state.isNew ? 'Dodaj' : 'Edytuj'} pomoc
  • \n
    \n )\n }\n\n renderContent() {\n const {\n ekran,\n isNew,\n loadEmbedError,\n naglowek,\n previewOn,\n savingOn,\n tresc,\n typOgolna,\n uploadImageError,\n } = this.state;\n const typeChosen = [true, false].includes(typOgolna);\n return (\n <>\n {this.state.isNew ? 'Dodaj' : 'Edytuj'} pomoc\n \n \n
    \n Typ pomocy\n {!isNew && Podczas edycji pomocy nie jest możliwa zmiana jej typu.}\n \n \n
    \n
    \n {typOgolna === true && this.renderTypOgolnaForm()}\n {typOgolna === false && this.renderTypNaEkranieForm()}\n {typeChosen && this.renderCommonFields()}\n {typOgolna === true && this.renderPowiazaneForm()}\n {typeChosen && this.renderButtons(typOgolna)}\n
    \n {uploadImageError.length > 0 && this.renderUploadImageErrorDialog()}\n {loadEmbedError.length > 0 && this.renderLoadEmbedErrorDialog()}\n {previewOn && (\n this.setState({previewOn: false})}\n />\n )}\n \n )\n }\n\n renderTypOgolnaForm() {\n const {\n errors,\n hasChildren,\n isRoot,\n originalRozdzialNadrzedny,\n originalTypOgolna,\n rozdzialNadrzedny,\n savingOn,\n typOgolna\n } = this.state;\n const isRozdzialNadrzednyInvalid = (errors.rozdzialNadrzedny || '').length > 0;\n return (\n \n {isRoot && (\n To pierwsza pomoc dodana do serwisu, więc nie da się dla niej wybrać rozdziału nadrzędnego.\n )}\n {!isRoot && typOgolna && originalTypOgolna && rozdzialNadrzedny.value !== originalRozdzialNadrzedny && hasChildren && (\n Uwaga! Dla edytowanej pomocy istnieją pomoce podrzędne, zmiana rozdziału nadrzędnego spowoduje przepięcie pod wskazany rozdział całej gałęzi.\n )}\n ({value: p.id, label: p.naglowek}))]}\n placeholder='Wybierz...'\n value={rozdzialNadrzedny}\n onChange={(selectedOption) => this.handleChangeAttribute('rozdzialNadrzedny', selectedOption)}\n styles={customSelectStyles}\n />\n {isRozdzialNadrzednyInvalid && {errors.rozdzialNadrzedny}}\n \n )\n }\n\n renderTypNaEkranieForm() {\n const {\n availableScreens,\n ekran,\n errors,\n savingOn\n } = this.state;\n const isEkranInvalid = (errors.ekran || '').length > 0;\n return (\n \n {!availableScreens.length && Wszystkie ekrany są aktualnie wykorzystane w innych pomocach. Możesz odpiąć ekran od istniejącej pomocy, żeby ustawić go w nowej pomocy.}\n {\n return {value: s, label: EKRANY_DICT[s].label}\n }))}\n screenReaderStatus={() => { return 'Wybierz opcję z listy rozwijanej' }}\n value={ekran}\n onChange={(selectedOption) => this.handleChangeAttribute('ekran', selectedOption)}\n styles={customSelectStyles}\n />\n {isEkranInvalid && {errors.ekran}}\n \n )\n }\n\n renderCommonFields() {\n const {\n errors,\n savingOn,\n naglowek,\n tresc,\n } = this.state;\n const isNaglowekInvalid = (errors.naglowek || '').length > 0;\n const isTrescInvalid = (errors.tresc || '').length > 0;\n return (\n <>\n \n this.handleChangeAttribute('naglowek', '')}\n onChange={(ev) => this.handleChangeAttribute('naglowek', ev.target.value)}\n onFocus={(ev) => this.handleClearAttributeError('naglowek')} />\n {isNaglowekInvalid && {errors.naglowek}}\n \n \n this.handleChangeAttribute('tresc', contentState)}\n />\n {isTrescInvalid && {errors.tresc}}\n \n \n )\n }\n\n renderPowiazaneForm() {\n const optionsForPowiazane = this.state.availableRelatives.map(r => ({value: r.id, label: r.naglowek}));\n const isRoot = this.state.isRoot;\n return (\n \n \n {(isRoot && To pierwsza pomoc dodana do serwisu, więc nie da się dla niej wybrać powiązanych.) || (!optionsForPowiazane.length && Nie ma jeszcze innych pomocy do ustawienia jako powiązane.)}\n { return 'Wybierz opcję z listy rozwijanej' }}\n onChange={selectedOptions => this.handleChangeAttribute(\n 'powiazane', selectedOptions === null ? [] : selectedOptions\n )}\n styles={customSelectStyles}\n />\n \n \n )\n }\n\n renderUploadImageErrorDialog() {\n return this.renderErrorDialog('uploadImageError')\n }\n\n renderLoadEmbedErrorDialog() {\n return this.renderErrorDialog('loadEmbedError')\n }\n\n renderErrorDialog(errorName) {\n // TODO: after close wysiwyg toolbar component hides and it's impossible to show error in the component.\n // https://github.com/jpuri/react-draft-wysiwyg/blob/master/src/controls/Image/Component/index.js#L138\n return (\n this.setState({[errorName]: ''})}\n >\n \n this.setState({ [errorName]: '' })} primary>OK\n \n \n )\n }\n\n renderButtons(typOgolna) {\n const {\n ekran,\n fetchSaveError,\n saveBtnText,\n savingOn\n } = this.state;\n return (\n <>\n \n {typOgolna === false && Podgląd na ekranie}\n {saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n \n )\n }\n}\n\nFormPomoc.contextType = UserContext;\n\nexport { FormPomoc };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { countWysiwygChars } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { validateWysiwygEditor } from '../../../validators';\nimport {\n Breadcrumps,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text,\n WysiwygEditor,\n} from '../../common';\nimport { BaseComponent } from '../common';\n\n\nconst SAVE_BUTTON_DEFAULT_LABEL = 'Zapisz regulamin';\n\n\nclass FormRegulamin extends BaseComponent {\n // basic functions\n\n componentDidMount() {\n if (!this.props.editing) {\n this.setState({initializingOn: false});\n } else {\n // get regulamin from server\n super.componentDidMount()\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const regulamin = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc'],\n dateAttributes: ['dataOpublikowania', ],\n dateTimeAttributes: ['dataOpublikowania', ],\n },\n ).regulaminy;\n if (!regulamin) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else {\n this.setState({\n initializingOn: false,\n tresc: regulamin.tresc,\n dataOpublikowania: this.version === 'aktualna' ? '' : regulamin.dataOpublikowania,\n });\n }\n }\n\n handleChangeAttribute(name, value) {\n this.setState(prevState => ({\n [name]: value,\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleSave() {\n this.setState(\n {savingOn: true, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n // save regulamin on server\n this.xhrFetch = fetchApi(\n API_URLS.regulationsAdmin.path,\n this.firstSaving ? 'POST' : 'PUT',\n {},\n getSerializedObject(\n {tresc: this.state.tresc},\n {toServer: true, nonRecursiveKeys: ['tresc', ]}\n ),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors, saveBtnText: SAVE_BUTTON_DEFAULT_LABEL});\n }\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetchSave = null;\n this.setState(\n {\n savingOn: false,\n saveBtnText: 'Zapisano',\n dataOpublikowania: getSerializedObject(\n data,\n {\n dateAttributes: ['dataOpublikowania', ],\n dateTimeAttributes: ['dataOpublikowania', ],\n },\n ).regulaminy.dataOpublikowania},\n () => {\n this.firstSaving = false;\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: SAVE_BUTTON_DEFAULT_LABEL})\n }, 5000)\n }\n );\n }\n\n handleFetchSaveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: `Nie udało się zapisać regulaminu. ${data.message}`,\n });\n }\n\n handleFetchSaveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({savingOn: false, pageNotFound: true});\n } else {\n let message = '';\n if (status === 403) {\n message = `Nie masz uprawnień do ${this.firstSaving\n ? 'dodawania' : 'edycji'} regulaminu.`;\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: message || `Podczas zapisu regulaminu wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n }\n\n // helpers\n\n preState(props) {\n this.trescMaxLength = 50000;\n this.firstSaving = !props.editing;\n\n this.version = null;\n if (props.editing) {\n const params = new URLSearchParams(props.location.search);\n this.version = params.get('wersja') || this.version;\n }\n }\n\n getAdditionalState(props) {\n return {\n savingOn: false,\n tresc: '',\n dataOpublikowania: '',\n fetchSaveError: '',\n errors: {\n tresc: '',\n },\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n }\n }\n\n setAdditionalHandlers() {\n this.handleSave = this.handleSave.bind(this);\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this);\n this.handleFetchSaveError = this.handleFetchSaveError.bind(this);\n this.handleFetchSaveIncorrectStatus = this.handleFetchSaveIncorrectStatus.bind(this);\n }\n\n getFetchUrl() {\n return API_URLS.regulationsAdmin.path\n }\n\n getFetchData() {\n let query = {};\n if (!(this.version === 'aktualna')) {\n query['version'] = 'for_publication';\n }\n return query\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać wersji regulaminu do edycji. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania wersji regulaminu do edycji wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n validate() {\n let isValid = true;\n let errors = {};\n\n const tresc = this.state.tresc;\n // validate tresc\n if (!validateWysiwygEditor(tresc)) {\n errors['tresc'] = 'To pole jest wymagane.';\n isValid = false;\n } else if (countWysiwygChars(tresc) > this.trescMaxLength) {\n errors['tresc'] = `To pole może mieć maksymalnie ${this.trescMaxLength} znaków.`;\n isValid = false;\n }\n\n return [isValid, errors]\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Regulamin
  • \n
  • {this.props.editing ? 'Edytuj' : 'Dodaj'} regulamin
  • \n
    \n )\n }\n\n renderContent() {\n const {\n dataOpublikowania,\n errors,\n fetchSaveError,\n saveBtnText,\n savingOn,\n tresc,\n } = this.state;\n const isTrescInvalid = (errors.tresc || '').length > 0;\n return (\n <>\n {this.props.editing ? 'Edytuj' : 'Dodaj'} regulamin\n \n \n \n this.handleChangeAttribute('tresc', contentState)}\n />\n {isTrescInvalid && {errors.tresc}}\n \n \n \n {dataOpublikowania.length > 0 && (new Date(dataOpublikowania).getTime() > new Date().getTime()) && Regulamin zostanie opublikowany {dataOpublikowania}.}\n \n \n {saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n \n \n )\n }\n}\n\nFormRegulamin.contextType = UserContext;\n\nexport { FormRegulamin };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { countWysiwygChars } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n Breadcrumps,\n ButtonStyled,\n Container,\n GridCustom,\n Text,\n WysiwygEditor,\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport { TrescPreview } from './TrescPreview';\n\n\nconst SAVE_BUTTON_DEFAULT_LABEL = 'Zapisz treść';\n\n\nclass FormTrescOgolna extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const trescOgolna = getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).trescOgolna;\n this.setState({\n initializingOn: false,\n id: parseInt(this.props.match.params.id),\n naglowek: trescOgolna.naglowek,\n tresc: Object.keys(trescOgolna.tresc).length > 0 ? trescOgolna.tresc : '',\n });\n }\n\n handleChangeAttribute(name, value) {\n this.setState(prevState => ({\n [name]: value,\n errors: Object.assign({}, prevState.errors, {[name]: ''}),\n }));\n }\n\n handleSave() {\n this.setState(\n {savingOn: true, fetchSaveError: '', saveBtnText: 'Trwa zapisywanie...'},\n () => {\n const [isValid, errors] = this.validate();\n if (isValid) {\n const id_ = this.props.match.params.id;\n // save trescOgolna on server\n this.xhrFetch = fetchApi(\n API_URLS.generalContentAdminDetails.getUrl(id_),\n 'PUT',\n {},\n getSerializedObject(\n {id: id_, tresc: this.state.tresc},\n {toServer: true, nonRecursiveKeys: ['tresc', ]},\n ),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n );\n } else {\n this.setState({savingOn: false, errors, saveBtnText: SAVE_BUTTON_DEFAULT_LABEL});\n }\n }\n );\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetchSave = null;\n this.setState(\n {\n savingOn: false,\n saveBtnText: 'Zapisano',\n },\n () => {\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: SAVE_BUTTON_DEFAULT_LABEL})\n }, 5000)\n }\n );\n }\n\n handleFetchSaveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: `Nie udało się zapisać treści ogólnej. ${data.message}`,\n });\n }\n\n handleFetchSaveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({savingOn: false, pageNotFound: true});\n } else {\n let message = '';\n if (status === 403) {\n message = 'Nie masz uprawnień do edycji treści ogólnych.';\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n savingOn: false,\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: message || `Podczas zapisu treści ogólnej wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n }\n\n // helpers\n\n preState(props) {\n this.trescMaxLength = 2000;\n }\n\n getAdditionalState(props) {\n return {\n previewOn: false,\n savingOn: false,\n id: '',\n naglowek: '',\n tresc: '',\n errors: {\n tresc: '',\n },\n saveBtnText: SAVE_BUTTON_DEFAULT_LABEL,\n fetchSaveError: '',\n }\n }\n\n setAdditionalHandlers() {\n this.handleSave = this.handleSave.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.handleFetchSaveSuccess = this.handleFetchSaveSuccess.bind(this);\n this.handleFetchSaveError = this.handleFetchSaveError.bind(this);\n this.handleFetchSaveIncorrectStatus = this.handleFetchSaveIncorrectStatus.bind(this);\n }\n\n getFetchUrl() {\n return API_URLS.generalContentAdminDetails.getUrl(\n this.props.match.params.id)\n }\n\n validate() {\n let isValid = true;\n let errors = {};\n\n // validate tresc\n if (countWysiwygChars(this.state.tresc) > this.trescMaxLength) {\n errors['tresc'] = `To pole może mieć maksymalnie ${this.trescMaxLength} znaków.`;\n isValid = false;\n }\n\n return [isValid, errors]\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Treści ogólne
  • \n
  • Edytuj {this.state.naglowek}
  • \n
    \n Edycja: {this.state.naglowek}\n \n )\n }\n\n renderContent() {\n const {\n errors,\n fetchSaveError,\n id,\n naglowek,\n previewOn,\n saveBtnText,\n savingOn,\n tresc,\n } = this.state;\n const isTrescInvalid = (errors.tresc || '').length > 0;\n return (\n <>\n \n this.handleChangeAttribute('tresc', contentState)}\n />\n {isTrescInvalid && {errors.tresc}}\n \n this.setState({previewOn: true})}>Podgląd na ekranie\n {saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n \n {previewOn && (\n this.setState({previewOn: false})}\n />\n )}\n \n )\n }\n}\n\nFormTrescOgolna.contextType = UserContext;\n\nexport { FormTrescOgolna };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\n\nimport { UserContext } from '../../../context/user-context';\nimport { serializeAuditData } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n AuditData,\n Breadcrumps,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { colors } from '../../vars/vars';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\n\n\nclass Komunikat extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const komunikat = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc'],\n dateAttributes: ['dataOpublikowania', 'dataWaznosci'],\n dateTimeAttributes: ['dataOpublikowania', 'dataWaznosci'],\n }\n ).komunikat;\n if (!komunikat) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else {\n this.setState(\n {\n initializingOn: false,\n komunikat,\n auditData: serializeAuditData(komunikat),\n },\n () => this.setUrlWithCorrectSlug(komunikat)\n );\n }\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {komunikat: {}, auditData: {}}\n }\n\n getFetchUrl() {\n return API_URLS.statementsAdminDetails.getUrl(\n this.props.match.params.id)\n }\n\n getFetchData() {\n return {context: 'admin_panel'}\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać komunikatu. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania komunikatu wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n setUrlWithCorrectSlug(komunikat) {\n // update url if slugs are not equal\n const urlParams = this.props.match.params;\n if (komunikat.slug !== urlParams.slug) {\n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${urlParams.id}-${komunikat.slug}`);\n }\n }\n\n callback403 = () => {\n this.context.removePermission('statements');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Komunikaty\n
  • \n
  • Szczegóły komunikatu\n
  • \n
    \n Szczegóły\n komunikatu: {this.state.komunikat.naglowek}\n \n )\n }\n\n renderContent() {\n const komunikat = this.state.komunikat;\n return (\n <>\n \n \n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${this.props.match.params.id}-${komunikat.slug}/edytuj`)}>Edytuj\n komunikat\n \n \n \n \n {komunikat.naglowek}\n \n \n \n \n \n {komunikat.slug}\n \n \n \n \n \n {komunikat.czyAktywny ? (\n \n ) : (\n \n )}\n \n \n {komunikat.czyZoltyPasek ? (\n \n ) : (\n \n )}\n \n \n \n \n {komunikat.dataWaznosci.length === 0 ? (\n \n ) : (\n \n )}\n \n \n {komunikat.dataWaznosci || '-'}\n \n \n \n {komunikat.dataOpublikowania}\n \n \n \n \n \n \n )\n }\n}\n\nKomunikat.contextType = UserContext;\n\nexport { Komunikat };\n","import React from 'react';\nimport { Icon } from '@rmwc/icon';\nimport {\n DataTable,\n DataTableBody,\n DataTableCell,\n DataTableContent,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { UserContext } from '../../../context/user-context';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n Breadcrumps,\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { colors } from '../../vars/vars';\nimport { BaseComponent } from '../common';\n\n\nclass Komunikaty extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n this.setState({\n initializingOn: false,\n komunikaty: getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania', ],\n dateTimeAttributes: ['dataOpublikowania', ],\n }\n ).komunikaty,\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {komunikaty: []}\n }\n\n getFetchUrl() {\n return API_URLS.statementsAdmin.path\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać komunikatów. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania komunikatów wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.context.removePermission('statements');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Komunikaty
  • \n
    \n \n Komunikaty\n this.props.history.push('/zarzadzanie-trescia/komunikaty/nowy')}>Dodaj komunikat\n \n \n )\n }\n\n renderContent() {\n if (!this.state.komunikaty.length) {\n return Nie dodano jeszcze żadnego komunikatu.\n }\n const sort = (k1, k2) => {\n return k1.id > k2.id ? -1 : 1\n };\n return (\n \n \n \n {this.state.komunikaty.sort(sort).map(k => (\n \n \n {k.naglowek}\n \n \n {k.czyAktywny ? (\n \n ) : (\n \n )}\n \n \n {k.czyZoltyPasek ? (\n \n ) : (\n \n )}\n \n \n {k.dataOpublikowania || '-'}\n \n \n \n \n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${k.id}-${k.slug}/edytuj`)}>Edytuj\n this.props.history.push(`/zarzadzanie-trescia/komunikaty/${k.id}-${k.slug}`)}>Szczegóły\n \n \n ))}\n \n \n \n )\n }\n}\n\nKomunikaty.contextType = UserContext;\n\nexport { Komunikaty };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { isNotEmpty } from '../../../helpers';\nimport { Breadcrumps, Container, FieldWithLabel, GridCustom, Text } from '../../common';\nimport { Komunikat } from './Komunikat';\nimport { DraftToComponents } from './DraftToComponents';\n\n\nclass KomunikatFront extends Komunikat {\n\n // helpers\n\n getFetchUrl() {\n return `/api/statements/${this.props.match.params.id}`\n }\n\n getFetchData() {\n return {}\n }\n\n setUrlWithCorrectSlug(komunikat) {\n // update url if slugs are not equal\n const urlParams = this.props.match.params;\n if (komunikat.slug !== urlParams.slug) {\n this.props.history.push(`/komunikaty/${urlParams.id}-${komunikat.slug}`);\n }\n }\n\n callback403 = () => {}\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Komunikaty
  • \n
  • Szczegóły komunikatu
  • \n
    \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - komunikat\";\n const komunikat = this.state.komunikat;\n return (\n <>\n Komunikat \"{this.state.komunikat.naglowek}\"\n \n \n {komunikat.dataOpublikowania}\n \n {isNotEmpty(komunikat.dataWaznosci) && (\n \n {komunikat.dataWaznosci}\n \n )}\n \n \n \n \n \n \n \n )\n }\n}\n\n\nexport { KomunikatFront };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport {\n DataTableCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { dateToString } from '../../../helpers';\nimport { Breadcrumps, ButtonStyled, TableCustom, Text } from '../../common';\nimport { Komunikaty } from './Komunikaty';\n\n\nclass KomunikatyFront extends Komunikaty {\n\n // helpers\n\n getFetchUrl() {\n return '/api/statements'\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Komunikaty
  • \n
    \n Lista komunikatów\n \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - komunikaty\";\n if (!this.state.komunikaty.length) {\n return Brak komunikatów.\n }\n const sort = (k1, k2) => {\n return k1.dataOpublikowania > k2.dataOpublikowania ? -1 : 1\n };\n return (\n Szczegóły]}>\n {this.state.komunikaty.filter(\n k => k.czyAktywny === true && (!k.dataWaznosci.length || k.dataWaznosci >= dateToString(new Date()))\n ).sort(sort).map(k => (\n \n \n {k.dataOpublikowania}\n \n \n {k.naglowek}\n \n \n \n Szczegóły komunikatu\n \n \n \n ))}\n \n \n )\n }\n}\n\n\nexport { KomunikatyFront };\n","export default __webpack_public_path__ + \"static/media/Roboto-Bold.4f39c579.ttf\";","export default __webpack_public_path__ + \"static/media/Roboto-Italic.2a1b89d7.ttf\";","export default __webpack_public_path__ + \"static/media/Roboto-Regular-with-special.9bb8205f.ttf\";","import { Font, StyleSheet } from '@react-pdf/renderer';\n\nimport robotoBold from '../../static/fonts/Roboto-Bold.ttf';\nimport robotoItalic from '../../static/fonts/Roboto-Italic.ttf';\nimport robotoRegular from '../../static/fonts/Roboto-Regular-with-special.ttf';\n\nFont.register({ family: 'Roboto', fonts: [\n { src: robotoRegular}, // font-style: normal, font-weight: normal\n { src: robotoItalic, fontStyle: 'italic' },\n { src: robotoBold, fontWeight: 700 },\n]});\n\nFont.registerHyphenationCallback(word => {\n // Breaks the lines with long strings of the same character, without white spaces.\n const wordPartSize = 40;\n let parts = [];\n\n if (word.length && word.length < wordPartSize) {\n parts = [word];\n } else {\n for (let i = 0; i < word.length; i += wordPartSize) {\n parts.push(word.slice(i, i + wordPartSize));\n }\n }\n\n return parts;\n});\n\n\nconst pdfStyles = StyleSheet.create({\n mainPdfContainerStyle: {\n padding: 40,\n fontSize: 11,\n lineHeight: 1.6,\n fontFamily: 'Roboto',\n },\n flexContainerStyle: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap'\n },\n gridSection: {\n width: 300\n },\n borderedSectionStyle: {\n paddingVertical: 0,\n paddingHorizontal: 10,\n marginVertical: 10,\n marginLeft: 10,\n borderLeftWidth: 1,\n borderLeftColor: '#666A6D'\n },\n borderedDashedSectionStyle: {\n padding: 10,\n marginBottom: 20,\n borderWidth: 1,\n borderStyle: 'dashed',\n borderColor: '#666A6D'\n },\n borderedSeparateSectionStyle: {\n paddingBottom: 5,\n marginBottom: 50,\n borderBottomWidth: 1,\n borderBottomColor: '#666A6D'\n },\n pzTitleSection: {\n padding: 5,\n marginBottom: 10,\n borderWidth: 1,\n borderLeftWidth: 5,\n borderColor: '#666A6D'\n },\n textHeaderStyle: {\n marginTop: 20,\n marginBottom: 5,\n fontSize: 16,\n fontWeight: 700\n },\n textWithLabelStyle: {\n minWidth: '45%',\n marginBottom: 10,\n },\n labelStyle: {\n marginTop: 5,\n marginBottom: 3,\n fontSize: 12,\n fontWeight: 700,\n color: '#666A6D'\n },\n labelHeaderStyle: {\n fontSize: 16,\n marginTop: 30,\n },\n dateTextStyle: {\n fontWeight: 700\n },\n textInfoStyle: {\n marginBottom: 5,\n fontSize: 10,\n fontStyle: 'italic',\n color: '#666A6D'\n },\n errorStyle: {\n color: '#ff0000'\n },\n titleStyle: {\n fontSize: 18,\n },\n sectionTitleStyle: {\n padding: 3,\n paddingLeft: 15,\n marginBottom: 10,\n fontSize: 16,\n fontWeight: 700,\n borderColor: '#666A6D',\n borderLeftWidth: 5,\n },\n});\n\n\nexport { pdfStyles };\n","import React from 'react';\nimport { Document, Page, View } from '@react-pdf/renderer';\n\nimport { PdfHeader } from '../../common';\nimport { pdfStyles } from '../../vars/pdfStyles';\nimport { DraftToPdf } from './DraftToPdf';\n\n\nconst PdfWithDraftContent = (props) => {\n return (\n \n \n \n {props.renderHeader && props.renderHeader()}\n \n \n \n {props.renderFooter && props.renderFooter()}\n \n \n )\n}\n\n\nexport { PdfWithDraftContent };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Text as PdfText, StyleSheet } from '@react-pdf/renderer';\nimport { Icon } from '@rmwc/icon';\n\nimport { EKRANY_DICT, OGOLNA } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { generatePdfDocument, serializeAuditData } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n AuditData,\n Breadcrumps,\n ButtonCreatePdf,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\nimport { PdfWithDraftContent } from './PdfWithDraftContent';\n\n\nclass Pomoc extends BaseComponent {\n\n // basic functions\n\n componentDidMount() {\n super.componentDidMount();\n\n window.onpopstate = () => {\n this.handleReload();\n }\n }\n\n componentWillUnmount() {\n window.onpopstate = () => {};\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const pomoc = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania', ],\n dateTimeAttributes: ['dataOpublikowania', ],\n }\n ).pomoc;\n this.setState(\n {\n initializingOn: false,\n pomoc: Object.assign(pomoc, {typOgolna: pomoc.typ === OGOLNA}),\n auditData: serializeAuditData(pomoc),\n },\n () => this.setUrlWithCorrectSlug(pomoc)\n );\n }\n\n handleReload() {\n this.setState(\n {initializingOn: true},\n () => {this.fetchInitialData()}\n );\n }\n\n handleChangePomoc(newId, newSlug) {\n this.props.history.push(`/zarzadzanie-trescia/pomoc/${newId}-${newSlug}`);\n this.handleReload();\n }\n\n handleCreatePdf = () => {\n const pomoc = this.state.pomoc;\n this.setState(\n {pdfCreatingOn: true},\n () => {\n let pdfHeaderText;\n let ekranLabel = '---';\n if (pomoc.typOgolna) {\n pdfHeaderText = `Rozdział nadrzędny: ${!pomoc.rozdzialNadrzedny ? '---' : pomoc.rozdzialNadrzedny.naglowek}`;\n } else {\n if (pomoc.ekran) {\n ekranLabel = EKRANY_DICT[pomoc.ekran].label || ekranLabel;\n }\n pdfHeaderText = `Ekran: ${ekranLabel}`;\n }\n generatePdfDocument(\n (\n <>\n \n {pdfHeaderText}\n \n Tytuł: {pomoc.naglowek}\n \n )}\n />,\n 'pomoc.pdf',\n this.callbackPfdCreated\n );\n }\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n pomoc: {},\n pdfCreatingOn: false,\n auditData: {},\n }\n }\n\n getFetchUrl() {\n return API_URLS.helpAdminDetails.getUrl(this.props.match.params.id)\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać pomocy. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n setUrlWithCorrectSlug(pomoc) {\n // update url if slugs are not equal\n const urlParams = this.props.match.params;\n if (pomoc.slug !== urlParams.slug) {\n this.props.history.push(`/zarzadzanie-trescia/pomoc/${urlParams.id}-${pomoc.slug}`);\n }\n }\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n callback403 = () => {\n this.context.removePermission('help');\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Pomoc
  • \n
  • Szczegóły
  • \n
    \n )\n }\n\n renderContent() {\n const pomoc = this.state.pomoc;\n const {\n id,\n naglowek,\n rozdzialNadrzedny,\n slug,\n typOgolna\n } = pomoc;\n\n let ekranLabel = '---';\n if (!pomoc.typOgolna && pomoc.ekran) {\n ekranLabel = EKRANY_DICT[pomoc.ekran].label || ekranLabel;\n }\n\n return (\n <>\n \n \n \n {naglowek}\n \n \n this.props.history.push(`/zarzadzanie-trescia/pomoc/${id}-${slug}/edytuj`)}>Edytuj pomoc\n \n \n
    \n \n {typOgolna ? 'ogólna' : 'ekranowa'}\n \n \n {naglowek}\n \n \n \n \n
    \n \n
    \n
    \n \n \n )\n }\n}\n\nconst styles = StyleSheet.create({\n pdfHeaderStyle: {\n lineHeight: 1.6,\n marginBottom: 5,\n fontSize: 16,\n fontWeight: 'bold'\n },\n pdfHeaderSecondaryStyle: {\n fontSize: 12,\n }\n})\n\nPomoc.contextType = UserContext;\n\nexport { Pomoc };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\n\nimport { EKRANY_DICT } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { ButtonStyled, DialogCustom, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\n\n\nclass PomocUsun extends BaseComponent {\n\n // basic functions\n\n componentDidMount() {\n if (this.props.typOgolna) {\n this.fetchInitialData();\n } else {\n this.setState({initializingOn: false});\n }\n }\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n this.setState({\n initializingOn: false,\n ...getSerializedObject(data).pomoc\n });\n }\n\n handleRemovePomoc() {\n this.setState({removingOn: true});\n this.xhrFetch = fetchApi(\n API_URLS.helpAdminDetails.getUrl(this.props.pomoc.id),\n 'DELETE',\n {},\n {},\n this.handleFetchRemoveSuccess,\n this.handleFetchRemoveError,\n this.handleFetchRemoveIncorrectStatus,\n );\n }\n\n handleFetchRemoveSuccess(data) {\n this.xhrFetchSave = null;\n this.props.removePomoc(this.props.pomoc.id);\n }\n\n handleFetchRemoveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n removingOn: false,\n fetchRemoveError: `Nie udało się usunąć pomocy. ${data.message}`,\n });\n }\n\n handleFetchRemoveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n let message = '';\n if (status === 403) {\n message = 'Nie masz uprawnień do usuwania pomocy.';\n // update permission value in context\n this.context.removePermission('help');\n }\n this.setState({\n removingOn: false,\n fetchRemoveError: message || `Podczas usuwania pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n removingOn: false,\n fetchRemoveError: '',\n root: false,\n dzieci: [],\n powiazaneDlaObecnego: [],\n }\n }\n\n setAdditionalHandlers() {\n this.handleRemovePomoc = this.handleRemovePomoc.bind(this);\n this.handleFetchRemoveSuccess = this.handleFetchRemoveSuccess.bind(this);\n this.handleFetchRemoveError = this.handleFetchRemoveError.bind(this);\n this.handleFetchRemoveIncorrectStatus = this.handleFetchRemoveIncorrectStatus.bind(this);\n }\n\n getFetchUrl() {\n return `/api/help/${this.props.pomoc.id}/related`\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych pomocy. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania danych pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n render() {\n let content = null,\n children = null;\n if (this.state.initializingOn) {\n content = Trwa inicjalizacja danych...;\n } else {\n const pomoc = this.props.pomoc;\n if (this.props.typOgolna) {\n if (this.state.root) {\n children = Nie można usunąć pomocy \"{pomoc.naglowek}\", ponieważ jest to pierwsza pomoc w systemie.;\n content = this.renderRemovingImpossible(children);\n } else if (this.state.dzieci.length || this.state.powiazaneDlaObecnego.length) {\n children = this.renderRelatives();\n content = this.renderRemovingImpossible(children);\n } else {\n content = this.renderConfirmation();\n }\n } else {\n if (!pomoc.ekran) {\n content = this.renderConfirmation();\n } else {\n children = Pomocy \"{pomoc.naglowek}\" nie można usunąć, ponieważ jest przypisana do ekranu \"{!pomoc.ekran ? '---' : EKRANY_DICT[pomoc.ekran].label}\". Odepnij pomoc od ekranu, a następnie spróbuj ponownie.;\n content = this.renderRemovingImpossible(children);\n }\n }\n }\n\n return (\n \n {content}\n \n )\n }\n\n renderRemovingImpossible(children) {\n return (\n <>\n

    {children}

    \n \n OK\n \n \n )\n }\n\n renderRelatives() {\n return (\n <>\n Nie można usunąć pomocy \"{this.props.pomoc.naglowek}\", ponieważ jest ona powiązana z innymi obiektami:\n {this.state.dzieci.length > 0 && this.renderList('Pomoce, dla których jest rodziałem nadrzędnym:', this.state.dzieci)}\n {this.state.powiazaneDlaObecnego.length > 0 && this.renderList('Pomoce, z którymi jest powiązana:', this.state.powiazaneDlaObecnego)}\n \n )\n }\n\n renderList(header, objects) {\n return (\n <>\n {header}\n
      \n {objects.map(o => (\n
    • {o.naglowek}
    • \n ))}\n
    \n \n )\n }\n\n renderConfirmation() {\n const {\n fetchRemoveError,\n removingOn,\n } = this.state;\n return (\n <>\n

    Czy na pewno chcesz usunąć pomoc \"{this.props.pomoc.naglowek}\"?

    \n \n Nie, wróć do listy\n Usuń pomoc\n \n {fetchRemoveError.length > 0 && {fetchRemoveError}}\n \n )\n }\n}\n\nPomocUsun.contextType = UserContext;\n\nexport { PomocUsun };\n","import React from 'react';\nimport { TabBar, Tab } from '@rmwc/tabs';\nimport {\n DataTable,\n DataTableBody,\n DataTableCell,\n DataTableContent,\n DataTableHead,\n DataTableHeadCell,\n DataTableRow,\n} from '@rmwc/data-table';\nimport '@material/tab-bar/dist/mdc.tab-bar.css';\nimport '@material/tab-scroller/dist/mdc.tab-scroller.css';\nimport '@material/tab/dist/mdc.tab.css';\nimport '@material/tab-indicator/dist/mdc.tab-indicator.css';\nimport '@rmwc/data-table/data-table.css';\n\nimport { EKRANY_DICT } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { Breadcrumps, ButtonStyled, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { PomocUsun } from './PomocUsun';\nimport { TrescPreview } from './TrescPreview';\n\n\nclass Pomoce extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n this.setState({\n initializingOn: false,\n fetchError: '',\n pomoce: getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).pomoce,\n });\n }\n\n handleChangeTypPomocy(typOgolna) {\n this.setState(\n {\n initializingOn: true,\n typOgolna,\n pomoce: [],\n },\n () => {\n this.props.history.push(`/zarzadzanie-trescia/pomoc${typOgolna === false ? '?typ=ekranowa' : ''}`);\n this.fetchInitialData()\n }\n )\n }\n\n handleRemovePomoc(id_) {\n this.setState(prevState => {\n return {\n pomocForRemoving: null,\n pomoce: prevState.pomoce.filter(p => p.id !== id_),\n }\n })\n }\n\n // helpers\n\n getAdditionalState(props) {\n const params = new URLSearchParams(props.location.search);\n return {\n previewOn: false,\n pomoce: [],\n typOgolna: params.get('typ') !== 'ekranowa',\n pomocForPreview: null,\n pomocForRemoving: null,\n }\n }\n\n setAdditionalHandlers() {\n this.handleRemovePomoc = this.handleRemovePomoc.bind(this);\n }\n\n getFetchUrl() {\n return API_URLS.helpAdmin.path\n }\n\n getFetchData() {\n let query = {};\n if (!this.state.typOgolna) {\n query['type'] = 'screen_assigned';\n }\n return query\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać pomocy. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.context.removePermission('help');\n }\n\n // rendering\n renderHeader() {\n const typOgolna = this.state.typOgolna;\n return (\n <>\n \n
  • Pomoc
  • \n
    \n \n Pomoc\n this.props.history.push(`/zarzadzanie-trescia/pomoc/nowa`)}>Dodaj pomoc\n \n \n this.handleChangeTypPomocy(true)}>Ogólna\n this.handleChangeTypPomocy(false)}>Na ekranie aplikacji\n \n \n )\n }\n\n renderContent() {\n return (\n <>\n {this.renderList()}\n {this.state.previewOn && this.renderPreview()}\n {this.state.pomocForRemoving !== null && (\n this.setState({pomocForRemoving: null})}\n removePomoc={this.handleRemovePomoc}\n />\n )}\n \n )\n }\n\n renderList() {\n if (!this.state.pomoce.length) {\n return Nie dodano jeszcze żadnej pomocy {this.state.typOgolna ? 'ogólnej' : 'na ekranie aplikacji'}.\n }\n const typOgolna = this.state.typOgolna;\n\n const sort = (p1, p2) => {\n return p1.id > p2.id ? -1 : 1\n };\n\n return (\n \n \n \n \n Nagłówek pomocy\n {!typOgolna && Przypięta do ekranu}\n \n \n \n \n {this.state.pomoce.sort(sort).map(p => (\n \n \n {typOgolna && !p.rozdzialNadrzedny && Pierwsza!}\n {p.naglowek}\n \n {!typOgolna && (\n \n {!p.ekran ? Nieprzypięta do ekranu : {EKRANY_DICT[p.ekran].label}}\n this.setState({previewOn: true, pomocForPreview: p})} noMargin>\n Podgląd na ekranie\n \n \n )}\n \n this.setState({pomocForRemoving: p})}>Usuń\n this.props.history.push(`/zarzadzanie-trescia/pomoc/${p.id}-${p.slug}/edytuj`)}>Edytuj\n this.props.history.push(`/zarzadzanie-trescia/pomoc/${p.id}-${p.slug}`)}>Szczegóły\n \n \n ))}\n \n \n \n )\n }\n\n renderPreview() {\n const pomoc = this.state.pomocForPreview;\n if (!pomoc.ekran) { return null }\n return (\n this.setState({previewOn: false, pomocForPreview: null})}\n />\n )\n }\n}\n\nPomoce.contextType = UserContext;\n\nexport { Pomoce };\n","import React, { Component } from 'react';\nimport { Document, Page, StyleSheet, Text, View } from '@react-pdf/renderer';\n\nimport { PdfHeader } from '../../common';\nimport { pdfStyles } from '../../vars/pdfStyles';\nimport { DraftToPdf } from './DraftToPdf';\n\n\nclass PomoceFrontPdf extends Component {\n\n render() {\n return (\n \n \n \n \n {this.renderPomoc(this.props.pomoce[0], this.props.pomoce, 1)}\n \n \n \n )\n }\n\n renderPomoc(pomoc, pomoce, deepLevel) {\n return (\n \n {pomoc.naglowek}\n \n \n \n {this.renderPomocePodrzedne(pomoc.id, pomoce, deepLevel)}\n \n )\n }\n\n renderPomocePodrzedne(pomocId, pomoce, deepLevel) {\n const pomocePodrzedne = pomoce.filter(p => p.rozdzialNadrzedny.id === pomocId);\n if (!pomocePodrzedne.length) { return null }\n return (\n = 5) && styles.noPadding]}>\n {pomocePodrzedne.map(p => this.renderPomoc(p, pomoce, deepLevel + 1))}\n \n )\n }\n}\n\n\nconst styles = StyleSheet.create({\n sectionTextStyle: {\n marginBottom: 20\n },\n secondarySectionStyle: {\n paddingLeft: 16\n },\n noPadding: {\n paddingLeft: 0\n }\n});\n\n\nexport { PomoceFrontPdf };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\n\nimport { generatePdfDocument } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { Breadcrumps, ButtonCreatePdf, Container, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { PomoceFrontPdf } from './PomoceFrontPdf';\n\n\nclass PomoceFront extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n this.setState({\n initializingOn: false,\n pomoce: getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).pomoce,\n });\n }\n\n handleCreatePdf = () => {\n this.setState(\n {pdfCreatingOn: true},\n () => generatePdfDocument(\n ,\n 'pomoc.pdf',\n this.callbackPfdCreated\n )\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n pomoce: [],\n pdfCreatingOn: false,\n }\n }\n\n getFetchUrl() {\n return '/api/help'\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać pomocy. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania pomocy wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n sortPomoce(p1, p2) {\n return p1.id > p2.id ? 1 : -1\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Pomoc
  • \n
    \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - pomoc\";\n if (!this.state.pomoce.length) {\n return Brak dostępnych pomocy.\n }\n const pomoce = this.state.pomoce.sort(this.sortPomoce);\n return (\n <>\n \n Pomoc\n \n \n \n \n\n \n
      \n {this.renderPomoc(pomoce[0], pomoce, 1)}\n
    \n
    \n \n )\n }\n\n renderPomoc(pomoc, pomoce, deepLevel) {\n return (\n
  • \n {pomoc.naglowek}\n {this.renderPomocePodrzedne(pomoc.id, pomoce, deepLevel)}\n
  • \n )\n }\n\n renderPomocePodrzedne(pomocId, pomoce, deepLevel) {\n const pomocePodrzedne = pomoce.filter(p => p.rozdzialNadrzedny.id === pomocId);\n if (!pomocePodrzedne.length) { return null }\n\n let pomocePodrzedneClassName = 'help__separate-list';\n if (deepLevel >= 5) { pomocePodrzedneClassName += ' help__separate-list--deep'}\n return (\n
      \n {pomocePodrzedne.map(p => this.renderPomoc(p, pomoce, deepLevel + 1))}\n
    \n )\n }\n\n}\n\n\nexport { PomoceFront };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\nimport { Typography } from '@rmwc/typography';\n\nimport { Breadcrumps, Container, FieldWithLabel, GridCustom, Text } from '../../common';\nimport { DraftToComponents } from './DraftToComponents';\nimport { Pomoc } from './Pomoc';\n\n\nclass PomocFront extends Pomoc {\n\n // handlers\n\n handleChangePomoc(newId, newSlug) {\n this.props.history.push(`/pomoc/${newId}-${newSlug}`);\n this.handleReload();\n }\n\n // helpers\n\n getFetchUrl() {\n return `/api/help/${this.props.match.params.id}`\n }\n\n setUrlWithCorrectSlug(pomoc) {\n // update url if slugs are not equal\n const urlParams = this.props.match.params;\n if (pomoc.slug !== urlParams.slug) {\n this.props.history.push(`/pomoc/${urlParams.id}-${pomoc.slug}`);\n }\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Pomoc
  • \n
  • Szczegóły pomocy
  • \n
    \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - pomoc\";\n const pomoc = this.state.pomoc;\n return (\n <>\n \n {this.state.pomoc.naglowek}\n \n \n \n {pomoc.powiazane.length > 0 && (\n \n {pomoc.powiazane.map(p => (\n \n ))}\n \n )}\n \n {pomoc.dataOpublikowania}\n \n \n \n )\n }\n}\n\n\nexport { PomocFront };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Text as PdfText, StyleSheet } from '@react-pdf/renderer';\n\nimport { UserContext } from '../../../context/user-context';\nimport { generatePdfDocument, serializeAuditData } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n AuditData,\n Breadcrumps,\n ButtonCreatePdf,\n Container,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\nimport { PdfWithDraftContent } from './PdfWithDraftContent';\n\n\nclass Regulamin extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const regulamin = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania', ],\n }\n ).regulaminy;\n if (!regulamin) {\n this.setState({initializingOn: false, pageNotFound: true});\n } else {\n this.setState({\n initializingOn: false,\n tresc: regulamin.tresc,\n dataOpublikowania: regulamin.dataOpublikowania,\n auditData: serializeAuditData(regulamin),\n });\n }\n }\n\n handleCreatePdf = () => {\n this.setState(\n {pdfCreatingOn: true},\n () => {\n if (this.props.current) {\n generatePdfDocument(\n Regulamin}\n content={this.state.tresc}\n renderFooter={() => Data ostatniej aktualizacji: {this.state.dataOpublikowania}.}\n />,\n 'regulamin.pdf',\n this.callbackPfdCreated\n );\n } else {\n generatePdfDocument(\n ,\n 'regulamin_do_opublikowania.pdf',\n this.callbackPfdCreated\n );\n }\n }\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n tresc: '',\n dataOpublikowania: '',\n pdfCreatingOn: false,\n auditData: {},\n }\n }\n\n getFetchUrl() {\n return API_URLS[\n this.props.front ? 'regulations' : 'regulationsAdmin'\n ].path\n }\n\n getFetchData() {\n let query = {};\n if (!this.props.current) {\n query['version'] = 'for_publication';\n }\n return query\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać regulaminu. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania regulaminu wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n callback403 = () => {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n { this.props.front ? (\n
  • Regulamin
  • \n ) : (\n <>\n
  • Regulamin
  • \n
  • {this.props.current ? 'Szczegóły wersji aktualnej' : 'Szczegóły wersji \"Do opublikowania\"'}
  • \n \n )}\n
    \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - regulamin\";\n const dataOpublikowania = this.state.dataOpublikowania;\n\n if (this.props.current) {\n return (\n <>\n \n Regulamin\n {this.renderPdfButton()}\n \n \n \n \n \n {dataOpublikowania}\n \n \n \n )\n }\n return (\n <>\n \n Regulaminwersja \"Do opublikowania\"\n \n {this.renderPdfButton()}\n \n \n \n \n \n \n {dataOpublikowania}\n \n \n \n )\n }\n\n renderPdfButton() {\n let pdfCreatingButtonLabel;\n\n if (this.state.pdfCreatingOn) {\n if (this.props.current) {\n pdfCreatingButtonLabel = 'Tworzenie pliku pdf z regulaminem...'\n } else {\n pdfCreatingButtonLabel = 'Tworzenie pliku pdf z regulaminem w wersji \"Do opublikowania\"...'\n }\n } else {\n if (this.props.current) {\n pdfCreatingButtonLabel = 'Pobierz plik pdf z regulaminem'\n } else {\n pdfCreatingButtonLabel = 'Pobierz plik pdf z regulaminem w wersji \"Do opublikowania\"'\n }\n }\n\n return (\n {pdfCreatingButtonLabel}\n )\n }\n}\n\nconst styles = StyleSheet.create({\n pdfHeaderStyle: {\n lineHeight: 1.6,\n marginBottom: 5,\n fontSize: 16,\n fontWeight: 'bold'\n },\n})\n\nRegulamin.contextType = UserContext;\n\nexport { Regulamin };\n","import React from 'react';\nimport {\n DataTable,\n DataTableBody,\n DataTableCell,\n DataTableContent,\n DataTableHead,\n DataTableHeadCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { Breadcrumps, ButtonStyled, DialogCustom, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\n\n\nclass Regulaminy extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n\n const regulaminy = getSerializedObject(data).regulaminy;\n this.setState({\n initializingOn: false,\n currentExists: regulaminy.aktualnyIstnieje,\n forPublicationExists: regulaminy.doPublikacjiIstnieje,\n });\n }\n\n handleCloseCurrentVersionDialog() {\n this.setState({editCurrentVersionOn: false});\n }\n\n handleRemoveDoOpublikowania() {\n this.setState({removingDoOpublikowaniaOn: true});\n }\n\n handleCloseRemoveDoOpublikowaniaDialog() {\n this.setState({removingDoOpublikowaniaOn: false});\n }\n\n handleRemove() {\n // remove ruleForPublication from server\n this.xhrFetch = fetchApi(\n API_URLS.regulationsAdmin.path,\n 'DELETE',\n {},\n {},\n this.handleFetchRemoveSuccess,\n this.handleFetchRemoveError,\n this.handleFetchRemoveIncorrectStatus,\n );\n }\n\n handleFetchRemoveSuccess(data) {\n this.xhrFetchSave = null;\n this.setState({removingDoOpublikowaniaOn: false, forPublicationExists: false});\n }\n\n handleFetchRemoveError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchRemoveError: `Nie udało się usunąć wersji regulaminu. ${data.message}`,\n });\n }\n\n handleFetchRemoveIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n if (status === 404) {\n this.setState({savingOn: false, pageNotFound: true});\n } else {\n let message = '';\n if (status === 403) {\n message = 'Nie masz uprawnień do usuwania regulaminu.';\n // update permission value in context\n this.removePermission();\n }\n this.setState({\n fetchRemoveError: message || `Podczas usuwania wersji regulaminu wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n editCurrentVersionOn: false,\n removingDoOpublikowaniaOn: false,\n currentExists: false,\n forPublicationExists: false,\n fetchRemoveError: '',\n }\n }\n\n setAdditionalHandlers() {\n this.handleCloseCurrentVersionDialog = this.handleCloseCurrentVersionDialog.bind(this);\n this.handleRemoveDoOpublikowania = this.handleRemoveDoOpublikowania.bind(this);\n this.handleCloseRemoveDoOpublikowaniaDialog = this.handleCloseRemoveDoOpublikowaniaDialog.bind(this);\n\n this.handleRemove = this.handleRemove.bind(this);\n this.handleFetchRemoveSuccess = this.handleFetchRemoveSuccess.bind(this);\n this.handleFetchRemoveError = this.handleFetchRemoveError.bind(this);\n this.handleFetchRemoveIncorrectStatus = this.handleFetchRemoveIncorrectStatus.bind(this);\n }\n\n getFetchUrl() {\n return API_URLS.regulationsAdminDetails.path\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać regulaminów. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania regulaminów wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.removePermission();\n }\n\n removePermission() {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Regulamin
  • \n
    \n Regulamin\n \n )\n }\n\n renderContent() {\n document.title = \"Baza Konkurencyjności - regulaminy\";\n if (!this.state.currentExists) {\n return this.props.history.push(`/zarzadzanie-trescia/regulaminy/nowy`)}>Dodaj regulamin\n }\n\n const history = this.props.history;\n return (\n <>\n \n \n \n \n Wersja regulaminu\n \n \n \n \n \n Wersja aktualna\n \n this.setState({editCurrentVersionOn: true})}>Edytuj\n history.push('/zarzadzanie-trescia/regulaminy/aktualny')}>Szczegóły\n \n \n {this.state.forPublicationExists && (\n \n Wersja \"Do opublikowania\"\n \n history.push('/zarzadzanie-trescia/regulaminy/edytuj')}>Edytuj\n history.push('/zarzadzanie-trescia/regulaminy/do-opublikowania')}>Szczegóły\n Usuń\n \n \n )}\n \n \n \n {this.state.editCurrentVersionOn && this.renderEditCurrentVersionDialog()}\n {this.state.removingDoOpublikowaniaOn && this.renderRemoveDoOpublikowaniaDialog()}\n \n )\n }\n\n renderEditCurrentVersionDialog() {\n const history = this.props.history;\n let content, title = null;\n if (this.state.forPublicationExists) {\n title = 'Istnieje wersja \"Do opublikowania\" regulaminu.';\n content = (\n <>\n history.push('/zarzadzanie-trescia/regulaminy/edytuj?wersja=aktualna')}>Nadpisz wersję \"Do opublikowania\" aktualną wersją\n \n Anuluj\n history.push('/zarzadzanie-trescia/regulaminy/edytuj')}>Edytuj wersję \"Do opublikowania\"\n \n \n )\n } else {\n title ='Nie istnieje żadna wersja \"Do opublikowania\" regulaminu.';\n content = (\n \n Anuluj\n history.push('/zarzadzanie-trescia/regulaminy/edytuj?wersja=aktualna')}>Utwórz wersję \"Do opublikowania\" na podstawie aktualnej wersji\n \n )\n }\n\n return (\n \n {content}\n \n )\n }\n\n renderRemoveDoOpublikowaniaDialog() {\n return (\n \n <>\n \n Anuluj\n Usuń\n \n {this.state.fetchRemoveError.length > 0 && {this.state.fetchRemoveError}}\n \n \n )\n }\n}\n\nRegulaminy.contextType = UserContext;\n\nexport { Regulaminy };\n","import React from 'react';\nimport {\n DataTable,\n DataTableBody,\n DataTableCell,\n DataTableContent,\n DataTableHead,\n DataTableHeadCell,\n DataTableRow,\n} from '@rmwc/data-table';\n\nimport { UserContext } from '../../../context/user-context';\nimport { getSerializedObject } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport { Breadcrumps, ButtonStyled, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { TrescPreview } from './TrescPreview';\n\n\nclass TresciOgolne extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n this.setState({\n initializingOn: false,\n fetchError: '',\n tresciOgolne: getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).tresciOgolne,\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n previewOn: false,\n tresciOgolne: [],\n trescForPreview: null,\n }\n }\n\n getFetchUrl() {\n return API_URLS.generalContentAdmin.path\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać treści ogólnych. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania treści ogólnych wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n <>\n \n
  • Treści ogólne
  • \n
    \n Treści ogólne\n \n )\n }\n\n renderContent() {\n return (\n <>\n \n \n \n \n Nazwa treści\n \n \n \n \n {this.state.tresciOgolne.map(to => (\n \n \n {to.naglowek}\n \n \n this.setState({previewOn: true, trescForPreview: to})}>Podgląd na ekranie\n this.props.history.push(`/zarzadzanie-trescia/tresci-ogolne/${to.id}/edytuj`)}>Edytuj\n this.props.history.push(`/zarzadzanie-trescia/tresci-ogolne/${to.id}`)}>Szczegóły\n \n \n ))}\n \n \n \n {this.state.previewOn && this.renderPreview()}\n \n )\n }\n\n renderPreview() {\n return (\n this.setState({previewOn: false, trescForPreview: null})}\n />\n )\n }\n}\n\nTresciOgolne.contextType = UserContext;\n\nexport { TresciOgolne };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { serializeAuditData } from '../../../helpers';\nimport { getSerializedObject, } from '../../../serializers';\nimport { API_URLS } from '../../../urls/api';\nimport {\n AuditData,\n Breadcrumps,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport { DraftToComponents } from './DraftToComponents';\n\n\nclass TrescOgolna extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess(data);\n const trescOgolna = getSerializedObject(\n data, {nonRecursiveKeys: ['tresc', ]}).trescOgolna;\n this.setState({\n initializingOn: false,\n fetchError: '',\n trescOgolna,\n auditData: serializeAuditData(trescOgolna),\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {trescOgolna: null, auditData: {}}\n }\n\n getFetchUrl() {\n return API_URLS.generalContentAdminDetails.getUrl(\n this.props.match.params.id)\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać treści ogólnej. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania treści ogólnej wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callback403 = () => {\n this.context.removePermission('generalContentCookiesRegulation');\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
  • Treści ogólne
  • \n
  • Szczegóły {this.state.trescOgolna ? this.state.trescOgolna.naglowek : ''}
  • \n
    \n )\n }\n\n renderContent() {\n const to = this.state.trescOgolna;\n return (\n <>\n {to.naglowek}\n \n \n this.props.history.push(`/zarzadzanie-trescia/tresci-ogolne/${this.props.match.params.id}/edytuj`)}>Edytuj\n \n \n \n \n \n \n \n )\n }\n}\n\nTrescOgolna.contextType = UserContext;\n\nexport { TrescOgolna };\n","import React, { useContext, useEffect, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\nimport { Card, CardPrimaryAction, CardMedia } from '@rmwc/card';\nimport { Typography } from '@rmwc/typography';\nimport '@material/card/dist/mdc.card.css';\n\nimport { UserContext } from '../../../context/user-context';\nimport { refreshTimerAfterSativaRequest } from '../../../helpers';\nimport { NotPermittedPage, Text } from '../../common';\n\n\nconst ZarzadzanieTrescia = (props) => {\n const [timerRefreshed, setTimerRefreshed] = useState(false);\n if (!timerRefreshed) {\n refreshTimerAfterSativaRequest();\n setTimerRefreshed(true);\n }\n\n useEffect(() => {\n document.title = 'Baza Konkurencyjności - zarządzanie treścią';\n }, [])\n\n const { permissions } = useContext(UserContext);\n\n if (!permissions.fullContent) { return }\n\n return (\n <>\n Administracja treściami\n \n \n )\n}\n\n\nexport { ZarzadzanieTrescia };\n","import React from 'react';\n\nimport { getSerializedObject } from '../../../serializers';\nimport { DraftToComponents } from './DraftToComponents';\nimport { KomunikatFront } from './KomunikatFront';\n\n\nclass ZoltyPasekFront extends KomunikatFront {\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n const komunikat = getSerializedObject(\n data,\n {\n nonRecursiveKeys: ['tresc', ],\n dateAttributes: ['dataOpublikowania', 'dataWaznosci'],\n dateTimeAttributes: ['dataOpublikowania', 'dataWaznosci'],\n }\n ).komunikaty[0];\n if (!komunikat) {\n this.setState({initializingOn: false});\n } else {\n this.setState({initializingOn: false, komunikat});\n }\n }\n\n // helpers\n\n getFetchUrl() {\n return '/api/statements'\n }\n\n getFetchData() {\n return {yellow_stripe: true}\n }\n\n // rendering\n\n render() {\n if (this.state.initializingOn || !Object.keys(this.state.komunikat).length) { return null }\n return this.renderContent()\n }\n\n renderContent() {\n const { tresc } = this.state.komunikat;\n const trescKomunikatu = tresc.blocks.map(b => b.text).join(' ');\n\n return (\n
    \n \n
    \n )\n }\n}\n\n\nexport { ZoltyPasekFront };\n","import React, { useState } from 'react';\nimport { Icon } from '@rmwc/icon';\nimport { Typography } from '@rmwc/typography';\n\nimport { refreshTimerAfterSativaRequest } from '../../helpers';\nimport { Container } from '../common';\n\n\nconst DeklaracjaDostepnosci = (props) => {\n document.title = 'Deklaracja dostępności serwisu Baza Konkurencyjności';\n window.scrollTo(0, 0);\n\n const [timerRefreshed, setTimerRefreshed] = useState(false);\n if (!timerRefreshed) {\n refreshTimerAfterSativaRequest();\n setTimerRefreshed(true);\n }\n\n return (\n \n Deklaracja dostępności serwisu Baza Konkurencyjności\n Ministerstwo Funduszy i Polityki Regionalnej zobowiązuje się zapewnić dostępność swojej strony internetowej zgodnie z ustawą z dnia 4 kwietnia 2019 r.o dostępności cyfrowej stron internetowych i aplikacji mobilnych podmiotów publicznych. Oświadczenie w sprawie dostępności ma zastosowanie do serwisu internetowego Baza Konkurencyjności należącego do Ministerstwa Funduszy i Polityki Regionalnejhttps://bazakonkurencyjnosci.funduszeeuropejskie.gov.pl/.\n
      \n
    • \n \n Data publikacji strony internetowej: 2019-09-07\n
    • \n
    • \n \n Data ostatniej aktualizacji: 2024-02-01\n
    • \n
    • \n \n Strona internetowa jest zgodna z ustawą z dnia 4 kwietnia 2019 r. o dostępności cyfrowej stron internetowych i aplikacji mobilnych podmiotów publicznych.\n
    • \n
    • \n \n Oświadczenie sporządzono dnia 2024-02-01. Deklarację sporządzono na podstawie samooceny przeprowadzonej przez podmiot publiczny.\n
    • \n
    • \n \n Na stronie internetowej można korzystać ze standardowych skrótów klawiaturowych\n
    • \n
    \n\n Informacje zwrotne i dane kontaktowe\n W przypadku problemów z dostępnością strony internetowej prosimy o kontakt. Osobami odpowiedzialnymi są Dariusz Kamiński i Patrycja Myszczyńska, kontaktować można się drogą mailową używając adresu konkurencyjnosc@mfipr.gov.pl lub dzwoniąc na numer telefonu 22 273 79 12. Tą samą drogą można składać wnioski o udostępnienie informacji niedostępnej oraz składać skargi na brak zapewnienia dostępności.\n
    \n Każdy ma prawo do wystąpienia z żądaniem zapewnienia dostępności cyfrowej strony internetowej, aplikacji mobilnej lub jakiegoś ich elementu. Można także zażądać udostępnienia informacji w formach alternatywnych, na przykład odczytanie niedostępnego cyfrowo dokumentu, opisania zawartości filmu bez audiodeskrypcji itp. Żądanie powinno zawierać dane osoby zgłaszającej żądanie, wskazanie, o którą stronę internetową lub aplikację mobilną chodzi oraz sposób kontaktu. Jeżeli osoba żądająca zgłasza potrzebę otrzymania informacji w formie alternatywnej, powinna także określić formę tej informacji.\n Podmiot publiczny powinien zrealizować żądanie niezwłocznie i nie później, niż w ciągu 7 dni. Jeżeli dotrzymanie tego terminu nie jest możliwe, podmiot publiczny niezwłocznie informuje o tym, kiedy realizacja żądania będzie możliwa, przy czym termin ten nie może być dłuższy niż 2 miesiące. Jeżeli zapewnienie dostępności nie jest możliwe, podmiot publiczny może zaproponować alternatywny sposób dostępu do informacji.\n W przypadku, gdy podmiot odmówi realizacji żądania zapewnienia dostępności lub alternatywnego dostępu do informacji, można złożyć skargę na takie działanie. Po wyczerpaniu wszystkich możliwości skargę można przesłać także do Rzecznika Praw Obywatelskich.\n
    \n\n Dostępność architektoniczna\n Ministerstwo Funduszy i Polityki Regionalnej, ul. Wspólna 2/4, 00-926 Warszawa\n Do budynku prowadzi wejście główne od ul. Wspólnej. Przy wejściu znajduje się podjazd dla wózków.\n Recepcja znajduje się po prawej stronie od wejścia głównego. Dalsze przejście zabezpieczone jest bramkami, przez które może przejechać osoba na wózku.\n Na parkingu od ulicy ul. Wspólnej zapewnione są miejsca parkingowe przeznaczone dla osób niepełnosprawnych. W budynku drzwi wejściowe i korytarze umożliwiają swobodny poruszanie się osób na wózkach inwalidzkich. Sale konferencyjne są dostępne dla osób z ograniczeniami mobilności. Wejście do sali konferencyjnej na 5. piętrze wyposażone jest w mobilny „schodołaz” gąsienicowy.\n Windy w budynku są dostosowane do przewozu osób z trudnościami w poruszaniu się (poręcze, odpowiednia wielkość). Na każdym piętrze znajduje się toaleta spełniająca kryteria dostępności.\n Do dyspozycji osób niewidzących lub słabowidzących są windy z przyciskami na panelu sterowania z oznaczeniami w alfabecie Braille’a oraz powiadomieniami głosowymi.\n Korytarze są szerokie, oznaczone kontrastowymi kolorami (różne kolory na różnych piętrach) i w miarę możliwości pozbawione są większych przeszkód przed wejściem na recepcję i salę konferencyjną umieszczone są właściwe oznaczenia – piktogramy.\n Do budynku i wszystkich jego pomieszczeń można wejść z psem asystującym i psem przewodnikiem.\n Aby skutecznie komunikować się z naszym urzędem osoby niesłyszące lub słabo słyszące mogą skorzystać z usługi Tłumacz Migam, która umożliwia połączenia wideo z tłumaczem języka migowego z poziomu przeglądarki internetowej, aplikacji mobilnej oraz dowolnego urządzenia z kamerą. Usługa ta jest dostępna w dni robocze w godzinach pracy urzędu: 8:00 - 16:00.\n
    \n );\n}\n\nexport { DeklaracjaDostepnosci };\n","import React from 'react';\n\nimport { ADVERTISEMENT_STATUS_FILTERS_CHOICES } from '../../../const';\nimport { dateToString } from '../../../helpers';\nimport {\n DateCalendar,\n FieldWithLabel,\n GridCustom,\n Select,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { ProjectNumberSelectsWithPerspectives } from '../common';\n\n\nexport const AdvertisementDataFilters = ({\n filters, perspectives, onChangeFilter, onChangeProjectNumberSelect\n}) => {\n const announcementPublicationDateFrom = !!filters.announcementPublicationDateFrom\n ? new Date(filters.announcementPublicationDateFrom)\n : '';\n const announcementPublicationDateTo = !!filters.announcementPublicationDateTo\n ? new Date(filters.announcementPublicationDateTo)\n : '';\n const submissionDeadlineFrom = !!filters.submissionDeadlineFrom\n ? new Date(filters.submissionDeadlineFrom)\n : '';\n const submissionDeadlineTo = !!filters.submissionDeadlineTo\n ? new Date(filters.submissionDeadlineTo)\n : '';\n const announcementPublicationDateFromInputRef = React.createRef();\n const announcementPublicationDateToInputRef = React.createRef();\n const submissionDeadlineFromInputRef = React.createRef();\n const submissionDeadlineToInputRef = React.createRef();\n\n return (\n <>\n \n \n {return ''}}\n styles={customSelectStyles}\n value={filters.announcementStatus}\n onChange={selectedOption => onChangeFilter(\n 'announcementStatus', selectedOption)}\n />\n \n \n onChangeFilter('announcementNumber', ev.target.value)}\n onClear={ev => onChangeFilter('announcementNumber', '')} />\n \n \n \n \n onChangeFilter('title', ev.target.value)}\n onClear={ev => onChangeFilter('title', '')} />\n \n \n \n \n \n onChangeFilter('announcementProjectEnrollmentFullNumber', ev.target.value)}\n onClear={ev => onChangeFilter('announcementProjectEnrollmentFullNumber', '')} />\n \n \n \n \n \n \n onChangeFilter('announcementPublicationDateFrom', dateToString(date))} />\n \n \n onChangeFilter('announcementPublicationDateTo', dateToString(date))} />\n \n \n \n \n \n \n onChangeFilter('submissionDeadlineFrom', dateToString(date))} />\n \n \n onChangeFilter('submissionDeadlineTo', dateToString(date))} />\n \n \n \n \n \n )\n}\n","import React, { useContext } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\nimport { Icon } from '@rmwc/icon';\n\nimport { UserContext } from '../../../context/user-context';\nimport { URLS } from '../../../urls/frontend';\nimport { ButtonStyled, Ellipsis, MoreOptionsButton, Text } from '../../common';\n\n\nconst STATUS_ICONS = {\n DRAFT: 'radio_button_unchecked',\n PUBLISHED: 'calendar_today',\n CLOSED: 'event_busy',\n CANCELLED: 'arrow_circle_down',\n LOCKED: 'highlight_off',\n RESOLVED: 'event_available',\n};\n\n\nexport const AdvertisementListRow = ({\n advertisement, onFilterAdvertisementByUserEmail\n}) => {\n let history = useHistory();\n const {\n advertisement: advertisement_,\n publicationDate: versionPublicationDate,\n submissionDeadline,\n } = advertisement;\n const {\n createdBy: user,\n status,\n publicationDate: advertisementPublicationDate,\n } = advertisement_;\n\n const handleFilterProjectsByUserEmail = () => {\n history.push(\n `${URLS.managementProjects.path}?email=${user.email}&sort=type&strona=1`);\n };\n\n const handleGoToManageUserPage = () => {\n history.push(URLS.usersDetails.getUrl(user.id));\n };\n\n const handleFilterAdvertisementsByUserEmail = () => {\n onFilterAdvertisementByUserEmail(user.email);\n };\n\n const { permissions } = useContext(UserContext);\n\n return (\n \n \n
    \n \n {advertisement_.number}\n \n \n {advertisement.title}\n \n
    \n
    \n \n
    \n \n {status.name}\n
    \n
    \n \n
    \n
    \n {user.forename} {user.surname}\n {user.email}\n
    \n \n ID {user.identifier}\n
      \n {permissions.fullUsersAndPermissions &&\n
    • \n \n Zarządzaj użytkownikiem\n \n
    • \n }\n {permissions.projectsEnrollments &&\n
    • \n \n Filtruj projekty i nabory\n \n
    • \n }\n
    • Filtruj ogłoszenia
    • \n
    \n
    \n
    \n
    \n \n
    \n {status.label === 'DRAFT' ? (\n <>\n \n {advertisementPublicationDate\n ? `zaplanowana publikacja: ${advertisementPublicationDate}`\n : 'jeszcze nie opublikowane'\n }\n \n {submissionDeadline?.length > 0 && (\n \n termin: {submissionDeadline}\n \n )}\n \n ) : (\n ['CANCELLED', 'LOCKED'].includes(status.label)\n ? (\n \n publikacja: {advertisementPublicationDate}\n \n )\n : (\n <>\n \n publikacja: {advertisementPublicationDate}\n \n {advertisementPublicationDate !== versionPublicationDate && (\n \n ost. zmiana: {versionPublicationDate}\n \n )}\n \n termin: {submissionDeadline}\n \n \n )\n )}\n
    \n
    \n
    \n )\n};\n","import React from 'react';\n\nimport {\n RODZAJ_ADRESU_FILTERS_CHOICES,\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES\n} from '../../../const';\nimport {\n FieldWithLabel,\n GridCustom,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { FormKraj, FormMiejscowosc } from '../common';\n\n\nexport const AdvertiserDataFilters = ({\n filters, onChangeAdvertiserIdentificationNumber, onChangeFilter,\n onChangePolishLocality, ...props\n}) => {\n const { advertiserAddressType, advertiserIdentificationNumberType } = filters;\n const { value: advertiserAddressTypeValue } = advertiserAddressType;\n\n function handlePasteNumerIdentyfikacyjny(ev) {\n // stop data actually being pasted into input\n ev.stopPropagation();\n ev.preventDefault();\n\n // set pasted data via clipboard API\n const clipboardData = ev.clipboardData || window.clipboardData;\n const pastedData = clipboardData.getData('Text');\n onChangeAdvertiserIdentificationNumber(pastedData, true);\n }\n\n return (\n <>\n \n \n onChangeFilter('advertiserName', ev.target.value)}\n onClear={ev => onChangeFilter('advertiserName', '')} />\n \n \n\n \n \n {return ''}}\n styles={customSelectStyles}\n value={advertiserAddressType}\n onChange={selectedOption =>\n props.onChangeAdvertiserAddressType(selectedOption)\n }\n />\n \n {advertiserAddressTypeValue === 'poland' && (\n
    \n \n {return ''}}\n styles={customSelectStyles}\n value={advertiserIdentificationNumberType}\n onChange={selectedOption =>\n props.onChangeAdvertiserIdentificationNumberType(selectedOption)\n }\n />\n {advertiserIdentificationNumberType && advertiserIdentificationNumberType.value === 'all' && (\n Pole do wprowadzenia numeru pojawi się po wybraniu wartości NIP lub PESEL.\n )}\n \n {['nip', 'pesel'].includes(advertiserIdentificationNumberType.value) && (\n \n onChangeAdvertiserIdentificationNumber(ev.target.value, true)}\n onClear={ev => onChangeAdvertiserIdentificationNumber('')}\n onKeyUp={ev => onChangeAdvertiserIdentificationNumber(ev.target.value, true)}\n onPaste={handlePasteNumerIdentyfikacyjny} />\n (dla podmiotów z Polski)\n \n )}\n
    \n )}\n {advertiserAddressTypeValue === 'abroad' && (\n \n onChangeAdvertiserIdentificationNumber(ev.target.value)}\n onClear={ev => onChangeAdvertiserIdentificationNumber('')} />\n (dla podmiotów zagranicznych)\n \n )}\n
    \n {advertiserAddressTypeValue === 'poland' && (\n 0\n ? {\n wojewodztwo: filters.advertiserAddressVoivodeship,\n powiat: filters.advertiserAddressPoviat,\n gmina: filters.advertiserAddressCommune,\n miejscowosc: filters.advertiserAddressLocality,\n }\n : null\n }\n changeMiejscowosc={onChangePolishLocality} />\n )}\n {advertiserAddressTypeValue === 'abroad' && (\n <>\n onChangeFilter(\n 'advertiserAddressCountry',\n selectedOption === null ? '' : selectedOption.label\n )} />\n \n onChangeFilter('advertiserAddressLocality', ev.target.value)}\n onClear={ev => onChangeFilter('advertiserAddressLocality', '')} />\n \n \n )}\n \n )\n}\n","import React from 'react';\n\nimport { FieldWithLabel, GridCustom, TextFieldCustom } from '../../common';\n\n\nexport const UserDataFilters = ({userEmail, userForename, userSurname, onChangeFilter}) => {\n\n return (\n <>\n \n \n onChangeFilter('userEmail', ev.target.value)}\n onClear={ev => onChangeFilter('userEmail', '')} />\n \n \n \n \n onChangeFilter('userForename', ev.target.value)}\n onClear={ev => onChangeFilter('userForename', '')} />\n \n \n onChangeFilter('userSurname', ev.target.value)}\n onClear={ev => onChangeFilter('userSurname', '')} />\n \n \n \n )\n}\n","import React, { useState } from 'react';\n\nimport { TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES } from '../../../const';\nimport { serializePerspectiveForSelect } from '../../../helpers';\nimport { useOneTimeFetchApi } from '../../../hooks';\nimport { ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS } from '../../../filters';\nimport { API_URLS } from '../../../urls/api';\nimport {\n ButtonStyled,\n GridCustom,\n Loader,\n Text,\n} from '../../common';\nimport { AdvertisementDataFilters } from './AdvertisementDataFilters';\nimport { AdvertiserDataFilters } from './AdvertiserDataFilters';\nimport { UserDataFilters } from './UserDataFilters';\n\n\nexport const AdvertisementsFilters = (props) => {\n const [filters, setFilters] = useState(props.filters);\n const {data, loadingOn, fetchError} = useOneTimeFetchApi({\n url: API_URLS.perspectives.path,\n fetchData: {mode: 'advertisements'},\n serializeFetchDataFunction: serializePerspectiveForSelect,\n });\n\n function handleChangeFilter(name, value) {\n setFilters({...filters, [name]: value});\n }\n\n function handleApplyFilters() {\n props.onUpdateFilters(filters);\n }\n\n function handleChangeAdvertiserAddressType(value) {\n setFilters(prevFilters => {\n let dct = {\n advertiserAddressType: value,\n advertiserIdentificationNumber: '',\n advertiserAddressLocality: '',\n };\n dct['advertiserIdentificationNumberType'] =\n value.value !== 'poland'\n ? TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES.filter(\n choice => choice.value === 'all')[0]\n : ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS[\n 'advertiserIdentificationNumberType'];\n if (value.value !== 'poland') {\n dct = {...dct, ...{\n advertiserAddressVoivodeship: '',\n advertiserAddressPoviat: '',\n advertiserAddressCommune: '',\n advertiserAddressLocality: '',\n }};\n }\n if (value.value !== 'abroad') {\n dct['advertiserAddressCountry'] = '';\n }\n return {...prevFilters, ...dct}\n });\n }\n\n function handleChangeAdvertiserIdentificationNumberType(value) {\n setFilters(prevFilters => {\n let dct = {advertiserIdentificationNumberType: value};\n if (prevFilters.advertiserIdentificationNumberType.value !== value.value) {\n // clean advertiserIdentificationNumber\n dct['advertiserIdentificationNumber'] = '';\n }\n return {...filters, ...dct}}\n );\n }\n\n function handleChangeAdvertiserIdentificationNumber(value, onlyDigits=false) {\n if (onlyDigits) {\n value = value.replace(/[^\\d]/g, '');\n }\n handleChangeFilter('advertiserIdentificationNumber', value);\n }\n\n function setSerializedData(data, serializationDict) {\n let serializedData = {};\n for (let [name, value] of Object.entries(data)) {\n serializedData[serializationDict[name]] = value;\n }\n setFilters({...filters, ...serializedData});\n }\n\n function handleChangeProjectNumberSelect(data) {\n setSerializedData(data, {\n perspective: 'announcementProjectEnrollmentPerspective',\n programme: 'announcementProjectEnrollmentProgramme',\n priority: 'announcementProjectEnrollmentPriority',\n activity: 'announcementProjectEnrollmentActivity',\n institution: 'announcementProjectEnrollmentInstitution',\n region: 'announcementProjectEnrollmentRegion',\n });\n }\n\n function handleChangePolishLocality(data) {\n if (data === null) {\n // it's possible to get data as null from locality form\n data = {\n wojewodztwo: '',\n powiat: '',\n gmina: '',\n miejscowosc: '',\n };\n }\n setSerializedData(data, {\n wojewodztwo: 'advertiserAddressVoivodeship',\n powiat: 'advertiserAddressPoviat',\n gmina: 'advertiserAddressCommune',\n miejscowosc: 'advertiserAddressLocality',\n });\n }\n\n return loadingOn ? : (fetchError\n ? (\n <>\n {fetchError}\n OK\n \n )\n : (\n <>\n
    \n Informacje o użytkowniku\n \n Informacje o podmiocie\n \n Informacje o ogłoszeniu\n \n
    \n \n Anuluj\n Zastosuj kryteria\n \n \n )\n )\n};\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport {\n ADVERTISEMENT_STATUS_FILTERS_CHOICES,\n RODZAJ_ADRESU_FILTERS_CHOICES,\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES\n} from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport {\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS,\n getAdvertisementsManagementsFiltersCount\n} from '../../../filters';\nimport { usePaginatedFetchApi } from '../../../hooks';\nimport { setInitialSorterByUrlParam } from '../../../sorters';\nimport {\n Breadcrumps,\n Container,\n Loader,\n NotPermittedPage,\n PaginatedListHeader,\n Pagination,\n SortersFiltersRow,\n TableCustom,\n Text\n} from '../../common';\nimport { AdvertisementListRow } from './AdvertisementListRow';\nimport { AdvertisementsFilters } from './AdvertisementsFilters';\n\n\nconst SORTERS = {\n announcementStatus_asc:\n ['announcementStatus_asc', 'Po statusie rosnąco', 0],\n announcementStatus_desc:\n ['announcementStatus_desc', 'Po statusie malejąco', 1],\n announcementNumber_asc:\n ['announcementNumber_asc', 'Po numerze ogłoszenia rosnąco', 2],\n announcementNumber_desc:\n ['announcementNumber_desc', 'Po numerze ogłoszenia malejąco', 3],\n userEmail_asc: [\n 'userEmail_asc',\n 'Po e-mailu użytkownika, który dodał ogłoszenie rosnąco', 4],\n userEmail_desc: [\n 'userEmail_desc',\n 'Po e-mailu użytkownika, który dodał ogłoszenie malejąco', 5],\n announcementPublicationDate_asc: [\n 'announcementPublicationDate_asc',\n 'Po dacie opublikowania ogłoszenia rosnąco', 6],\n announcementPublicationDate_desc: [\n 'announcementPublicationDate_desc',\n 'Po dacie opublikowania ogłoszenia malejąco', 7],\n submissionDeadline_asc: [\n 'submissionDeadline_asc', 'Po terminie składania ofert rosnąco', 8],\n submissionDeadline_desc: [\n 'submissionDeadline_desc', 'Po terminie składania ofert malejąco', 9],\n title_asc: ['title_asc', 'Po tytule ogłoszenia rosnąco', 10],\n title_desc: ['title_desc', 'Po tytule ogłoszenia malejąco', 11],\n};\nconst SORTING_VALUES = Object.values(SORTERS).sort((s1, s2) => s1[2] - s2[2]);\nconst DEFAULT_SORTER = 'announcementNumber_desc';\nconst OBJECTS_ATTR_NAME = 'versions';\nconst PAGINATED_BY = 20;\nconst BASE_API_URL = '/api/admin/announcements';\nconst SERIALIZER_CONFIG = {\n dateAttributes: ['publicationDate', 'submissionDeadline'],\n dateTimeAttributes: ['submissionDeadline', ],\n dateTimeToLastMinuteAttributes: ['submissionDeadline', ],\n removeTemporaryId: true,\n};\nconst SERIALIZATION_URL_LIST = [\n ['userEmail', 'email'],\n ['userForename', 'imie'],\n ['userSurname', 'nazwisko'],\n ['advertiserName', 'nazwaPodmiotu'],\n ['advertiserAddressType', 'typAdresu'],\n ['advertiserIdentificationNumberType', 'typNumeruIdent'],\n ['advertiserIdentificationNumber', 'numerIdent'],\n ['advertiserAddressCountry', 'kraj'],\n ['advertiserAddressVoivodeship', 'woj'],\n ['advertiserAddressPoviat', 'pow'],\n ['advertiserAddressCommune', 'gm'],\n ['advertiserAddressLocality', 'miejscowosc'],\n ['announcementStatus', 'statusOgl'],\n ['announcementNumber', 'numerOgl'],\n ['title', 'tytul'],\n ['announcementProjectEnrollmentPerspective', 'perspektywa'],\n ['announcementProjectEnrollmentProgramme', 'programOperacyjny'],\n ['announcementProjectEnrollmentPriority', 'osPriorytetowa'],\n ['announcementProjectEnrollmentActivity', 'dzialanie'],\n ['announcementProjectEnrollmentInstitution', 'instytucja'],\n ['announcementProjectEnrollmentRegion', 'region'],\n ['announcementProjectEnrollmentFullNumber', 'numerProj'],\n ['announcementPublicationDateFrom', 'dataPublOd'],\n ['announcementPublicationDateTo', 'dataPublDo'],\n ['submissionDeadlineFrom', 'terminOfertOd'],\n ['submissionDeadlineTo', 'terminOfertDo'],\n ['page', 'strona'],\n];\nconst SERIALIZATION_URL_DICT_TO_POLISH = {};\nfor (let [eng, pol] of SERIALIZATION_URL_LIST) {\n SERIALIZATION_URL_DICT_TO_POLISH[eng] = pol;\n}\n\nconst IMPLEMENTATION_LEVEL_SELECTS_NAMES_LIST = [\n 'announcementProjectEnrollmentPerspective',\n 'announcementProjectEnrollmentProgramme',\n 'announcementProjectEnrollmentPriority',\n 'announcementProjectEnrollmentActivity',\n 'announcementProjectEnrollmentInstitution',\n 'announcementProjectEnrollmentRegion'\n];\n\n\nfunction setInitialPageNumber(urlParams) {\n let pageNumber = parseInt(urlParams.get('strona'));\n if (!(pageNumber > 0)) {\n pageNumber = 1;\n }\n return pageNumber\n}\n\nfunction setInitialFilters(urlParams) {\n // set some default values\n let filters = {\n advertiserAddressType:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressType,\n advertiserIdentificationNumberType:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserIdentificationNumberType,\n advertiserIdentificationNumber:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserIdentificationNumber,\n advertiserAddressCountry:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressCountry,\n advertiserAddressVoivodeship:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressVoivodeship,\n advertiserAddressPoviat:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressPoviat,\n advertiserAddressCommune:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressCommune,\n advertiserAddressLocality:\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS.advertiserAddressLocality,\n };\n\n const setValue = (valueName) => {\n const value = urlParams.get(SERIALIZATION_URL_DICT_TO_POLISH[valueName]);\n if (value && value.length) {\n filters[valueName] = value;\n }\n };\n\n for (let [name, value] of Object.entries(\n ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS)) {\n if ([\n 'advertiserIdentificationNumberType',\n 'advertiserIdentificationNumber',\n 'advertiserAddressCountry',\n 'advertiserAddressVoivodeship',\n 'advertiserAddressPoviat',\n 'advertiserAddressCommune',\n 'advertiserAddressLocality'\n ].includes(name)) { continue }\n let searchParamValue = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH[name]);\n if (name === 'advertiserAddressType') {\n for (let choice of RODZAJ_ADRESU_FILTERS_CHOICES) {\n if (searchParamValue && choice.value === searchParamValue) {\n filters[name] = choice;\n if (searchParamValue === 'poland') {\n\n // set locality if 4 parameters chosen\n const advertiserAddressVoivodeship = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH['advertiserAddressVoivodeship']) || null;\n const advertiserAddressPoviat = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH['advertiserAddressPoviat']) || null;\n const advertiserAddressCommune = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH['advertiserAddressCommune']) || null;\n const advertiserAddressLocality = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH['advertiserAddressLocality']) || null;\n if (advertiserAddressVoivodeship\n && advertiserAddressPoviat\n && advertiserAddressCommune\n && advertiserAddressLocality\n ) {\n filters = {...filters, ...{\n advertiserAddressVoivodeship,\n advertiserAddressPoviat,\n advertiserAddressCommune,\n advertiserAddressLocality\n }};\n }\n\n const advertiserIdentificationNumberType = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH['advertiserIdentificationNumberType']) || '';\n if (!advertiserIdentificationNumberType.length) { break }\n\n // find correct advertiserIdentificationNumberType\n for (let type_ of TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES) {\n if (advertiserIdentificationNumberType === type_.value) {\n filters['advertiserIdentificationNumberType'] = type_;\n // find advertiserIdentificationNumber\n setValue('advertiserIdentificationNumber');\n break\n }\n }\n } else {\n filters['advertiserIdentificationNumberType'] =\n TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES.filter(\n choice => choice.value === 'all'\n )[0];\n if (searchParamValue === 'abroad') {\n // find advertiserIdentificationNumber\n setValue('advertiserIdentificationNumber');\n // find advertiserAddressCountry\n setValue('advertiserAddressCountry');\n // find advertiserAddressLocality\n setValue('advertiserAddressLocality');\n }\n }\n break\n }\n }\n } else if (name === 'announcementStatus') {\n // set from choices\n let filterSet = false;\n for (let choice of ADVERTISEMENT_STATUS_FILTERS_CHOICES) {\n if (searchParamValue && choice.value === searchParamValue) {\n filters[name] = choice;\n filterSet = true;\n break\n }\n }\n if (!filterSet) {\n // set default value\n filters[name] = value;\n }\n } else if (IMPLEMENTATION_LEVEL_SELECTS_NAMES_LIST.includes(name)) {\n searchParamValue = parseInt(searchParamValue);\n // if it's possible to parse, set them, else set default value\n filters[name] = searchParamValue > 0\n ? {value: searchParamValue} : value;\n } else if ([\n // date fields\n 'announcementPublicationDateFrom', 'announcementPublicationDateTo',\n 'submissionDeadlineFrom', 'submissionDeadlineTo'\n ].includes(name)) {\n filters[name] = /\\d{4}-\\d{2}-\\d{2}/.test(searchParamValue)\n ? searchParamValue : value;\n } else {\n filters[name] = searchParamValue || value;\n }\n }\n return filters\n}\n\nfunction getFiltersFetchData(filters) {\n const data = {};\n for (let [name, value] of Object.entries(filters)) {\n if ([\n 'advertiserAddressType',\n 'advertiserIdentificationNumberType',\n 'announcementStatus'\n ].includes(name)) {\n data[name] = value.value;\n } else if (value !== ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS[name]) {\n if (IMPLEMENTATION_LEVEL_SELECTS_NAMES_LIST.includes(name)\n ) {\n data[name] = value.value;\n } else {\n data[name] = value.trim();\n }\n }\n }\n return data\n}\n\n\nexport const Advertisements = (props) => {\n const params = new URLSearchParams(props.location.search);\n\n const [pageNumber, setPageNumber] = useState(setInitialPageNumber(params));\n\n const [selectedSort, setSelectedSort] = useState(null);\n const [filters, setFilters] = useState(null);\n const [filtersCounter, setFiltersCounter] = useState(0);\n const [filtersAreOn, setFiltersAreOn] = useState(false);\n\n function setInitialSorterAndFilters() {\n // configure sorter\n setSelectedSort(\n setInitialSorterByUrlParam(params, SORTERS, DEFAULT_SORTER));\n\n // configure filters\n const setCleanedLocalityFilters = (filtersData) => {\n filtersData = {...filtersData, ...{\n advertiserAddressVoivodeship: '',\n advertiserAddressPoviat: '',\n advertiserAddressCommune: '',\n advertiserAddressLocality: '',\n }};\n setFilters(filtersData);\n setFiltersCounter(getAdvertisementsManagementsFiltersCount(filtersData));\n }\n const filters_ = setInitialFilters(params);\n let xhrFetch = null;\n if (filters_.advertiserAddressType.value === 'poland' && filters_.advertiserAddressLocality.length) {\n xhrFetch = fetchApi(\n '/api/dictionaries/teryt',\n 'GET',\n {},\n {locality_search_key: filters_.advertiserAddressLocality},\n (data) => {\n for (let {voivodeship, poviat, commune, locality} of data.teryt_items || []) {\n // if fits, set it as correct filters\n if (voivodeship === filters_.advertiserAddressVoivodeship\n && poviat === filters_.advertiserAddressPoviat\n && commune === filters_.advertiserAddressCommune\n && locality === filters_.advertiserAddressLocality\n ) {\n setFilters(filters_);\n setFiltersCounter(getAdvertisementsManagementsFiltersCount(filters_));\n return\n }\n }\n setCleanedLocalityFilters(filters_);\n },\n () => setCleanedLocalityFilters(filters_),\n () => setCleanedLocalityFilters(filters_)\n );\n } else {\n setFilters(filters_);\n setFiltersCounter(getAdvertisementsManagementsFiltersCount(filters_));\n }\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(setInitialSorterAndFilters, []);\n\n const {\n data, loadingOn, fetchError, notPermitted, permissionsCheckingOn\n } = usePaginatedFetchApi(\n pageNumber, selectedSort, filters, getFiltersFetchData,\n PAGINATED_BY, OBJECTS_ATTR_NAME, BASE_API_URL,\n SERIALIZATION_URL_DICT_TO_POLISH, SERIALIZER_CONFIG);\n\n const { removePermission } = useContext(UserContext);\n useEffect(() => {\n if (notPermitted) {\n removePermission('advertisements');\n }\n }, [notPermitted]); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (permissionsCheckingOn) {\n return \n }\n\n if (notPermitted) {\n return \n }\n\n function handleChangePage(next=true) {\n setPageNumber(prev => next ? prev + 1 : Math.max(prev -1, 1));\n }\n\n function handleChangeSort(selectedSort) {\n setPageNumber(1);\n setSelectedSort(selectedSort);\n }\n\n function handleOpenFilters() {\n setFiltersAreOn(true);\n }\n\n function handleCloseFilters() {\n setFiltersAreOn(false);\n }\n\n function handleUpdateFilters(filters) {\n setPageNumber(1);\n setFilters(filters);\n handleCloseFilters();\n setFiltersCounter(getAdvertisementsManagementsFiltersCount(filters));\n }\n\n function handleFilterAdvertisementsByUserEmail(userEmail) {\n setPageNumber(1);\n const sorter = SORTERS[DEFAULT_SORTER];\n setSelectedSort({value: sorter[0], label: sorter[1]});\n setFilters({...ADVERTISEMENTS_MANAGEMENTS_CLEANED_FILTERS, userEmail});\n }\n\n return (\n <>\n \n
  • Administracja ogłoszeniami
  • \n
    \n \n \n {loadingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n data && data.objects.length > 0\n ? (\n <>\n \n \n {data.objects.map(advertisement => (\n \n ))}\n \n \n \n \n )\n : Nie znaleziono ogłoszeń spełniających kryteria wyszukiwania.\n )\n )\n }\n \n )\n};\n","import React, { useEffect,useState } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { getSerializedErrorsFromServer } from '../../../serializers';\nimport {\n CancelSaveButtonsRow,\n DialogCustom,\n FetchErrorWithOkayButton,\n FieldWithLabel,\n InfoTextWithIcon,\n Text,\n TextFieldCustom\n} from '../../common';\n\n\nexport const EditProjectForm = ({project, onClose, onSave}) => {\n const isProject = project.type === 'project';\n\n const [name, setName] = useState(project.name);\n const [savingOn, setSavingOn] = useState(false);\n const [errors, setErrors] = useState({});\n const [fetchSaveError, setFetchSaveError] = useState(null);\n\n function save() {\n if (!savingOn) { return }\n\n let xhrFetch = null;\n\n function callbackSuccess(data) {\n xhrFetch = null;\n onSave(project.id, data[isProject ? 'project' : 'enrollment']);\n }\n\n function callbackError(data) {\n xhrFetch = null;\n setFetchSaveError(data.message);\n setSavingOn(false);\n }\n\n function callbackIncorrectStatus(status) {\n xhrFetch = null;\n setFetchSaveError(status === 403\n ? `Nie masz uprawnień do edycji tego ${isProject ? 'projektu' : 'naboru'}.`\n : `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n );\n setSavingOn(false);\n }\n\n function callbackShowSaveErrors(errors) {\n xhrFetch = null;\n setErrors(getSerializedErrorsFromServer(errors, {mapToCamelCaseName: true}));\n setSavingOn(false);\n }\n\n xhrFetch = fetchApi(\n `/api/admin/${isProject ? 'project' : 'enrollment'}/${project.id}`,\n 'PUT', {}, {name}, callbackSuccess, callbackError,\n callbackIncorrectStatus, callbackShowSaveErrors\n );\n return () => {\n if (xhrFetch !== null) {xhrFetch.abort()}\n }\n }\n useEffect(save, [savingOn])\n\n function handleSave() {\n setErrors({});\n setSavingOn(true);\n }\n\n const isNameInvalid = (errors.name || []).length > 0;\n return (\n \n

    Edytuj {isProject ? 'projekt' : 'nabór'}

    \n Numer {project.fullNumber}\n \n setName(ev.target.value)}\n onClear={ev => setName('')} />\n {isNameInvalid &&
      {errors.name.map((e, i) => {e})}
    }\n \n {project.attachedAdvertisementsAmount > 0 && (\n \n )}\n \n {fetchSaveError !== null && (\n setFetchSaveError(null)} />\n )}\n \n )\n}\n","import React, { useContext } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { DataTableCell, DataTableRow } from '@rmwc/data-table';\nimport { Icon } from '@rmwc/icon';\n\nimport { UserContext } from '../../../context/user-context';\nimport { URLS } from '../../../urls/frontend';\nimport { ButtonStyled, MoreOptionsButton, Text } from '../../common';\n\n\nconst ADVERTISEMENTS_GET_COMMON_URL_PARAMS =\n '&sort=announcementNumber_desc&statusOgl=all&strona=1&typAdresu=all' +\n '&typNumeruIdent=all';\n\n\nexport const ProjectListRow = ({project, onFilterProjectsByUserEmail,\n onSelectProjectForEditing}) => {\n let history = useHistory();\n const isProject = project.type === 'project';\n const { createdBy: user } = project;\n\n const handleFilterProjectsByUserEmail = () => {\n onFilterProjectsByUserEmail(user.email);\n };\n\n const handleGoToManageUserPage = () => {\n history.push(URLS.usersDetails.getUrl(user.id));\n };\n\n const handleFilterAdvertisementsByUserEmail = () => {\n history.push(`${URLS.managementAdvertisements.path}?email=${user.email}${ADVERTISEMENTS_GET_COMMON_URL_PARAMS}`);\n };\n\n const handleFilterAdvertisementsByFullNumber = () => {\n history.push(`${URLS.managementAdvertisements.path}?numerProj=${project.fullNumber}${ADVERTISEMENTS_GET_COMMON_URL_PARAMS}`);\n };\n\n const attachedAdvertisementsAmount = project.attachedAdvertisementsAmount || 0;\n\n const { permissions } = useContext(UserContext);\n\n return (\n \n \n
    \n \n {isProject ? 'Projekt' : 'Nabór'}\n
    \n
    \n \n
    \n
    \n {user.forename} {user.surname}\n {user.email}\n
    \n \n ID {user.identifier}\n
      \n {permissions.fullUsersAndPermissions &&\n
    • \n \n Zarządzaj użytkownikiem\n \n
    • \n }\n
    • Filtruj projekty i nabory
    • \n {permissions.advertisements &&\n
    • \n \n Filtruj ogłoszenia\n \n
    • \n }\n
    \n
    \n
    \n
    \n \n
    \n
    \n {project.fullNumber}\n {project.name}\n
    \n {(permissions.advertisements || project.canEdit) && (\n \n
      \n {permissions.advertisements &&\n
    • \n \n Powiązane ogłoszenia\n {attachedAdvertisementsAmount}\n \n
    • \n }\n {project.canEdit && (\n
    • \n onSelectProjectForEditing(project)}\n >\n Edytuj {isProject ? 'projekt' : 'nabór'}\n \n
    • \n )}\n
    \n
    \n )}\n
    \n
    \n
    \n )\n};\n","import React, { useState } from 'react';\n\nimport { PROJECTS_MANAGEMENTS_CHOICES } from '../../../const';\nimport { serializePerspectiveForSelect } from '../../../helpers';\nimport { useOneTimeFetchApi } from '../../../hooks';\nimport { API_URLS } from '../../../urls/api';\nimport {\n ButtonStyled,\n FieldWithLabel,\n GridCustom,\n Loader,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { ProjectNumberSelectsWithPerspectives } from '../common';\nimport { UserDataFilters } from './UserDataFilters';\n\n\nexport const ProjectsFilters = (props) => {\n const [filters, setFilters] = useState(props.filters);\n const {data, loadingOn, fetchError} = useOneTimeFetchApi({\n url: API_URLS.perspectives.path,\n fetchData: {mode: 'projects_enrollments'},\n serializeFetchDataFunction: serializePerspectiveForSelect,\n });\n\n function handleChangeFilter(name, value) {\n setFilters({...filters, [name]: value});\n }\n\n function handleApplyFilters() {\n props.onUpdateFilters(filters);\n }\n\n function handleChangeProjectNumberSelect(data) {\n setFilters({...filters, ...data});\n }\n\n return loadingOn ? : (fetchError\n ? (\n <>\n {fetchError}\n OK\n \n )\n : (\n <>\n
    \n Informacje o użytkowniku\n \n Informacje o projekcie lub naborze\n \n \n {return ''}}\n options={PROJECTS_MANAGEMENTS_CHOICES.map(s => ({value: s[0], label: s[1]}))}\n styles={customSelectStyles}\n value={{value: filters.type.value || PROJECTS_MANAGEMENTS_CHOICES[0][0], label: filters.type.label || PROJECTS_MANAGEMENTS_CHOICES[0][1]}}\n onChange={(selectedOption) => handleChangeFilter('type', selectedOption)} />\n \n \n handleChangeFilter('fullNumber', ev.target.value)}\n onClear={ev => handleChangeFilter('fullNumber', '')} />\n \n \n \n \n handleChangeFilter('name', ev.target.value)}\n onClear={ev => handleChangeFilter('name', '')} />\n \n \n \n
    \n \n Anuluj\n Zastosuj kryteria\n \n \n )\n )\n};\n","import React, { useContext, useEffect, useState } from 'react';\n\nimport { PROJECTS_MANAGEMENTS_CHOICES } from '../../../const';\nimport { UserContext } from '../../../context/user-context';\nimport { usePaginatedFetchApi } from '../../../hooks';\nimport {\n getProjectsManagementsFiltersCount,\n PROJECTS_MANAGEMENTS_CLEANED_FILTERS\n} from '../../../filters';\nimport { setInitialSorterByUrlParam } from '../../../sorters';\nimport {\n Breadcrumps,\n Container,\n Loader,\n NotPermittedPage,\n PaginatedListHeader,\n Pagination,\n SortersFiltersRow,\n TableCustom,\n Text\n} from '../../common';\nimport { EditProjectForm } from './EditProjectForm';\nimport { ProjectListRow } from './ProjectListRow';\nimport { ProjectsFilters } from './ProjectsFilters';\n\n\nconst SORTERS = {\n type: ['type', 'Po kontekście', 0],\n userEmail: ['userEmail', 'Po adresie e-mail użytkownika', 1],\n fullNumber: ['fullNumber', 'Po numerze', 2],\n};\nconst SORTING_VALUES = Object.values(SORTERS).sort((s1, s2) => s1[2] - s2[2]);\nconst DEFAULT_SORTER = 'type';\nconst OBJECTS_ATTR_NAME = 'projectsEnrollments';\nconst PAGINATED_BY = 20;\nconst BASE_API_URL = '/api/admin/project_enrollment';\nconst SERIALIZATION_URL_LIST = [\n ['userEmail', 'email'],\n ['userForename', 'imie'],\n ['userSurname', 'nazwisko'],\n ['type', 'typ'],\n ['fullNumber', 'numer'],\n ['name', 'nazwa'],\n ['perspective', 'perspektywa'],\n ['programme', 'programOperacyjny'],\n ['priority', 'osPriorytetowa'],\n ['activity', 'dzialanie'],\n ['institution', 'instytucja'],\n ['region', 'region'],\n ['page', 'strona'],\n];\nconst SERIALIZATION_URL_DICT_TO_POLISH = {};\nfor (let [eng, pol] of SERIALIZATION_URL_LIST) {\n SERIALIZATION_URL_DICT_TO_POLISH[eng] = pol;\n}\n\n\nfunction setInitialPageNumber(urlParams) {\n let pageNumber = parseInt(urlParams.get('strona'));\n if (!(pageNumber > 0)) {\n pageNumber = 1;\n }\n return pageNumber\n}\n\nfunction setInitialFilters(urlParams) {\n let filters = {};\n for (let [name, value] of Object.entries(PROJECTS_MANAGEMENTS_CLEANED_FILTERS)) {\n let searchParamValue = urlParams.get(\n SERIALIZATION_URL_DICT_TO_POLISH[name]);\n if (name === 'type') {\n let filterSet = false;\n for (let type_ of PROJECTS_MANAGEMENTS_CHOICES) {\n if (searchParamValue && searchParamValue.toString() === type_[0]) {\n filters[name] = {value: type_[0], label: type_[1]};\n filterSet = true;\n break;\n }\n }\n if (!filterSet) {\n filters[name] = value;\n }\n } else if ([\n 'perspective', 'programme', 'priority', 'activity', 'institution',\n 'region'\n ].includes(name)) {\n searchParamValue = parseInt(searchParamValue);\n // if it's possible to parse, set it, else set default value\n filters[name] = searchParamValue > 0 ? {value: searchParamValue} : value;\n } else {\n filters[name] = searchParamValue || value;\n }\n }\n return filters\n}\n\nfunction getFiltersFetchData(filters) {\n const data = {};\n for (let [name, value] of Object.entries(filters)) {\n if (['type', ].includes(name)) {\n if (['project', 'enrollment'].includes(value.value)) {\n data[name] = value.value;\n }\n } else if (value !== PROJECTS_MANAGEMENTS_CLEANED_FILTERS[name]) {\n if ([\n 'perspective', 'programme', 'priority', 'activity',\n 'institution', 'region'\n ].includes(name)) {\n data[name] = value.value;\n } else {\n data[name] = value.trim();\n }\n }\n }\n return data\n}\n\n\nexport const Projects = (props) => {\n const params = new URLSearchParams(props.location.search);\n const [pageNumber, setPageNumber] = useState(setInitialPageNumber(params));\n\n const [selectedSort, setSelectedSort] = useState(null);\n const [filters, setFilters] = useState(null);\n const [filtersCounter, setFiltersCounter] = useState(0);\n const [filtersAreOn, setFiltersAreOn] = useState(false);\n\n function setInitialSorterAndFilters() {\n // configure sorter\n setSelectedSort(\n setInitialSorterByUrlParam(params, SORTERS, DEFAULT_SORTER));\n\n // configure filters\n const filters_ = setInitialFilters(params);\n setFilters(filters_);\n setFiltersCounter(getProjectsManagementsFiltersCount(filters_));\n }\n\n useEffect(setInitialSorterAndFilters, []);\n\n const {\n data, loadingOn, fetchError, notPermitted, permissionsCheckingOn,\n updateData\n } = usePaginatedFetchApi(\n pageNumber, selectedSort, filters, getFiltersFetchData,\n PAGINATED_BY, OBJECTS_ATTR_NAME, BASE_API_URL,\n SERIALIZATION_URL_DICT_TO_POLISH, {}, true);\n const [editedProject, setEditedProject] = useState(null);\n\n const { removePermission } = useContext(UserContext);\n useEffect(() => {\n if (notPermitted) {\n removePermission('projectsEnrollments');\n }\n }, [notPermitted]); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (permissionsCheckingOn) {\n return \n }\n\n if (notPermitted) {\n return \n }\n\n function handleChangeSort(selectedSort) {\n setPageNumber(1);\n setSelectedSort(selectedSort);\n }\n\n function handleOpenFilters() {\n setFiltersAreOn(true);\n }\n\n function handleCloseFilters() {\n setFiltersAreOn(false);\n }\n\n function handleUpdateFilters(filters) {\n setPageNumber(1);\n setFilters(filters);\n handleCloseFilters();\n setFiltersCounter(getProjectsManagementsFiltersCount(filters));\n }\n\n function handleFilterProjectsByUserEmail(userEmail) {\n setPageNumber(1);\n const sorter = SORTERS[DEFAULT_SORTER];\n setSelectedSort({value: sorter[0], label: sorter[1]});\n setFilters({...PROJECTS_MANAGEMENTS_CLEANED_FILTERS, userEmail});\n }\n\n function handleChangePage(next=true) {\n setPageNumber(prev => next ? prev + 1 : Math.max(prev -1, 1));\n }\n\n function handleSaveProject(projectId, data) {\n updateData(projectId, {name: data.name});\n setEditedProject(null);\n }\n\n return (\n <>\n \n
  • Administracja projektami i naborami
  • \n
    \n \n \n {loadingOn\n ? \n : (fetchError\n ? {fetchError}\n : (\n data && data.objects.length > 0\n ? (\n <>\n \n \n {data.objects.map(project => (\n setEditedProject(project)} />\n ))}\n \n \n \n {editedProject !== null && (\n setEditedProject(null)}\n onSave={handleSaveProject} />\n )}\n \n )\n : Nie znaleziono projektów ani naborów spełniających kryteria wyszukiwania.\n )\n )\n }\n \n )\n};\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport { fetchApi } from '../../../fetch';\nimport { serializeObjectList } from '../../../serializers';\nimport {\n sortMiejsceRealizacjiFilter,\n sortProgrammeFilter\n} from '../../../sorters';\nimport { validateSearchFilters } from '../../../validators';\nimport {\n ButtonStyled,\n DateSelect,\n FieldWithLabel,\n GridCustom,\n Select,\n Text,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\nimport { FormKodCPV } from './FormKodCPV';\n\n\nconst EMPTY_VALUE = {\n value: 0,\n label: 'Wybierz',\n};\nconst ORDER_ITEM_CATEGORIES = 'order_item_categories';\nconst ANULOWANE_STATUS = 'CANCELLED';\nconst OPUBLIKOWANE_STATUS = 'PUBLISHED';\nconst ZAMKNIETE_STATUS = 'CLOSED';\nconst ROZSTRZYGNIETE_STATUS = 'RESOLVED';\n\n\nconst serializeProgrammeSelectStructure = (data) => {\n let data_ = {};\n for (let programme of Object.values(data)) {\n data_[programme.id] =\n `${programme.code.toUpperCase()} - ${programme.name}`;\n }\n return Object.entries(data_).sort(sortProgrammeFilter) || []\n}\n\n\nclass FiltryWyszukiwarki extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n initializingOn: true,\n filters: props.filters,\n errors: {},\n fetchError: '',\n dictionaries: props.dictionaries,\n };\n\n this.xhrFetch = null;\n\n this.handleFetchSuccess = this.handleFetchSuccess.bind(this);\n this.handleFetchError = this.handleFetchError.bind(this);\n this.handleFetchIncorrectStatus = this.handleFetchIncorrectStatus.bind(this);\n this.handleApplyFilters = this.handleApplyFilters.bind(this);\n }\n\n // basic functions\n\n componentDidMount() {\n if (!Object.keys(this.state.dictionaries).length) {\n // get dictionaries from server\n this.xhrFetch = fetchApi('/api/dictionaries/search-filters',\n 'GET',\n {},\n {},\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n } else {\n this.setState({initializingOn: false});\n }\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n //handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n let dictionaries = {\n przedmiotZamowieniaKategoria: serializeObjectList(data[ORDER_ITEM_CATEGORIES]),\n programOperacyjny: serializeProgrammeSelectStructure(\n data.operation_programme),\n miejsceRealizacji: Object.entries(data.location_id).sort(\n sortMiejsceRealizacjiFilter) || [],\n };\n\n this.setState(\n {\n initializingOn: false,\n dictionaries\n },\n () => this.props.updateDictionaries(dictionaries)\n );\n }\n\n handleFetchError(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: `Nie udało się pobrać danych do filtrów. ${data.message}`,\n });\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n initializingOn: false,\n fetchError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n });\n }\n\n handleChangeFilter(name, value) {\n this.setState(prevState => {\n let dict = {[name]: value};\n if (name === 'advertiserIdentificationNumber') {\n // allow to insert only letters and digits\n dict['advertiserIdentificationNumber'] = value.replace(/[^a-zA-Z\\d]/, '');\n } else {\n dict[name] = value;\n }\n if (name === 'category') {\n dict['subcategory'] = null;\n }\n // clean error (just in case if exists)\n let errors = Object.assign({}, prevState.errors);\n delete errors[name];\n return {errors, filters: Object.assign({}, prevState.filters, dict)}\n });\n }\n\n handleChangeStatusFilter(value, checked) {\n this.setState(prevState => {\n if (checked) {\n if (!prevState.filters.status.includes(value)) {\n // clean error\n let errors = Object.assign({}, prevState.errors);\n delete errors['status'];\n return {\n errors,\n filters: Object.assign({}, prevState.filters, {status: [...prevState.filters.status, value]}),\n }\n }\n } else {\n if (prevState.filters.status.includes(value)) {\n // clean error\n let errors = Object.assign({}, prevState.errors);\n delete errors['status'];\n return {\n errors,\n filters: Object.assign({}, prevState.filters, {status: prevState.filters.status.filter(s => s !== value)}),\n }\n }\n }\n return {}\n });\n }\n\n handleChangeDateFilter(filterName, dataDict) {\n this.setState(prevState => {\n // clean error\n let errors = Object.assign({}, prevState.errors);\n delete errors[filterName];\n return {\n errors,\n filters: Object.assign({}, prevState.filters,\n {[filterName]: Object.assign({}, prevState.filters[filterName], dataDict)}),\n }\n });\n }\n\n handleApplyFilters() {\n const filters = this.state.filters;\n const [isValid, errors] = validateSearchFilters(filters);\n if (isValid) {\n this.props.updateFilters(filters);\n return\n }\n this.setState({errors});\n }\n\n // rendering\n\n render() {\n if (this.state.initializingOn) {\n return Trwa inicjalizacja danych...;\n } else if (this.state.fetchError.length) {\n return (\n <>\n {this.state.fetchError}\n \n OK\n \n \n );\n } else {\n return (\n <>\n {this.renderInformacjeOogloszeniu()}\n {this.renderPrzedmiotZamowienia()}\n {this.renderDaneOgloszeniodawcy()}\n \n Anuluj\n Zastosuj kryteria\n \n \n );\n }\n }\n\n renderInformacjeOogloszeniu() {\n const {\n errors,\n filters,\n } = this.state;\n const statuses = filters.status;\n return (\n
    \n Informacje o ogłoszeniu\n \n \n this.handleChangeFilter('title', ev.target.value)}\n onClear={(ev) => this.handleChangeFilter('title', '')}\n value={filters.title} />\n \n
    \n Status ogłoszenia\n this.handleChangeStatusFilter(OPUBLIKOWANE_STATUS, event.target.checked)}\n />\n this.handleChangeStatusFilter(ZAMKNIETE_STATUS, event.target.checked)}\n />\n this.handleChangeStatusFilter(ANULOWANE_STATUS, event.target.checked)}\n />\n this.handleChangeStatusFilter(ROZSTRZYGNIETE_STATUS, event.target.checked)}\n />\n {errors.status && errors.status.length > 0 && {errors.status}}\n
    \n
    \n \n \n 0 ? errors.publicationDateRange : ''}`}\n value={filters.publicationDateRange}\n updateDate={(name, value) => this.handleChangeDateFilter('publicationDateRange', name, value)}\n />\n {errors.publicationDateRange && errors.publicationDateRange.length > 0 && {errors.publicationDateRange}}\n \n \n 0 ? errors.submissionDeadlineRange : ''}`}\n value={filters.submissionDeadlineRange}\n updateDate={(name, value) => this.handleChangeDateFilter('submissionDeadlineRange', name, value)}\n />\n {errors.submissionDeadlineRange && errors.submissionDeadlineRange.length > 0 && {errors.submissionDeadlineRange}}\n \n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n isMulti\n options={this.state.dictionaries.programOperacyjny.map(\n ([value, label]) => ({value, label}))\n }\n placeholder='Zacznij wpisywać...'\n value={filters.programme}\n onChange={(selectedOption) => this.handleChangeFilter('programme', selectedOption || [])}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n
    \n )\n }\n\n renderDaneOgloszeniodawcy() {\n const filters = this.state.filters;\n const errorNipOgloszeniodawcy = this.state.errors.advertiserIdentificationNumber;\n return (\n
    \n Dane ogłoszeniodawcy\n \n \n this.handleChangeFilter('advertiserName', ev.target.value)}\n onClear={(ev) => this.handleChangeFilter('advertiserName', '')}\n value={filters.advertiserName} />\n \n \n 0 ? 'filters_numer_identyfikacyjny_ogloszeniodawcy_error' : null}\n aria-label={`Numer identyfikacyjny ogłoszeniodawcy: 255. Wpisz tylko cyfry. Wpisano ${filters.advertiserIdentificationNumber.length} znaków.`}\n aria-valuemax={255}\n characterCount\n className=\"filters__input\"\n clearFieldContext=\"numer identyfikacyjny ogłoszeniodawcy\"\n id=\"filters_numer_identyfikacyjny_ogloszeniodawcy_id\"\n invalid={(errorNipOgloszeniodawcy || '').length > 0}\n maxLength={255}\n onChange={(ev) => this.handleChangeFilter('advertiserIdentificationNumber', ev.target.value)}\n onClear={(ev) => this.handleChangeFilter('advertiserIdentificationNumber', '')}\n onKeyUp={(ev) => this.handleChangeFilter('advertiserIdentificationNumber', ev.target.value)}\n value={filters.advertiserIdentificationNumber} />\n {(errorNipOgloszeniodawcy || '').length > 0 && {errorNipOgloszeniodawcy}}\n \n \n
    \n )\n }\n\n renderPrzedmiotZamowienia() {\n const {\n miejsceRealizacji,\n przedmiotZamowieniaKategoria,\n } = this.state.dictionaries;\n const {\n category,\n cpvItem,\n fulfillmentPlaces,\n subcategory,\n } = this.state.filters;\n return (\n
    \n Przedmiot zamówienia w ogłoszeniu\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n options={[EMPTY_VALUE, ].concat(...przedmiotZamowieniaKategoria.map(t => ({value: t.id, label: t.nazwa})))}\n value={category || EMPTY_VALUE}\n onChange={(selectedOption) => {\n this.handleChangeFilter('category', selectedOption.value === 0 ? null : selectedOption);\n }}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n isDisabled={category === null}\n options={category === null ? [EMPTY_VALUE, ] : [EMPTY_VALUE, ].concat(\n ...przedmiotZamowieniaKategoria.filter(k => parseInt(k.id) === parseInt(category.value))[0].podkategorie.map(p => ({value: p.id, label: p.nazwa})))}\n value={subcategory || EMPTY_VALUE}\n onChange={(selectedOption) => this.handleChangeFilter('subcategory', selectedOption.value === 0 ? null : selectedOption)}\n styles={customSelectStyles}\n aria-hidden={category === null}\n aria-label={category !== null && 'Podkategoria'}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n \n this.handleChangeFilter('cpvItem', selectedOptions || [])} />\n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n isMulti\n options={miejsceRealizacji.map(m => ({value: m[0], label: m[1]}))}\n placeholder='Zacznij wpisywać...'\n value={fulfillmentPlaces}\n onChange={(selectedOption) => this.handleChangeFilter('fulfillmentPlaces', selectedOption || [])}\n styles={customSelectStyles}\n noOptionsMessage={() => 'Brak wybranej opcji'}\n />\n \n \n
    \n )\n }\n}\n\nexport { FiltryWyszukiwarki };\n","import React from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport { Box, ButtonStyled, FieldWithLabel, Text } from '../../common';\nimport { ZalacznikiSelect } from '../common';\n\n\nconst FormRozstrzygniecieWariant = (props) => {\n const { wariant } = props;\n const checkboxLabel = <>Wybierz ofertę od {wariant.nazwaOferenta};\n \n let offerTitle = `${wariant.cena} PLN`;\n if (wariant.isSelected) {\n offerTitle = <>Wybrana oferta: {wariant.cena} PLN\n }\n\n return (\n \n {wariant.nazwaOferenta}\n {wariant.opis.length > 0 && (\n \n {wariant.opis}\n \n )}\n 0 ? React.createRef() : null} >\n \n \n {wariant.isRefused && (\n props.onOfferRestore(wariant.ofertaId)}\n >Przywróć ofertę{props.hasOfertaManyWarianty && ' i wszystkie jej warianty'})}\n {!wariant.isRefused && (\n <>\n props.onOfferRefuse(wariant.ofertaId)}\n >Odrzuć ofertę od {wariant.nazwaOferenta} {props.hasOfertaManyWarianty && ' i wszystkie jej warianty'}\n props.onWariantSelect(\n ev.target.checked, props.zamowienieNode, wariant.id)}\n />\n \n )}\n \n );\n}\n\nexport { FormRozstrzygniecieWariant };\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\nimport { TabBar, Tab } from '@rmwc/tabs';\n\nimport { Box, ButtonStyled, DialogCustom, GridCustom, Text } from '../../common';\nimport { FormRozstrzygniecieWariant } from './FormRozstrzygniecieWariant';\n\n\nconst TAB_INDEXES = {\n notRefused: 0,\n refused: 1,\n};\n\n\nclass FormCzescRozstrzygniecia extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n selectedTab: TAB_INDEXES['notRefused'],\n refusingOfertaId: null,\n restoringOfertaId: null,\n };\n }\n\n // handlers\n\n handleRefuse = (ofertaId) => {\n this.setState({refusingOfertaId: ofertaId});\n }\n\n handleRestore = (ofertaId) => {\n this.setState({restoringOfertaId: ofertaId});\n }\n\n handleCloseDialog = (ofertaIdAttributeName) => {\n this.setState({[ofertaIdAttributeName]: null});\n }\n\n // helpers\n\n hasManyWarianty(ofertaId) {\n return this.props.warianty.filter(w => w.ofertaId === ofertaId).length > 1\n }\n\n sortWarianty = (w1, w2) => {\n return w1.nazwaOferenta.localeCompare(w2.nazwaOferenta, 'pl')\n }\n\n // rendering\n\n render() {\n if (this.props.warianty.length) {\n return (\n <>\n {this.renderHeader()}\n this.setState({selectedTab: ev.detail.index})}\n >\n Oferty spełniające kryteria\n Oferty odrzucone\n \n Lista wariantów{this.props.hasMultiplyZamowienia && ` do części`}\n {this.props.hasMultiplyZamowienia && {this.props.zamowienie.tytul}}\n {this.renderNotRefused()}\n {this.renderRefused()}\n \n )\n }\n return (\n <>\n {this.renderHeader()}\n Lista ofert{this.props.hasMultiplyZamowienia && ` do części`}\n {this.props.hasMultiplyZamowienia && {this.props.zamowienie.tytul}}\n {this.renderNotRefused()}\n \n )\n }\n\n renderHeader() {\n const zamowienie = this.props.zamowienie;\n\n return (\n <>\n
    \n Wybierz ofertę spośród listy ofert spełniających kryteria. Możesz odrzucić oferty. Możesz nie wybrać żadnej oferty.\n Rozstrzygnięcie części:\n {zamowienie.tytul}\n
    \n\n \n {zamowienie.kryteriaOceny.map(ko => (\n \n {ko.opis}\n \n ))}\n \n\n \n )\n }\n\n renderNotRefused() {\n if (this.state.selectedTab !== TAB_INDEXES['notRefused']) {return null}\n const zamowienie = this.props.zamowienie;\n const warianty = this.props.warianty.filter(w => !w.isRefused);\n\n return (\n <>\n Liczba wyników: {warianty.length}\n \n {warianty.sort(this.sortWarianty).map(w => (\n \n ))}\n {!warianty.length && Nie złożono ofert{this.props.hasMultiplyZamowienia && ` do części: \"${this.props.zamowienie.tytul}\"`}}\n \n \n this.props.onNoOfferSelectedChange(event.target.checked, zamowienie.zamowienieNode.id)}\n />\n \n {this.state.refusingOfertaId !== null && this.renderRefusingDialog()}\n \n )\n }\n\n renderRefused() {\n if (this.state.selectedTab !== TAB_INDEXES['refused']) {return null}\n const warianty = this.props.warianty.filter(w => w.isRefused);\n return (\n <>\n Liczba wyników: {warianty.length}\n \n {warianty.sort(this.sortWarianty).map(w => (\n \n ))}\n \n {this.state.restoringOfertaId !== null && this.renderRestoringDialog()}\n \n )\n }\n\n renderRefusingDialog() {\n return this.renderDialog(\n 'refusingOfertaId',\n 'odrzucić',\n this.props.onOfferRefuse,\n 'Oferta zostanie odrzucona z chwilą zapisania rozstrzygnięcia.'\n )\n }\n\n renderRestoringDialog() {\n return this.renderDialog(\n 'restoringOfertaId',\n 'przywrócić',\n this.props.onOfferRestore,\n 'Oferta zostanie przywrócona z chwilą zapisania rozstrzygnięcia.'\n )\n }\n\n renderDialog(ofertaIdAttributeName, titleAdverb, callback, additionalInfo) {\n let title = `Czy na pewno chcesz ${titleAdverb} tę ofertę`;\n if (this.hasManyWarianty(this.state[ofertaIdAttributeName])) {\n title += ' wraz ze wszystkimi jej wariantami?';\n } else {\n title += '?';\n }\n return (\n this.handleCloseDialog(ofertaIdAttributeName)}\n >\n <>\n {additionalInfo}\n \n this.handleCloseDialog(ofertaIdAttributeName)}>Nie\n {\n const ofertaId = this.state[ofertaIdAttributeName];\n this.setState(\n {[ofertaIdAttributeName]: null},\n () => callback(this.props.zamowienie.zamowienieNode.id, ofertaId)\n );\n }}\n >Tak\n \n \n \n )\n }\n}\n\n\nexport { FormCzescRozstrzygniecia };\n","import React, { Component } from 'react';\n\nimport { dateToString } from '../../../helpers';\nimport {\n ButtonStyled,\n DateCalendar,\n FieldWithLabel,\n GridCustom,\n Select,\n TextFieldCustom\n} from '../../common';\nimport { customSelectStyles } from '../../vars/vars';\n\n\n// TODO: get from backend\nconst OGLOSZENIE_STATUS_CHOICES = [\n ['all', 'Wszystkie'],\n ['published', 'Opublikowane'],\n ['closed', 'Zamknięte'],\n ['cancelled', 'Anulowane'],\n ['resolved', 'Rozstrzygnięte'],\n];\nconst OFERTA_STATUS_CHOICES = [\n ['all', 'Wszystkie'],\n ['draft', 'Robocza'],\n ['submitted', 'Złożona'],\n];\n\n\nclass FiltryOfert extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n filters: props.filters,\n };\n }\n\n //handlers\n\n handleChangeFilter(name, value) {\n this.setState(prevState => {\n return {filters: Object.assign({}, prevState.filters, {[name]: value})}\n });\n }\n\n handleApplyFilters = () => {\n this.props.updateFilters(this.state.filters);\n }\n\n // rendering\n\n render() {\n const filters = this.state.filters;\n const submissionDeadlineInputRef = React.createRef();\n const announcementPublicationDateInputRef = React.createRef();\n return (\n <>\n
    \n \n \n this.handleChangeFilter('title', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('title', '')}\n id=\"filters_title_id\" />\n \n \n this.handleChangeFilter('announcementNumber', ev.target.value)}\n className=\"filters__input\"\n onClear={(ev) => this.handleChangeFilter('announcementNumber', '')}\n id=\"filters_number_id\" />\n \n \n \n \n this.handleChangeFilter('submissionDeadline', dateToString(date))} />\n \n \n this.handleChangeFilter('announcementPublicationDate', dateToString(date))} />\n \n \n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n options={OGLOSZENIE_STATUS_CHOICES.map(s => ({value: s[0], label: s[1]}))}\n value={{value: filters.announcementStatus.value || OGLOSZENIE_STATUS_CHOICES[0][0], label: filters.announcementStatus.label || OGLOSZENIE_STATUS_CHOICES[0][1]}}\n onChange={selectedOption => this.handleChangeFilter('announcementStatus', selectedOption)}\n styles={customSelectStyles}\n />\n \n \n { return 'Wybierz opcję z listy rozwijanej' }}\n className=\"select-custom\"\n options={OFERTA_STATUS_CHOICES.map(s => ({value: s[0], label: s[1]}))}\n value={{value: filters.offerStatus.value || OFERTA_STATUS_CHOICES[0][0], label: filters.offerStatus.label || OFERTA_STATUS_CHOICES[0][1]}}\n onChange={selectedOption => this.handleChangeFilter('offerStatus', selectedOption)}\n styles={customSelectStyles}\n />\n \n \n
    \n \n Anuluj\n Zastosuj kryteria\n \n \n )\n }\n}\n\n\nexport { FiltryOfert, OFERTA_STATUS_CHOICES, OGLOSZENIE_STATUS_CHOICES };\n","import React from 'react';\nimport '@material/form-field/dist/mdc.form-field.css';\n\nimport {\n Box, ButtonStyled, FieldWithLabel, GridCustom, NumberTextField, Text,\n TextFieldCustom\n} from '../../common';\n\n\nconst FormWariant = (props) => {\n const { errors, formLocked, onlyCena, priceAutofocus, wariant } = props;\n\n const renderCena = () => {\n return (\n <>\n props.onChangeWariantAttribute('cena', value)} />\n\n { errors.cena && Formularz zawiera błędy!}\n \n )\n }\n\n if (onlyCena) {\n return renderCena()\n }\n\n const wariantOpisId = `wariant_${wariant.temporaryId}_opis_id`;\n const isOpisInvalid = (errors.opis || []).length > 0;\n return (\n \n {renderCena()}\n \n props.onChangeWariantAttribute('opis', ev.target.value)}\n onClear={ev => props.onChangeWariantAttribute('opis', '')}\n textarea />\n {isOpisInvalid && (\n <>\n
      {errors.opis.map((e, i) => {e})}
    \n Formularz zawiera błędy!\n \n )}\n
    \n \n Usuń wariant\n \n
    \n )\n}\n\n\nexport { FormWariant };\n","import React, { Component } from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport {\n ButtonStyled,\n Container,\n GridCustom,\n Text,\n} from '../../common';\nimport { FormDanePodmiotuFields, Zalaczniki } from '../common';\nimport { FormWariant } from './FormWariant';\n\nconst MAX_ATTACHMENTS_NUMBER = 20;\nconst MAX_WARIANTY_NUMBER = 20;\n\n\nclass FormOfertaFields extends Component {\n\n // helpers\n\n getWariantLasttemporaryId() {\n let lastTemporaryId = 0;\n for (let o of Object.values(this.props.oferty)) {\n for (let w of o.warianty) {\n if (w.temporaryId > lastTemporaryId) {\n lastTemporaryId = w.temporaryId;\n }\n }\n }\n return lastTemporaryId\n }\n\n getEmptyOferta() {\n return {\n czyWariantowe: false,\n warianty: [this.getEmptyWariant(), ],\n }\n }\n\n getEmptyWariant() {\n return {\n id: null,\n temporaryId: this.getWariantLasttemporaryId(),\n cena: '',\n opis: '',\n }\n }\n\n // rendering\n\n render() {\n return (\n <>\n {this.renderDanePodmiotu()}\n {this.renderOferty()}\n {this.renderZalaczniki()}\n \n )\n }\n\n renderDanePodmiotu() {\n if (!this.props.withDanePodmiotuForm) { return null }\n return (\n \n \n Dane podmiotu\n \n \n \n )\n }\n\n renderOferty() {\n const zamowienia = this.props.zamowienia;\n const ofertyErrors = (this.props.errors.oferty || {}).errors || [];\n const isOfertyInvalid = ofertyErrors.length > 0;\n\n return (\n \n \n Dane oferty\n \n {isOfertyInvalid &&
      {ofertyErrors.map((e, i) => {e})}
    }\n {zamowienia.length > 1 ? (\n zamowienia.map(z => this.renderMultiplyOferta(z))\n ) : this.renderSingleOferta(zamowienia[0])}\n
    \n )\n }\n\n renderMultiplyOferta(zamowienie) {\n const zamowienieNodeId = zamowienie.zamowienieNode.id;\n const oferta = this.props.oferty.filter(\n o => o.zamowienieNode === zamowienieNodeId)[0] || null;\n const isChecked = oferta !== null;\n const formLocked = this.props.formLocked;\n const czyWariantoweErrors = oferta === null ? {} : ((this.props.errors.oferty || {})[oferta.temporaryId] || {}).czyWariantowe || [];\n const isCzyWariantoweInvalid = oferta === null ? true : czyWariantoweErrors.length > 0;\n return (\n \n \n
    \n this.props.changeAddOferta(zamowienieNodeId, event.target.checked)}\n />\n {zamowienie.tytul}\n
    \n {zamowienie.czyWariantowe && isChecked && oferta !== null && (\n <>\n this.props.changeCzyWariantowa(zamowienieNodeId, event.target.checked)}\n />\n {isCzyWariantoweInvalid && (\n <>\n
      {czyWariantoweErrors.map((e, i) => {e})}
    \n Formularz zawiera błędy!\n \n )}\n \n )}\n
    \n {isChecked && this.renderWarianty(zamowienie, oferta)}\n
    \n )\n }\n\n renderSingleOferta(zamowienie) {\n if (!zamowienie) { return null }\n const oferta = this.props.oferty.filter(\n o => o.zamowienieNode === zamowienie.zamowienieNode.id)[0] || null;\n if (!oferta) { return null }\n return (\n \n \n
    \n Dodaj ofertę do zamówienia\n {zamowienie.tytul}\n
    \n {zamowienie.czyWariantowe && (\n this.props.changeCzyWariantowa(zamowienie.zamowienieNode.id, event.target.checked)}\n />\n )}\n
    \n {this.renderWarianty(zamowienie, oferta)}\n
    \n )\n }\n\n renderWarianty(zamowienie, oferta) {\n if (zamowienie.czyWariantowe) {\n const zamowienieNodeId = zamowienie.zamowienieNode.id;\n const formLocked = this.props.formLocked;\n const wariantyErrors = ((this.props.errors.oferty || {})[oferta.temporaryId] || {}).warianty || {};\n const isWariantyInvalid = (wariantyErrors.errors || []).length > 0;\n return (\n <>\n {oferta.czyWariantowe && (\n <>\n \n Lista wariantów\n {oferta.warianty.length < MAX_WARIANTY_NUMBER && (\n this.props.onAddWariant(zamowienieNodeId)} >\n Dodaj wariant oferty\n \n )}\n \n Liczba wyników: {oferta.warianty.length}\n Możesz dodać maksymalnie {MAX_WARIANTY_NUMBER} wariantów.\n {isWariantyInvalid && (\n <>\n
      {wariantyErrors.errors.map((e, i) => {e})}
    \n Formularz zawiera błędy!\n \n )}\n \n {oferta.warianty.map(w => {\n return (\n this.props.onChangeWariantAttribute(\n zamowienieNodeId, w.temporaryId, attrName, value\n )}\n onRemoveWariant={() => this.props.onRemoveWariant(zamowienieNodeId, w.temporaryId)}\n />\n )\n })}\n \n \n )}\n {!oferta.czyWariantowe && this.renderSingleWariant(oferta, zamowienieNodeId)}\n \n )\n } else {\n return this.renderSingleWariant(oferta, zamowienie.zamowienieNode.id)\n }\n }\n\n renderSingleWariant(oferta, zamowienieId) {\n const wariant = oferta.warianty[0];\n const wariantyErrors = ((this.props.errors.oferty || {})[oferta.temporaryId] || {}).warianty || {};\n return (\n <>\n this.props.onChangeWariantAttribute(\n zamowienieId, wariant.temporaryId, attrName, value\n )}\n onRemoveWariant={() => this.props.onRemoveWariant(zamowienieId, wariant.temporaryId)}\n />\n { wariantyErrors && Formularz zawiera błędy! }\n \n )\n }\n\n renderZalaczniki() {\n return (\n \n \n Liczba wyników: {this.props.zalaczniki.length}\n Możesz załączyć maksymalnie {MAX_ATTACHMENTS_NUMBER} plików.\n \n \n )\n }\n}\n\n\nexport { FormOfertaFields };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { OFERTA_STATUSES, TYP_NUMERU_IDENTYFIKACYJNEGO } from '../../../const';\nimport { fetchApi } from '../../../fetch';\nimport { getLastTemporaryIdFromList, reformatDanePodmiotu } from '../../../helpers';\nimport {\n getSerializedObjectErrorsFormServer,\n getSerializedObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n ButtonStyled,\n Container,\n DialogCustom,\n GridCustom,\n Text,\n} from '../../common';\nimport { DanePodmiotu, FormBaseComponent } from '../common';\nimport { FormOfertaFields } from './FormOfertaFields';\n\nconst RODZAJ_ADRESU_CHOICES = [\n {\n value: 'poland',\n label: 'Polska',\n },\n {\n value: 'abroad',\n label: 'Zagranica',\n },\n];\nconst TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES = [\n {\n value: 'nip',\n label: 'NIP',\n },\n {\n value: 'pesel',\n label: 'PESEL',\n },\n];\nconst EMPTY_DANE_PODMIOTU_DATA = {\n nazwa: '',\n rodzajAdresu: RODZAJ_ADRESU_CHOICES[0],\n adres: {\n kraj: 'Polska',\n wojewodztwo: '',\n powiat: '',\n gmina: '',\n miejscowosc: '',\n kodPocztowy: '',\n ulica: '',\n numerDomu: '',\n },\n typNumeruIdentyfikacyjnego: TYP_NUMERU_IDENTYFIKACYJNEGO_CHOICES[0],\n numerIdentyfikacyjny: '',\n};\n\n\nclass FormOferta extends FormBaseComponent {\n\n // handlers\n\n handleFetchUserDataSuccess = (data) => {\n this.xhrFetch = null;\n this.setState(\n prevState => {\n let oferty = [];\n const zamowienia = this.props.zamowienia;\n if (zamowienia.length === 1) {\n oferty.push(this.getEmptyOferta(1, zamowienia[0].zamowienieNode.id));\n }\n return {\n initializingOn: false,\n danePodmiotu: reformatDanePodmiotu(\n getSerializedObject(data).uzytkownik.danePodmiotu),\n oferty: oferty,\n zalaczniki: [],\n id: null,\n status: OFERTA_STATUSES.draft,\n }\n }\n );\n }\n\n handleFetchOfferDataSuccess = (data) => {\n this.xhrFetch = null;\n data = getSerializedObject(\n data, {addTemporaryId: true}\n ).pakietOfert;\n this.setState({\n initializingOn: false,\n danePodmiotu: reformatDanePodmiotu(data.danePodmiotu),\n oferty: (data.oferty || []).map(o => {\n o.zamowienieNode = o.zamowienieNode.id;\n return o\n }),\n zalaczniki: data.zalaczniki || [],\n id: data.id,\n status: data.status,\n });\n }\n\n handleCloseCancellingDialog = () => {\n this.setState({cancellingOn: false});\n }\n\n handleCloseRemovingDialog = () => {\n this.setState({removingOn: false});\n }\n\n handleCloseSubmittingDialog = () => {\n this.setState({submittingDialogOn: false});\n }\n\n handleChangeAddOferta = (zamowienieNodeId, isChecked) => {\n this.setState(prevState => {\n if (isChecked) {\n return {oferty: [...prevState.oferty, this.getEmptyOferta(\n Math.max(...[...(prevState.oferty.map(o => o.temporaryId)), 0]) + 1,\n zamowienieNodeId\n )]}\n } else {\n return {oferty: prevState.oferty.filter(\n o => o.zamowienieNode !== zamowienieNodeId)}\n }\n });\n }\n\n handleChangeCzyWariantowa = (zamowienieNodeId, isChecked) => {\n this.setState(prevState => {\n let warianty = [];\n if (!isChecked) {\n warianty.push(this.getEmptyWariant());\n }\n return {oferty: prevState.oferty.map(o => {\n if (o.zamowienieNode === zamowienieNodeId) {\n o.czyWariantowe = isChecked;\n o.warianty = warianty;\n }\n return o\n })}\n });\n }\n\n handleAddWariant = (zamowienieNodeId) => {\n this.setState(prevState => {\n return {oferty: prevState.oferty.map(o => {\n if (o.zamowienieNode === zamowienieNodeId) {\n o.warianty = [...o.warianty, this.getEmptyWariant()];\n }\n return o\n })}\n })\n }\n\n handleChangeWariantAttribute = (zamowienieNodeId, temporaryId, attrName, value) => {\n this.setState(prevState => {\n return prevState.oferty.map(o => {\n if (o.zamowienieNode === zamowienieNodeId) {\n let warianty = [];\n for (let w of o.warianty) {\n if (w.temporaryId === temporaryId) {\n w[attrName] = value;\n }\n warianty.push(w);\n }\n\n o.warianty = warianty;\n }\n return o\n })\n });\n }\n\n handleRemoveWariant = (zamowienieNodeId, temporaryId) => {\n this.setState(prevState => {\n return {oferty: prevState.oferty.map(o => {\n if (o.zamowienieNode === zamowienieNodeId) {\n o.warianty = o.warianty.filter(w => w.temporaryId !== temporaryId);\n }\n return o\n })}\n });\n }\n\n handleAddZalacznik = (data) => {\n data = data || {};\n\n this.setState(prevState => {\n return {zalaczniki: [...prevState.zalaczniki, {\n id: null,\n temporaryId: getLastTemporaryIdFromList(prevState.zalaczniki) + 1,\n nazwa: '',\n plik: {\n id: null,\n uri: '',\n nazwa: '',\n dataUtworzenia: '',\n ktoUtworzyl: {imie: '', nazwisko: ''},\n },\n plikDoWgrania: data.plikDoWgrania || null,\n }]}\n })\n }\n\n handleSaveZalacznikAttributes = (temporaryId, data) => {\n this.setState((prevState) => {\n let zalaczniki = [];\n for (let z of prevState.zalaczniki) {\n if (z.temporaryId === temporaryId) {\n z = Object.assign(z, data);\n }\n zalaczniki.push(z);\n }\n return {zalaczniki}\n });\n }\n\n handleRemoveZalacznik = (temporaryId) => {\n this.setState(prevState => {\n return {zalaczniki: prevState.zalaczniki.filter((z) => z.temporaryId !== temporaryId)}\n });\n }\n\n handleFetchSaveSuccess = (data) => {\n super.handleFetchSaveSuccess(data);\n data = getSerializedObject(data, {addTemporaryId: true}).pakietOfert;\n this.setState(\n {\n savingOn: false,\n isNew: false,\n saveBtnText: 'Zapisano',\n id: data.id,\n status: data.status,\n zalaczniki: data.zalaczniki,\n },\n () => {\n this.saveMsgTimeout = setTimeout(() => {\n this.setState({saveBtnText: this.saveBtnDefaultText})\n }, 5000)\n }\n );\n }\n\n handleShowSaveErrors = (errors) => {\n this.xhrFetchSave = null;\n this.setState(\n prevState => ({\n savingOn: false,\n saveBtnText: this.saveBtnDefaultText,\n errors: getSerializedObjectErrorsFormServer(\n errors,\n {\n ogloszenie: this.props.ogloszenieId,\n oferty: prevState.oferty,\n zalaczniki: prevState.zalaczniki,\n },\n ['oferty', 'warianty', 'zalaczniki']\n ),\n })\n );\n }\n\n handleRemove = () => {\n this.xhrFetch = fetchApi(\n `/api/offerset/announcement/${this.props.ogloszenieId}`,\n 'DELETE',\n {},\n {},\n this.handleFetchRemoveSuccess,\n this.handleFetchRemoveError,\n this.handleFetchRemoveIncorrectStatus\n );\n }\n\n handleFetchRemoveSuccess = (data) => {\n this.xhrFetch = null;\n window.location.reload();\n }\n\n handleFetchRemoveError = (data) => {\n this.xhrFetch = null;\n this.setState({\n removingOn: false,\n fetchRemoveError: `Nie udało się usunąć oferty. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchRemoveIncorrectStatus = (status) => {\n this.xhrFetch = null;\n this.setState({\n removingOn: false,\n fetchRemoveError: `Nie udało się usunąć oferty. Wystąpił błąd o kodzie ${status}.`,\n });\n }\n\n handleSubmit = () => {\n this.setState(\n {savingOn: true, submittingDialogOn: false, fetchSaveError: ''},\n () => {\n this.xhrFetchSave = fetchApi(\n this.getSubmitUrl(),\n 'PUT',\n {},\n this.getSerializedDataForSubmitting(),\n this.handleFetchSubmitSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n this.handleShowSaveErrors,\n );\n }\n );\n }\n\n handleFetchSubmitSuccess = (data) => {\n this.xhrFetchSave = null;\n this.props.onSubmitOferta((data.offerset || {}).id || null);\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n isNew: props.isNew,\n cancellingOn: false,\n removingOn: false,\n submittingDialogOn: false,\n danePodmiotu: {},\n oferty: [],\n zalaczniki: [],\n fetchRemoveError: '',\n };\n }\n\n fetchInitialData = () => {\n if (this.state.isNew) {\n this.xhrFetch = fetchApi(\n '/api/users/0',\n 'GET',\n {},\n {},\n this.handleFetchUserDataSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n } else {\n this.xhrFetch = fetchApi(\n `/api/offerset/announcement/${this.props.ogloszenieId}`,\n 'GET',\n {},\n {},\n this.handleFetchOfferDataSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n }\n\n getFetchError(message) {\n message = translateErrorMessage(message);\n if (this.state.isNew) {\n return `Nie udało się pobrać danych do formularza oferty. ${message}`\n }\n return `Nie udało się pobrać danych oferty. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n if (this.state.isNew) {\n return `Podczas pobierania danych do formularza oferty wystąpił nieoczekiwany błąd o kodzie ${status}`\n }\n return `Podczas pobierania danych oferty wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n getWariantLastTemporaryId() {\n let lastTemporaryId = 0;\n for (let o of Object.values(this.state.oferty)) {\n for (let w of o.warianty) {\n if (w.temporaryId > lastTemporaryId) {\n lastTemporaryId = w.temporaryId;\n }\n }\n }\n return lastTemporaryId\n }\n\n getEmptyOferta(temporaryId, zamowienieNodeId) {\n return {\n id: null,\n temporaryId,\n zamowienieNode: zamowienieNodeId,\n czyWariantowe: false,\n warianty: [this.getEmptyWariant(), ],\n }\n }\n\n getEmptyWariant() {\n return {\n id: null,\n temporaryId: this.getWariantLastTemporaryId() + 1,\n cena: null,\n opis: '',\n }\n }\n\n formPreState(props) {\n this.saveBtnDefaultText = 'Zapisz wersję roboczą oferty';\n }\n\n getSaveUrl() {\n return this.state.isNew ? '/api/offerset' : `/api/offerset/announcement/${this.props.ogloszenieId}`\n }\n\n getSaveMethod() {\n return this.state.isNew ? 'POST' : 'PUT'\n }\n\n getDataForSaving() {\n const data = {\n oferty: this.state.oferty,\n zalaczniki: this.state.zalaczniki.map(z => {\n return {id: z.id, nazwa: z.nazwa, plik: z.plik.id}\n }),\n }\n if (this.state.isNew) {\n data['ogloszenie'] = this.props.ogloszenieId;\n }\n return getSerializedObject(data, {toServer: true});\n }\n\n getSubmitUrl() {\n return `/api/offerset/announcement/${this.props.ogloszenieId}/submit`\n }\n\n getDataForSubmitting() {\n return {\n ogloszenie: this.props.ogloszenieId,\n oferty: this.state.oferty,\n zalaczniki: this.state.zalaczniki.map(z => {\n return {id: z.id, nazwa: z.nazwa, plik: z.plik.id}\n }),\n }\n }\n\n getSerializedDataForSubmitting() {\n return getSerializedObject(\n this.getDataForSubmitting(), {toServer: true})\n }\n\n // rendering\n\n renderContent() {\n const statusOferty = this.state.status;\n const formLocked = this.state.savingOn;\n const { fetchSaveError, fetchRemoveError, isNew } = this.state;\n const ogloszenieErrors = (this.state.errors || {}).ogloszenie || [];\n const formOfertaErrors = fetchRemoveError.length > 0 || fetchSaveError.length > 0 || ogloszenieErrors.length > 0;\n\n return (\n <>\n {isNew ? 'Utwórz' : 'Edytuj'} ofertę\n {this.renderDanePodmiotu()}\n \n \n \n {\n this.setState({cancellingOn: true})\n e.currentTarget.blur();\n }}>\n Anuluj {isNew ? 'tworzenie' : 'edycję'} oferty \n \n {!isNew && (\n this.setState({removingOn: true, fetchRemoveError: ''})}>\n Usuń ofertę\n \n )}\n {statusOferty !== null && ['DRAFT', 'WITHDRAWN'].includes(statusOferty.label) && (\n <>\n \n {this.state.saveBtnText}\n \n {this.state.saveBtnText === 'Zapisano' && Zapisano!}\n \n )}\n \n this.setState(\n {submittingDialogOn: true, removingOn: false, cancellingOn: false})}>\n Złóż ofertę\n \n \n {fetchRemoveError.length > 0 && {fetchRemoveError}}\n {fetchSaveError.length > 0 && {fetchSaveError}}\n {ogloszenieErrors.length > 0 &&
      {ogloszenieErrors.map((e, i) => {e})}
    }\n {formOfertaErrors && Formularz zawiera błędy!}\n\n {!formLocked && this.state.cancellingOn && this.renderCancelDialog()}\n {!formLocked && this.state.removingOn && this.renderRemoveDialog()}\n {!formLocked && this.state.submittingDialogOn && this.renderSubmitDialog()}\n \n )\n }\n\n renderDanePodmiotu() {\n let content;\n if (!Object.keys(this.state.danePodmiotu).length) {\n content = (\n
    \n \n Nie zdefiniowano danych podmiotu dla użytkownika. Aby je ustawić, przejdź do swojego profilu.\n \n \n Oferta nie będzie mogła zostać złożona. W dalszym ciągu będzie można ją zapisać.\n \n
    \n );\n } else {\n content = (\n <>\n \n \n Te dane podmiotu zostaną dołączone do oferty. Aby je zmienić, przejdź do swojego profilu i edytuj dane podmiotu.\n \n \n );\n }\n return (\n \n \n Dane podmiotu\n \n {content}\n \n )\n }\n\n renderCancelDialog() {\n let confirmButton;\n if (this.state.isNew) {\n confirmButton = window.location.reload()} to={`/ogloszenia/${this.props.ogloszenieId}`}>Tak;\n } else {\n confirmButton = window.location.reload()}>Tak;\n }\n\n return (\n \n \n Nie\n {confirmButton}\n \n \n )\n }\n\n renderBaseDialog(onClose, onConfirm, title) {\n return (\n \n \n Nie\n Tak\n \n \n )\n }\n\n renderRemoveDialog() {\n return this.renderBaseDialog(\n this.handleCloseRemovingDialog, this.handleRemove,\n 'Czy na pewno chcesz usunąć tę ofertę?'\n )\n }\n\n renderSubmitDialog() {\n return this.renderBaseDialog(\n this.handleCloseSubmittingDialog, this.handleSubmit,\n 'Czy na pewno chcesz złożyć tę ofertę?'\n )\n }\n}\n\n\nclass FormOfertaOgloszeniodawca extends FormOferta {\n\n // handlers\n\n handleChangeRodzajAdresu = (value) => {\n this.setState(prevState => {\n if (value.value === prevState.danePodmiotu.rodzajAdresu.value) {\n return {}\n }\n let dct = {\n numerIdentyfikacyjny: '',\n rodzajAdresu: value,\n };\n let adres = {\n kraj: null,\n wojewodztwo: '',\n powiat: '',\n gmina: '',\n miejscowosc: '',\n };\n if (value.value === 'poland') {\n adres.kraj = 'Polska';\n dct['typNumeruIdentyfikacyjnego'] = TYP_NUMERU_IDENTYFIKACYJNEGO[0];\n } else {\n // set abroad\n dct['typNumeruIdentyfikacyjnego'] = TYP_NUMERU_IDENTYFIKACYJNEGO[2];\n }\n return {danePodmiotu: Object.assign({}, prevState.danePodmiotu, {\n ...dct,\n adres: Object.assign({}, prevState.danePodmiotu.adres, adres),\n })}\n });\n }\n\n handleChangeAttribute = (name, value, isAdresPart) => {\n this.setState(prevState => {\n let dict = {[name]: value};\n if (name === 'typNumeruIdentyfikacyjnego' && prevState.danePodmiotu['typNumeruIdentyfikacyjnego'].value !== value.value) {\n dict['numerIdentyfikacyjny'] = '';\n }\n if (isAdresPart) {\n return {danePodmiotu: Object.assign({}, prevState.danePodmiotu, {\n adres: Object.assign({}, prevState.danePodmiotu.adres, dict),\n })}\n } else {\n return {danePodmiotu: Object.assign({}, prevState.danePodmiotu, dict)}\n }\n });\n }\n\n handleChangeMiejscowosc = (value) => {\n this.setState(prevState => {\n return {danePodmiotu: Object.assign({}, prevState.danePodmiotu, {\n adres: Object.assign({}, prevState.danePodmiotu.adres, value)\n })}\n });\n }\n\n handleChangeNumerIdentyfikacyjny = (value, onlyDigits=false) => {\n if (onlyDigits) {\n value = value.replace(/[^\\d]/, '');\n }\n this.setState(prevState => {\n return {danePodmiotu: Object.assign({}, prevState.danePodmiotu, {numerIdentyfikacyjny: value})}\n });\n }\n\n handleSave = () => {}\n\n handleShowSaveErrors = (errors) => {\n this.xhrFetchSave = null;\n this.setState(\n prevState => ({\n savingOn: false,\n saveBtnText: this.saveBtnDefaultText,\n errors: getSerializedObjectErrorsFormServer(\n errors,\n this.getDataForSubmitting(),\n ['oferty', 'warianty', 'zalaczniki']\n ),\n })\n );\n }\n\n handleFetchSubmitSuccess = (data) => {\n this.props.onSubmitForm(data, this.state.isNew);\n }\n\n // helpers\n\n fetchInitialData = () => {\n if (this.state.isNew) {\n let data = {initializingOn: false};\n if (this.props.zamowienia.length === 1) {\n data['oferty'] = [this.getEmptyOferta(\n 1, this.props.zamowienia[0].zamowienieNode.id), ];\n }\n this.setState(data);\n } else {\n this.xhrFetch = fetchApi(\n `/api/offerset/${this.props.ofertaId}`,\n 'GET',\n {},\n {},\n this.handleFetchOfferDataSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n }\n\n getAdditionalState(props) {\n return Object.assign(\n super.getAdditionalState(props),\n {danePodmiotu: Object.assign({}, EMPTY_DANE_PODMIOTU_DATA)}\n );\n }\n\n formPreState(props) {\n this.saveBtnDefaultText = 'Zapisz ofertę';\n }\n\n getSubmitUrl() {\n if (this.state.isNew) {\n return `/api/offerset/announcement/${this.props.ogloszenieId}/submit`\n }\n return `/api/offerset/${this.props.ofertaId}/submit`\n }\n\n getDataForSubmitting() {\n const danePodmiotu = this.state.danePodmiotu;\n const adres = danePodmiotu.adres;\n return {\n ogloszenie: this.props.ogloszenieId,\n danePodmiotu: {\n nazwa: danePodmiotu.nazwa,\n typNumeruIdentyfikacyjnego: danePodmiotu.typNumeruIdentyfikacyjnego.value,\n numerIdentyfikacyjny: danePodmiotu.numerIdentyfikacyjny,\n adres: {\n kraj: adres.kraj,\n wojewodztwo: adres.wojewodztwo,\n powiat: adres.powiat,\n gmina: adres.gmina,\n miejscowosc: adres.miejscowosc,\n kodPocztowy: adres.kodPocztowy,\n ulica: adres.ulica,\n numerDomu: adres.numerDomu,\n },\n },\n oferty: this.state.oferty,\n zalaczniki: this.state.zalaczniki.map(z => {\n return {id: z.id, temporaryId: z.temporaryId, nazwa: z.nazwa, plik: z.plik.id}\n }),\n }\n }\n\n // rendering\n\n renderHeader() {\n return null\n }\n\n renderContent() {\n const { fetchSaveError, isNew } = this.state;\n const ogloszenieErrors = (this.state.errors || {}).ogloszenie || [];\n const formLocked = this.state.savingOn;\n return (\n <>\n {isNew ? 'Dodaj' : 'Edytuj'} ofertę\n \n \n \n Anuluj {isNew ? 'tworzenie' : 'edycję'} oferty\n \n {this.state.saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n {ogloszenieErrors.length > 0 &&
      {ogloszenieErrors.map((e, i) => {e})}
    }\n {this.state.cancellingOn && this.renderCancelDialog()}\n \n )\n }\n}\n\n\nexport { FormOferta, FormOfertaOgloszeniodawca };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { Icon } from '@rmwc/icon';\n\nimport { UserContext } from '../../../context/user-context';\nimport { fetchApi } from '../../../fetch';\nimport { reformatDanePodmiotu, serializeAuditData } from '../../../helpers';\nimport {\n getSerializedObject,\n serializeObject,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n AuditData,\n Box,\n ButtonStyled,\n Container,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Message,\n OfferStatus,\n Text\n} from '../../common';\nimport { BaseComponent, DanePodmiotu, ZalacznikiSelect } from '../common';\n\n\nclass Oferta extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n this.setState(\n {zamowienia: (serializeObject(data.advertisement).zamowienia || []).map(z => {\n return {\n id: z.id,\n zamowienieNode: z.zamowienieNode,\n tytul: z.tytul,\n czyWariantowe: z.czyWariantowe,\n }\n })},\n this.getOfferData\n );\n }\n\n handleFetchOfferDataSuccess = (data) => {\n this.xhrFetch = null;\n data = getSerializedObject(\n data, {addTemporaryId: true}).pakietOfert;\n if (!data) {\n this.setState({\n initializingOn: false,\n fetchError: 'Nie udało się pobrać danych oferty.',\n });\n } else {\n this.setState({\n initializingOn: false,\n danePodmiotu: data.danePodmiotu ? reformatDanePodmiotu(data.danePodmiotu) : {},\n oferty: (data.oferty || []).map(o => {\n o.zamowienieNode = o.zamowienieNode.id;\n return o\n }),\n zalaczniki: data.zalaczniki || [],\n id: data.id,\n status: data.status,\n auditData: serializeAuditData(data),\n });\n }\n }\n\n handleCloseWithdrawingDialog = () => {\n this.setState({withdrawingOn: false});\n }\n\n handleWithdraw = () => {\n if (this.props.preview) { return }\n\n this.xhrFetch = fetchApi(\n `/api/offerset/announcement/${this.props.ogloszenieId}/withdraw`,\n 'PUT',\n {},\n {},\n this.handleFetchWithdrawSuccess,\n this.handleFetchWithdrawError,\n this.handleFetchWithdrawIncorrectStatus\n );\n }\n\n handleFetchWithdrawSuccess = (data) => {\n this.xhrFetch = null;\n this.props.onWithdrawOferta();\n }\n\n handleFetchWithdrawError = (data) => {\n this.xhrFetch = null;\n this.setState({\n withdrawingOn: false,\n fetchWithdrawError: `Nie udało się wycofać oferty. ${translateErrorMessage(data.message)}`,\n });\n }\n\n handleFetchWithdrawIncorrectStatus = (status) => {\n this.xhrFetch = null;\n this.setState({\n withdrawingOn: false,\n fetchWithdrawError: `Nie udało się wycofać oferty. Wystąpił błąd o kodzie ${status}.`,\n });\n }\n\n // helpers\n\n getAdditionalState(props) {\n const commonState = {\n zamowienia: [],\n danePodmiotu: {},\n oferty: [],\n zalaczniki: [],\n auditData: {},\n };\n if (this.props.preview) {\n return commonState\n }\n return {\n ...commonState,\n withdrawingOn: false,\n fetchWithdrawError: '',\n }\n }\n\n getFetchUrl() {\n return `/api/announcements/${this.props.ogloszenieId}`\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać danych oferty. ${(message)}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych oferty. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n getOfferData = () => {\n let url;\n if (this.props.ofertaId) {\n url = `/api/offerset/${this.props.ofertaId}`;\n } else {\n url = `/api/offerset/announcement/${this.props.ogloszenieId}`;\n }\n this.xhrFetch = fetchApi(\n url,\n 'GET',\n {},\n {},\n this.handleFetchOfferDataSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n\n // rendering\n\n renderFetchError() {\n if (this.props.preview) {\n return (\n \n OK\n \n )\n }\n return super.renderFetchError()\n }\n\n renderHeader() {\n if (this.state.initializingOn || this.state.fetchError.length) { return null }\n\n const {label, nazwa} = this.state.status;\n\n return (\n <>\n {this.props.preview && (\n \n Zamknij podgląd\n \n )}\n \n Podgląd oferty\n \n )\n }\n\n renderContent() {\n return (\n <>\n {this.renderDanePodmiotu()}\n {this.renderOferty()}\n {this.renderZalaczniki()}\n {!this.props.preview && (\n <>\n {this.renderActionsButtons()}\n {this.state.withdrawingOn && this.renderWithdrawDialog()}\n \n )}\n {this.state.danePodmiotu.ktoUtworzyl.id === this.context.user.id &&\n \n }\n \n )\n }\n\n renderDanePodmiotu() {\n let content;\n if (!Object.keys(this.state.danePodmiotu).length) {\n content = (\n \n Nie zdefiniowano danych podmiotu dla użytkownika. Aby je ustawić, przejdź do swojego profilu.\n \n );\n } else {\n content = (\n <>\n \n Te dane podmiotu zostaną dołączone do oferty.\n \n );\n }\n return (\n \n Dane podmiotu\n {content}\n \n )\n }\n\n renderOferty() {\n const zamowienia = this.state.zamowienia;\n return (\n \n \n Dane oferty\n \n {zamowienia.length > 1 ? (\n zamowienia.map(z => this.renderMultiplyOferta(z))\n ) : this.renderSingleOferta()}\n \n )\n }\n\n renderMultiplyOferta(zamowienie) {\n const oferta = this.state.oferty.filter(o => o.zamowienieNode === zamowienie.zamowienieNode.id)[0] || null;\n if (!oferta) {\n return (\n
    \n Oferta częściowa do części\n {zamowienie.tytul} - brak\n
    \n )\n }\n return (\n \n \n
    \n Oferta częściowa do części\n {zamowienie.tytul}\n
    \n {oferta.czyWariantowe && Oferta wariantowa}\n
    \n {oferta.czyWariantowe ? this.renderWariantowa(oferta) : this.renderNiewariantowa(oferta)}\n
    \n )\n }\n\n renderWariantowa(oferta) {\n return (\n <>\n Lista wariantów\n Liczba wyników: {oferta.warianty.length}\n \n {oferta.warianty.map(w => (\n \n {w.opis.length > 0 && (\n \n {w.opis}\n \n )}\n \n ))}\n \n \n )\n }\n\n renderNiewariantowa(oferta) {\n return (\n \n {oferta.warianty[0].cena} PLN\n \n )\n }\n\n renderSingleOferta() {\n const oferta = this.state.oferty[0];\n return (\n \n \n Oferta do ogłoszenia\n {oferta.czyWariantowe && Oferta wariantowa}\n \n {oferta.czyWariantowe ? this.renderWariantowa(oferta) : this.renderNiewariantowa(oferta)}\n \n )\n }\n\n renderZalaczniki() {\n const { zalaczniki, id } = this.state;\n return (\n \n Załączniki\n Liczba wyników: {zalaczniki.length}\n \n \n )\n }\n\n renderActionsButtons() {\n if (this.state.status.label !== 'SUBMITTED') { return null }\n const withdrawingError = this.state.fetchWithdrawError;\n return (\n <>\n \n this.setState({withdrawingOn: true, fetchWithdrawError: ''})}>\n Wycofaj ofertę\n \n \n \n {withdrawingError.length > 0 && {withdrawingError}}\n \n \n )\n }\n\n renderWithdrawDialog() {\n return (\n \n \n Nie\n Tak\n \n \n )\n }\n}\n\n\nOferta.contextType = UserContext;\n\nexport { Oferta };\n","import React from 'react';\n\nimport { getPricesRange } from '../../../helpers';\nimport { Box, FieldWithLabel, Text } from '../../common';\nimport { ZalacznikiSelect } from '../common';\n\n\nconst OfertaBox = (props) => {\n const { className, oferta } = props;\n const { danePodmiotu, warianty } = oferta;\n\n let myOfferLabel = null;\n if (props.showMyOfferLabel) {\n myOfferLabel = Moja oferta;\n }\n\n let cena;\n let opis = null;\n if (props.showFullVariants) {\n if (warianty.length > 1) {\n cena = (\n
      \n {warianty.map((w, i) => (\n
    • \n {i + 1}. {w.cena} PLN\n {w.opis}\n
    • \n ))}\n
    \n );\n } else {\n cena = `${warianty[0].cena} PLN`;\n }\n if (props.isSelected && warianty[0].opis.length > 0) {\n opis = (\n \n {warianty[0].opis}\n \n )\n }\n } else {\n if (warianty.length > 1) {\n const prices = getPricesRange(warianty.map(w => w.cena))\n cena = `${prices.min} - ${prices.max} PLN (${warianty.length} warianty)`;\n } else {\n cena = `${warianty[0].cena} PLN`;\n }\n }\n\n let zalaczniki = null;\n if (props.showAttachments) {\n zalaczniki = (\n 0 ? React.createRef() : null}>\n \n \n );\n }\n\n const adres = danePodmiotu.adres || {};\n return (\n \n Oferta {danePodmiotu.nazwa}\n {myOfferLabel}\n \n )}\n >\n {oferta.isRefused && Ta oferta jest Odrzucona}\n <>\n \n {danePodmiotu.nazwa}\n \n \n {`${adres.miejscowosc || ''}${adres.kraj === 'Polska' ? '' : ', ' + (adres.kraj || '')}`}\n \n {cena}\n {opis}\n {zalaczniki}\n \n \n )\n};\n\n\nexport { OfertaBox }\n","import React from 'react';\nimport { Oferta } from './Oferta';\nimport { DialogCustom } from '../../common';\n\n\nconst OfertaPreview = (props) => {\n return (\n \n \n \n )\n};\n\n\nexport { OfertaPreview }\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { getOffersFiltersCount } from '../../../filters';\nimport { isAdvertisementLocked } from '../../../helpers';\nimport { Box, Breadcrumps, ButtonStyled, FieldWithLabel, GridCustom, Text } from '../../common';\nimport { PaginatedBaseComponent } from '../common';\nimport { FiltryOfert, OFERTA_STATUS_CHOICES, OGLOSZENIE_STATUS_CHOICES } from './FiltryOfert';\nimport { OfertaPreview } from './OfertaPreview';\nimport { BadgeAnchor, Badge } from '@rmwc/badge';\nimport '@rmwc/badge/badge.css';\n\nclass Oferty extends PaginatedBaseComponent {\n\n // handlers\n\n handleClosePreview = () => {\n this.setState({\n previewOn: false,\n previewedOfferAnnouncementId: null,\n });\n }\n\n // helpers\n\n preState(props) {\n super.preState(props);\n this.objectsName = 'pakietyOfert';\n this.sortingValues = [\n ['announcementTitle_asc', 'Po tytule ogłoszenia rosnąco'],\n ['announcementTitle_desc', 'Po tytule ogłoszenia malejąco'],\n ['announcementNumber_asc', 'Po numerze ogłoszenia rosnąco'],\n ['announcementNumber_desc', 'Po numerze ogłoszenia malejąco'],\n ['submissionDeadline_asc', 'Po terminie składania ofert rosnąco'],\n ['submissionDeadline_desc', 'Po terminie składania ofert malejąco'],\n ['announcementStatus_asc', 'Po statusie ogłoszenia rosnąco'],\n ['announcementStatus_desc', 'Po statusie ogłoszenia malejąco'],\n ['offerStatus_asc', 'Po statusie oferty rosnąco'],\n ['offerStatus_desc', 'Po statusie oferty malejąco'],\n ['announcementPublicationDate_asc', 'Po dacie publikacji ogłoszenia rosnąco'],\n ['announcementPublicationDate_desc', 'Po dacie publikacji ogłoszenia malejąco'],\n ];\n this.sortingLabel = 'Sortuj oferty';\n this.filteringLabel = 'Filtruj listę';\n this.filtersComponentClass = FiltryOfert;\n\n this.getFiltersCount = getOffersFiltersCount;\n }\n\n getAdditionalState(props) {\n let selectedSort;\n for (let s of this.sortingValues) {\n if (s[0] === 'submissionDeadline_desc') {\n selectedSort = s;\n break\n }\n }\n return {\n ...super.getAdditionalState(props),\n selectedSort: {value: selectedSort[0], label: selectedSort[1]},\n objects: {},\n filters: this.getEmptyFilters(),\n previewOn: false,\n previewedOfferAnnouncementId: null,\n }\n }\n\n getFetchUrl() {\n return '/api/offerset/my'\n }\n\n getFetchData() {\n let queryDict = super.getFetchData();\n\n // set filters values\n const emptyFilters = this.getEmptyFilters();\n for (let [name, value] of Object.entries(this.state.filters)) {\n if (['announcementStatus', 'offerStatus'].includes(name)) {\n if (value.value !== 'all') {\n queryDict[name] = value.value.toUpperCase();\n }\n } else if (value !== emptyFilters[name]) {\n queryDict[name] = value.trim();\n }\n }\n\n return queryDict\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać ofert. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania ofert wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n getEmptyFilters() {\n return {\n title: '',\n submissionDeadline: '',\n announcementPublicationDate: '',\n announcementNumber: '',\n announcementStatus: {value: OGLOSZENIE_STATUS_CHOICES[0][0], label: OGLOSZENIE_STATUS_CHOICES[0][1]},\n offerStatus: {value: OFERTA_STATUS_CHOICES[0][0], label: OFERTA_STATUS_CHOICES[0][1]},\n }\n }\n\n // rendering\n\n renderHeader() {\n document.title = \"Baza Konkurencyjności - oferty\";\n return (\n \n
  • Moje oferty
  • \n
    \n )\n }\n\n renderFiltersCount() {\n return this.getFiltersCount(this.state.filters, this.getEmptyFilters())\n }\n\n renderEmptyObjects() {\n return Brak ofert spełniających kryteria wyszukiwania.\n }\n\n renderList() {\n const total = this.state.total;\n let ofertaLabel = '';\n if (total === 1) {\n ofertaLabel = 'ofertę';\n } else {\n const totalString = total.toString();\n if (['2', '3', '4'].includes(totalString.slice(totalString.length - 1))) {\n ofertaLabel = 'oferty';\n } else {\n ofertaLabel = 'ofert';\n }\n }\n return (\n <>\n Znaleziono {total < this.paginateBy ? '' : 'około '}{total} {ofertaLabel}\n \n {this.state.objects.map(pakietOfert => this.renderPakietOfert(pakietOfert))}\n \n \n )\n }\n\n renderPakietOfert(pakietOfert) {\n const { dataOpublikowania, numer, status } = pakietOfert.ogloszenie;\n // only published and closed statuses of announcement can show more content\n const zamowieniaNodes = (pakietOfert.oferty || []).map(o => o.zamowienieNode);\n const wersja = pakietOfert.ogloszenie.wersja || {};\n const ogloszenieId = pakietOfert.ogloszenie.id;\n const offerSubtitle = (\n <>Oferta złożona do ogłoszenia: {numer}\n )\n const isLocked = isAdvertisementLocked(status);\n\n return (\n \n \n \n {status.nazwa}\n \n \n {isLocked ? : {wersja.terminOfert}}\n \n \n \n \n {isLocked ? : {wersja.tytul}}\n \n \n \n \n {pakietOfert.status.nazwa}\n \n \n {isLocked ? :\n (wersja.zamowienia || []).length < 2 ? 'Całe ogłoszenie' :\n zamowieniaNodes.map(z => (\n - {z.ostatniaWersja.tytul || ''})\n )\n }\n \n \n
    \n {\n this.setState({previewOn: true, previewedOfferAnnouncementId: ogloszenieId});\n e.currentTarget.blur();\n }}>\n Podgląd oferty\n \n \n \n Przejdź do szczegółów ogłoszenia\n \n {pakietOfert.badge_count > 0 && }\n \n
    \n \n )\n }\n\n renderAdditionalAfterBaseContent() {\n return this.state.previewOn ? this.renderPreview() : null\n }\n\n renderPreview() {\n return \n }\n}\n\n\nexport { Oferty };\n","import React from 'react';\n\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { ButtonStyled, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { FormRozstrzygniecie } from '../ogloszenia';\nimport { OfertaBox } from './OfertaBox';\nimport { OfertaPreview } from './OfertaPreview';\n\n\nclass OfertyOwnerClosedStatus extends BaseComponent {\n showAttachments = true;\n showFullVariants = true;\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n const serializedData = getSerializedObject(data);\n\n if (this.props.setAdvertisementManagerType && data.extra && Object.keys(data.extra).length) {\n this.props.setAdvertisementManagerType({\n isAuthor: data.extra.is_advertiser, isAdmin: data.extra.is_admin\n });\n }\n\n this.setState({\n initializingOn: false,\n pakietyOfert: serializedData.pakietyOfert,\n });\n }\n\n handleMyOfferButtonClick = () => {\n if (this.props.isAdvertisementOwner && !this.props.onlyAdmin) { return }\n this.setState({previewOn: true});\n }\n\n handleClosePreview = () => {\n this.setState({previewOn: false});\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n formOn: false,\n previewOn: false,\n pakietyOfert: [],\n }\n }\n\n getFetchUrl() {\n return `/api/offerset/announcement/${this.props.ogloszenie.ogloszenie.id}/list`\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych ofert. ${translateErrorMessage(message)}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych ofert. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n sortOferty(oferta1, oferta2) {\n return oferta1.danePodmiotu.nazwa.localeCompare(oferta2.danePodmiotu.nazwa, 'pl')\n }\n\n sortWarianty(wariant1, wariant2) {\n return wariant1.cena - wariant2.cena\n }\n\n // rendering\n\n renderElements() {\n const isAdvertisementOwner = this.props.isAdvertisementOwner;\n if (isAdvertisementOwner && this.state.formOn) {\n return \n }\n const onlyAdmin = this.props.onlyAdmin;\n return (\n <>\n {onlyAdmin && this.renderMyOfferButton()}\n {this.renderContent()}\n {isAdvertisementOwner && (\n \n this.setState({formOn: true})} className=\"btn btn--main\" icon=\"verified_user\">Dodaj rozstrzygnięcie\n \n )}\n {onlyAdmin && this.state.previewOn && this.renderPreview()}\n \n )\n }\n\n renderMyOfferButton() {\n if (this.state.pakietyOfert.filter(\n po => po.ktoUtworzyl.id === this.props.user.id).length) {\n return (\n \n \n Szczegóły mojej oferty\n \n \n )\n }\n return null\n }\n\n renderContent() {\n const zamowienia = this.props.ogloszenie.zamowienia;\n if (zamowienia.length > 1) {\n return zamowienia.map(z => this.renderZamowienie(z, true))\n }\n return this.renderZamowienie(zamowienia[0], false)\n }\n\n renderZamowienie(zamowienie, isMultiply) {\n return (\n
    \n
    \n Lista złożonych ofert{isMultiply && ` do części:`}\n {isMultiply && {zamowienie.tytul}}\n
    \n {this.renderOferty(zamowienie, isMultiply)}\n
    \n )\n }\n\n renderOferty(zamowienie, isMultiply) {\n let oferty = [];\n for (let po of this.state.pakietyOfert) {\n for (let o of po.oferty) {\n if (o.zamowienieNode.id === zamowienie.zamowienieNode.id) {\n let oferta = Object.assign({}, o, {\n oferentId: po.ktoUtworzyl.id,\n danePodmiotu: po.danePodmiotu,\n zalaczniki: po.zalaczniki,\n pakietId: po.id\n });\n oferty.push(oferta);\n break\n }\n }\n }\n if (!oferty.length) {\n return (\n
    \n Liczba wyników: 0\n Nie złożono żadnej oferty{isMultiply ? ` do części: ${zamowienie.tytul}` : ''}\n
    \n )\n }\n return (\n <>\n Liczba wyników: {oferty.length}\n \n {oferty.sort(this.sortOferty).map(o => this.renderOferta(o))}\n \n \n )\n }\n\n renderOferta(oferta) {\n const userId = this.props.user.id;\n const showMyOfferLabel = this.props.isAdvertisementOwner ? false : (\n !!userId ? oferta.oferentId === userId : false);\n return this.renderOfertaBox(oferta, showMyOfferLabel)\n }\n\n renderOfertaBox(oferta, showMyOfferLabel, isSelected=false) {\n return \n }\n\n renderPreview() {\n return \n }\n}\n\n\nexport { OfertyOwnerClosedStatus };\n","import React from 'react';\n\nimport { OfertyOwnerClosedStatus } from './OfertyOwnerClosedStatus';\n\n\nclass OfertyOffererClosedStatus extends OfertyOwnerClosedStatus {\n showAttachments = false;\n showFullVariants = false;\n\n // rendering\n\n renderElements() {\n return (\n <>\n {this.renderMyOfferButton()}\n {this.renderContent()}\n {this.state.previewOn && this.renderPreview()}\n \n )\n }\n}\n\n\nexport { OfertyOffererClosedStatus };\n","import React from 'react';\n\nimport { OFERTA_STATUSES } from '../../../const';\nimport { getSerializedObject, translateErrorMessage } from '../../../serializers';\nimport { ButtonStyled, DialogCustom, GridCustom, Text } from '../../common';\nimport { BaseComponent } from '../common';\nimport { FormOferta } from './FormOferta';\nimport { Oferta } from './Oferta';\n\n\nclass OfertyOffererPublishedStatus extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n\n const serializedData = getSerializedObject(data, {addTemporaryId: true});\n const pakietOfert = serializedData.pakietOfert;\n if (!pakietOfert) {\n this.setState({initializingOn: false});\n return\n }\n\n this.setState({\n initializingOn: false,\n formOn: ['DRAFT', 'WITHDRAWN'].includes(pakietOfert.status.label),\n pakietOfert: pakietOfert,\n });\n }\n\n handleCloseForm = () => {\n this.setState(\n {formOn: false},\n () => this.handleReload()\n );\n }\n\n handleWithdrawOferta = () => {\n this.setState(prevState => ({\n formOn: true,\n withdrawingOfferConfirmationOn: true,\n submittingOfferConfirmationOn: false,\n pakietOfert: Object.assign(\n {}, prevState.pakietOfert, {status: OFERTA_STATUSES.withdrawn}),\n }));\n }\n\n handleCloseWithdrawingOfferConfirmationDialog = () => {\n window.location.reload();\n }\n\n handleSubmitOferta = (offerSetId) => {\n this.setState(prevState => ({\n formOn: false,\n withdrawingOfferConfirmationOn: false,\n submittingOfferConfirmationOn: true,\n pakietOfert: Object.assign(\n {}, prevState.pakietOfert, {status: OFERTA_STATUSES.submitted, id: offerSetId}),\n }));\n }\n\n handleCloseSubmittingOfferConfirmationDialog = () => {\n window.location.reload();\n }\n\n handleReload = () => {\n this.setState(\n {initializingOn: true, fetchError: '', pakietOfert: null},\n () => {this.fetchInitialData()}\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n formOn: false,\n withdrawingOfferConfirmationOn: false,\n submittingOfferConfirmationOn: false,\n pakietOfert: null,\n }\n }\n\n getFetchUrl() {\n return `/api/offerset/announcement/${this.props.ogloszenie.ogloszenie.id}`\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych oferty. ${translateErrorMessage(message)}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych oferty. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n renderContent() {\n if (this.state.formOn) {\n return (\n <>\n \n {this.state.withdrawingOfferConfirmationOn && this.renderWithdrawingOfferConfirmationDialog()}\n \n )\n }\n const { pakietOfert } = this.state;\n if (!pakietOfert || !pakietOfert.id) {\n return (\n
    \n this.setState({formOn: true})} className=\"btn btn--main\">Utwórz ofertę\n
    \n )\n }\n return (\n <>\n \n {this.state.submittingOfferConfirmationOn && this.renderSubmittingOfferConfirmationDialog()}\n \n )\n }\n\n renderBaseDialog(onClose, title, content) {\n return (\n \n <>\n {content}\n \n OK\n \n \n \n )\n }\n\n renderWithdrawingOfferConfirmationDialog() {\n return this.renderBaseDialog(\n this.handleCloseWithdrawingOfferConfirmationDialog,\n 'Wycofałeś ofertę.',\n (\n \n Możesz ją teraz usunąć lub edytować i ponownie złożyć.\n Możesz również zrezygnować z edycji oferty i opuścić zakładkę.\n \n )\n )\n }\n\n renderSubmittingOfferConfirmationDialog() {\n return this.renderBaseDialog(\n this.handleCloseSubmittingOfferConfirmationDialog,\n 'Oferta została złożona.', null\n )\n }\n}\n\n\nexport { OfertyOffererPublishedStatus };\n","import React, { Component } from 'react';\nimport { Document, Page, StyleSheet, Text, View } from '@react-pdf/renderer';\n\nimport { splitLineByChar } from '../../../helpers';\nimport { PdfHeader } from '../../common';\nimport { pdfStyles } from '../../vars/pdfStyles';\n\n\nclass OfertyResolvedStatusPdf extends Component {\n\n // helpers\n\n checkRefused(offerId) {\n let isRefused = false;\n for (let z of this.props.rozstrzygniecie.zamowieniaNodes) {\n for (let o of z.oferty) {\n if (o.id === offerId) {\n isRefused = o.isRefused;\n break\n }\n }\n }\n return isRefused\n }\n\n // rendering\n\n render() {\n return (\n \n \n \n \n Rozstrzygnięcie ogłoszenia\n {this.props.tytulOgloszenia}\n {this.renderContent()}\n {this.renderKomentarz()}\n \n \n \n )\n }\n\n renderContent() {\n if (this.props.zamowienia.length > 1) {\n return this.props.zamowienia.map(z => this.renderZamowienie(z, true))\n }\n return this.renderZamowienie(this.props.zamowienia[0], false)\n }\n\n renderZamowienie(zamowienie, isMultiply) {\n return (\n \n \n Rozstrzygnięcie{isMultiply ? ` części: ${zamowienie.tytul}` : ''}\n \n {this.renderSelectedOferta(zamowienie, isMultiply)}\n {this.renderOferty(zamowienie, isMultiply)}\n \n )\n }\n\n renderSelectedOferta(zamowienie, isMultiply) {\n const zamowienieFromRozstrzygniecie = (\n this.props.rozstrzygniecie.zamowieniaNodes || []).filter(\n z => z.id === zamowienie.zamowienieNode.id)[0];\n if (!zamowienieFromRozstrzygniecie || !zamowienieFromRozstrzygniecie.wybranyWariant) {\n return {isMultiply ? `Dla części: \"${zamowienie.tytul}\" nie` : 'Nie'} wybrano żadnej oferty.\n }\n\n const selectedWariantId = zamowienieFromRozstrzygniecie.wybranyWariant.id;\n let selectedPakietOfert = null;\n let selectedOferta = null;\n let selectedWariant = null;\n for (let po of this.props.pakietyOfert) {\n for (let o of po.oferty) {\n for (let w of o.warianty) {\n if (w.id === selectedWariantId) {\n selectedPakietOfert = po;\n selectedOferta = o;\n selectedWariant = w;\n break\n }\n }\n if (selectedWariant !== null) {\n break\n }\n }\n if (selectedWariant !== null) {\n break\n }\n }\n\n if (!selectedWariant) {\n return Wystąpił nieoczekiwany błąd.\n }\n\n let header;\n if (isMultiply) {\n header = `Dla części: \"${zamowienie.tytul}\" została wybrana oferta`;\n } else {\n header = 'Została wybrana oferta';\n }\n\n const oferta_ = {\n id: selectedOferta.id,\n danePodmiotu: selectedPakietOfert.danePodmiotu,\n warianty: [selectedWariant, ],\n }\n\n return (\n <>\n {header}\n {this.renderOfertaBox(oferta_, [selectedWariant,], true)}\n \n )\n }\n\n renderCena(warianty) {\n let cena;\n if (warianty.length > 1) {\n cena = (\n <>\n {warianty.map((w, i) => (\n \n {i + 1}. {w.cena} PLN\n {splitLineByChar(w.opis).map((line, i) => {line})}\n \n ))}\n \n );\n } else {\n cena = {warianty[0].cena} PLN;\n }\n return (\n <>\n Cena\n {cena}\n \n )\n }\n\n renderOferty(zamowienie, isMultiply) {\n let oferty = [];\n for (let po of this.props.pakietyOfert) {\n for (let o of po.oferty) {\n if (o.zamowienieNode.id === zamowienie.zamowienieNode.id) {\n let oferta = Object.assign({}, o, {\n oferentId: po.ktoUtworzyl.id,\n danePodmiotu: po.danePodmiotu,\n zalaczniki: po.zalaczniki,\n isRefused: this.checkRefused(o.id),\n });\n oferty.push(oferta);\n break\n }\n }\n }\n\n if (!oferty.length) {\n return Nie złożono żadnej oferty{isMultiply ? ` do części: ${zamowienie.tytul}` : ''}\n }\n\n // exclude selected offer\n\n const selectedWariantId = ((this.props.rozstrzygniecie.zamowieniaNodes || []).filter(\n z => z.id === zamowienie.zamowienieNode.id)[0] || {}).wybranyWariant.id;\n\n let filteredOferty = [];\n for (let o of oferty) {\n let oferta = Object.assign({}, o);\n oferta.warianty = o.warianty.filter(w => w.id !== selectedWariantId);\n filteredOferty.push(oferta)\n }\n filteredOferty = filteredOferty.filter(o => o.warianty.length > 0);\n\n if (!filteredOferty.length) {\n return Nie złożono innych ofert{isMultiply ? ` do części: ${zamowienie.tytul}` : ''}\n }\n\n return (\n \n Pozostałe oferty{isMultiply ? ` do części: \"${zamowienie.tytul}\"` : ''}\n Liczba wyników: {filteredOferty.length}\n {filteredOferty.sort(this.sortOferty).map(o => this.renderOfertaBox(o, o.warianty))}\n \n )\n }\n\n renderOfertaBox(oferta, warianty, selected=false) {\n const { borderedDashedSectionStyle, labelStyle } = pdfStyles;\n const danePodmiotu = oferta.danePodmiotu;\n const adres = danePodmiotu.adres;\n return (\n \n {oferta.isRefused && Odrzucona}\n Nazwa podmiotu\n {danePodmiotu.nazwa}\n Miejscowość\n {`${adres.miejscowosc}${adres.kraj === 'Polska' ? '' : ', ' + adres.kraj}`}\n {this.renderCena(warianty)}\n \n )\n }\n\n renderKomentarz() {\n if (!(this.props.rozstrzygniecie.komentarz || '').length) { return null }\n return (\n \n Komentarz\n {splitLineByChar(this.props.rozstrzygniecie.komentarz).map((line, i) => {line})}\n \n )\n }\n}\n\nconst styles = StyleSheet.create({\n selectedOfferStyle: {\n padding: 10,\n marginBottom: 30,\n borderWidth: 2,\n borderColor: '#666A6D'\n },\n otherOffersContainerStyle: {\n marginTop: 20\n },\n offerVariantDescrStyle: {\n paddingLeft: 10,\n marginBottom: 8\n },\n commentTextStyle: {\n whiteSpace: 'pre-line',\n }\n});\n\n\nexport { OfertyResolvedStatusPdf };\n","import React from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport { generatePdfDocument } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { ButtonCreatePdf, ButtonStyled, Container, GridCustom, Text } from '../../common';\nimport { ZalacznikiSelect } from '../common';\nimport { FormRozstrzygniecie } from '../ogloszenia';\nimport { OfertyOwnerClosedStatus } from './OfertyOwnerClosedStatus';\nimport { OfertyResolvedStatusPdf } from './OfertyResolvedStatusPdf';\n\n\nclass OfertyOwnerResolvedStatus extends OfertyOwnerClosedStatus {\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n const serializedData = getSerializedObject(data, {toFixAttributes: ['cena', ]});\n\n if (this.props.setAdvertisementManagerType && data.extra && Object.keys(data.extra).length) {\n this.props.setAdvertisementManagerType({\n isAuthor: data.extra.is_advertiser, isAdmin: data.extra.is_admin\n });\n }\n\n this.setState(\n {pakietyOfert: serializedData.pakietyOfert},\n () => {\n this.xhrFetch = fetchApi(\n `/api/announcements/${this.props.ogloszenie.ogloszenie.id}/settlement`,\n 'GET',\n {},\n {},\n this.handleFetchSettlementSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n }\n );\n }\n\n handleFetchIncorrectStatus(status) {\n this.xhrFetch = null;\n this.setState({\n initializingOn: false,\n fetchError: this.getFetchIncorrectStatusError(status),\n });\n }\n\n handleFetchSettlementSuccess = (data) => {\n this.setState({\n initializingOn: false,\n rozstrzygniecie: getSerializedObject(data).rozstrzygniecie,\n })\n }\n\n handleCreatePdf = () => {\n const { ogloszenie } = this.props;\n this.setState(\n {pdfCreatingOn: true},\n () => generatePdfDocument(\n ,\n `rozstrzygniecie_ogloszenia_${ogloszenie.ogloszenie.id}.pdf`,\n this.callbackPfdCreated\n )\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return Object.assign({}, super.getAdditionalState(props), {pdfCreatingOn: false})\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać danych rozstrzygnięcia. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych rozstrzygnięcia. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n checkRefused(offerId) {\n let isRefused = false;\n for (let z of this.state.rozstrzygniecie.zamowieniaNodes) {\n for (let o of z.oferty) {\n if (o.id === offerId) {\n isRefused = o.isRefused;\n break\n }\n }\n }\n return isRefused\n }\n\n // rendering\n\n renderElements() {\n const isAdvertisementOwner = this.props.isAdvertisementOwner;\n if (isAdvertisementOwner && this.state.formOn) {\n return \n }\n const onlyAdmin = this.props.onlyAdmin;\n return (\n <>\n {isAdvertisementOwner && this.renderPdfButton()}\n {onlyAdmin && this.renderMyOfferButton()}\n {this.renderContent()}\n {this.renderZalacznikiRozstrzygniecia()}\n {this.renderKomentarz()}\n {isAdvertisementOwner && (\n \n this.setState({formOn: true})}>\n Zmień rozstrzygnięcie\n \n \n )}\n {onlyAdmin && this.state.previewOn && this.renderPreview()}\n \n )\n }\n\n renderPdfButton() {\n return (\n \n \n Wydruk listy ofert Pobierz plik PDF ofert z rozstrzygnięciem ogłoszenia {this.props.ogloszenie.tytul}\n \n \n )\n }\n\n renderZamowienie(zamowienie, isMultiply) {\n return (\n
    \n
    \n Rozstrzygnięcie{isMultiply && ` części:`}\n {isMultiply && {zamowienie.tytul}}\n
    \n {this.renderSelectedOferta(zamowienie, isMultiply)}\n {this.renderOferty(zamowienie, isMultiply)}\n
    \n )\n }\n\n renderSelectedOferta(zamowienie, isMultiply) {\n const zamowienieFromRozstrzygniecie = (\n this.state.rozstrzygniecie.zamowieniaNodes || []).filter(\n z => z.id === zamowienie.zamowienieNode.id)[0];\n if (!zamowienieFromRozstrzygniecie || !zamowienieFromRozstrzygniecie.wybranyWariant) {\n return {isMultiply ? `Dla części: \"${zamowienie.tytul}\" nie` : 'Nie'} wybrano żadnej oferty.\n }\n\n const selectedWariantId = zamowienieFromRozstrzygniecie.wybranyWariant.id;\n let selectedPakietOfert = null;\n let selectedOferta = null;\n let selectedWariant = null;\n for (let po of this.state.pakietyOfert) {\n for (let o of po.oferty) {\n for (let w of o.warianty) {\n if (w.id === selectedWariantId) {\n selectedPakietOfert = po;\n selectedOferta = o;\n selectedWariant = w;\n break\n }\n }\n if (selectedWariant !== null) {\n break\n }\n }\n if (selectedWariant !== null) {\n break\n }\n }\n\n if (!selectedWariant) {\n return Wystąpił nieoczekiwany błąd.\n }\n\n let header;\n if (isMultiply) {\n header = `Dla części: \"${zamowienie.tytul}\" została wybrana oferta`;\n } else {\n header = 'Została wybrana oferta';\n }\n\n const oferta_ = {\n id: selectedOferta.id,\n danePodmiotu: selectedPakietOfert.danePodmiotu,\n warianty: [selectedWariant, ],\n zalaczniki: selectedPakietOfert.zalaczniki,\n pakietId: selectedPakietOfert.id\n }\n const userId = this.props.user.id;\n const showMyOfferLabel = this.props.isAdvertisementOwner ? false : (\n !!userId ? selectedPakietOfert.ktoUtworzyl.id === userId : false);\n\n return (\n
    \n {header}\n {this.renderOfertaBox(oferta_, showMyOfferLabel, true)}\n
    \n )\n }\n\n renderOferty(zamowienie, isMultiply) {\n let oferty = [];\n for (let po of this.state.pakietyOfert) {\n for (let o of po.oferty) {\n if (o.zamowienieNode.id === zamowienie.zamowienieNode.id) {\n let oferta = Object.assign({}, o, {\n oferentId: po.ktoUtworzyl.id,\n danePodmiotu: po.danePodmiotu,\n zalaczniki: po.zalaczniki,\n isRefused: this.checkRefused(o.id),\n pakietId: po.id\n });\n oferty.push(oferta);\n break\n }\n }\n }\n\n if (!oferty.length) {\n return Nie złożono żadnej oferty{isMultiply ? ` do części: ${zamowienie.tytul}` : ''}\n }\n\n // exclude selected offer\n\n const selectedWariantId = ((this.state.rozstrzygniecie.zamowieniaNodes || []).filter(\n z => z.id === zamowienie.zamowienieNode.id)[0] || {}).wybranyWariant.id;\n\n let filteredOferty = [];\n for (let o of oferty) {\n let oferta = Object.assign({}, o);\n oferta.warianty = o.warianty.filter(w => w.id !== selectedWariantId);\n filteredOferty.push(oferta)\n }\n filteredOferty = filteredOferty.filter(o => o.warianty.length > 0);\n\n if (!filteredOferty.length) {\n return Nie złożono innych ofert{isMultiply ? ` do części: ${zamowienie.tytul}` : ''}\n }\n\n return (\n <>\n Pozostałe oferty{isMultiply ? ` do części: \"${zamowienie.tytul}\"` : ''}\n Liczba wyników: {filteredOferty.length}\n \n {filteredOferty.sort(this.sortOferty).map(o => this.renderOferta(o))}\n \n \n )\n }\n\n renderZalacznikiRozstrzygniecia() {\n const zalaczniki = this.state.rozstrzygniecie.zalaczniki;\n return (\n \n Załączniki\n {zalaczniki.length > 0 && Liczba wyników: {zalaczniki.length}}\n \n \n )\n }\n\n renderKomentarz() {\n if (!(this.state.rozstrzygniecie.komentarz || '').length) { return null }\n return (\n \n Komentarz\n {this.state.rozstrzygniecie.komentarz}\n \n )\n }\n}\n\n\nexport { OfertyOwnerResolvedStatus };\n","import React from 'react';\n\nimport { OfertyOwnerResolvedStatus } from './OfertyOwnerResolvedStatus';\n\n\nclass OfertyOffererResolvedStatus extends OfertyOwnerResolvedStatus {\n showAttachments = false;\n showFullVariants = false;\n\n // rendering\n\n renderElements() {\n return (\n <>\n {this.renderMyOfferButton()}\n {this.renderContent()}\n {this.renderKomentarz()}\n {this.state.previewOn && this.renderPreview()}\n \n )\n }\n}\n\n\nexport { OfertyOffererResolvedStatus };\n","import React from \"react\";\n\nimport { translateErrorMessage } from \"../../../serializers\";\nimport { Box, GridCustom, Text, ButtonStyled } from \"../../common\";\nimport { BaseComponent } from \"../common\";\nimport { BadgeAnchor, Badge } from \"@rmwc/badge\";\nimport \"@rmwc/badge/badge.css\";\nimport { fetchApi } from \"../../../fetch\";\nimport { MenuContext } from \"../../../context/menuContext\";\n\nclass OfertyOwnerPublishedStatus extends BaseComponent {\n\n static contextType = MenuContext;\n\n // handlers\n\n handleFetchSuccess(data) {\n super.handleFetchSuccess();\n this.setState({\n initializingOn: false,\n offersCount: data.offersets.length,\n offers: data.offersets,\n });\n }\n\n handleRemoveBadge = (id) => {\n fetchApi(\n `/api/badge/offerset/${id}`,\n \"DELETE\",\n {},\n {},\n () => {\n this.fetchInitialData();\n this.props.refresh();\n this.context.refreshBadges();\n }\n );\n };\n\n // helpers\n\n getAdditionalState(props) {\n return { offersCount: 0 };\n }\n\n getFetchUrl() {\n return `/api/offerset/announcement/${this.props.ogloszenie.ogloszenie.id}/list`;\n }\n\n getFetchError(message) {\n return `Nie udało się pobrać danych ofert. ${translateErrorMessage(\n message\n )}`;\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się pobrać danych ofert. Wystąpił nieoczekiwany błąd o kodzie ${status}.`;\n }\n\n // rendering\n\n renderContent() {\n return (\n <>\n \n Lista złożonych ofert\n \n \n Liczba wyników: {this.state.offersCount}\n \n {this.renderList()}\n \n );\n }\n\n renderList() {\n if (!this.state.offersCount) {\n return null;\n }\n return (\n <>\n \n Podgląd ofert będzie dostępny po zamknięciu ogłoszenia.\n \n \n {[...this.state.offers].map((offer, index) => (\n \n \n \n \n \n {offer.badge && (\n \n this.handleRemoveBadge(offer.id)}\n >\n USUŃ OZNACZENIE JAKO NOWE\n \n \n \n )}\n \n ))}\n \n \n );\n }\n}\n\nexport { OfertyOwnerPublishedStatus };\n","import React from 'react';\nimport { Checkbox } from '@rmwc/checkbox';\n\nimport {\n getLastTemporaryIdFromList,\n reformatDanePodmiotu,\n} from '../../../helpers';\nimport {\n getSerializedObject,\n getSerializedObjectErrorsFormServer,\n translateErrorMessage\n} from '../../../serializers';\nimport {\n Box,\n ButtonStyled,\n Container,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n GridCellCustom,\n MenuBasic,\n Steps,\n Text,\n TextFieldCustom,\n} from '../../common';\nimport { FormBaseComponent, Zalaczniki } from '../common';\nimport { FormOfertaOgloszeniodawca, OfertaPreview } from '../oferty';\nimport { FormCzescRozstrzygniecia } from './FormCzescRozstrzygniecia';\n\n\nconst MAX_ATTACHMENTS_NUMBER = 20;\n\n\nclass FormRozstrzygniecie extends FormBaseComponent {\n\n componentDidMount() {\n window.scrollTo(0, 0);\n this.handleSetCurrentMenuLink(0);\n\n if (this.props.isNew) {\n this.setState({initializingOn: false});\n } else {\n this.fetchInitialData();\n }\n }\n\n // handlers\n handleFetchSuccess(data) {\n this.xhrFetch = null;\n data = getSerializedObject(data, {addTemporaryId: true}).rozstrzygniecie;\n for (let z of data.zamowieniaNodes) {\n z.wybranyWariant = z.wybranyWariant.id || null;\n }\n this.setState(Object.assign(\n data,\n {initializingOn: false})\n );\n }\n\n handleSetCurrentMenuLink(id) {\n this.setState(prevState =>\n {\n const menuLinks = prevState.menuLinks;\n let next = null, prev=null, name=null;\n for (let i=0; i < menuLinks.length; i++) {\n if (id === menuLinks[i].id) {\n name = menuLinks[i].name;\n if (i > 0) {\n prev = {\n label: menuLinks[i - 1].label,\n id: menuLinks[i - 1].id,\n };\n }\n if (i < menuLinks.length - 1) {\n next = {\n label: menuLinks[i + 1].label,\n id: menuLinks[i + 1].id,\n };\n }\n }\n }\n return {\n currentMenuLink: {id, name, next, prev}\n }\n }\n );\n }\n\n handleCloseForm = () => {\n this.setState({offerFormOn: false, editingOffersetId: null});\n }\n\n handleSubmitOfertaForm = (data, isNew) => {\n data = getSerializedObject(data).pakietOfert;\n data.danePodmiotu = reformatDanePodmiotu(data.danePodmiotu);\n // set dict of orderNode and offer ids\n let idsDict = {};\n for (let o of data.oferty) {\n idsDict[o.zamowienieNode.id] = o.id;\n }\n this.setState(\n prevState => {\n if (isNew) {\n return {\n offerFormOn: false,\n pakietyOfert: [...prevState.pakietyOfert, data],\n zamowieniaNodes: prevState.zamowieniaNodes.map(z => {\n if (idsDict[z.id]) {\n const ofertaId = idsDict[z.id];\n z.oferty = [...z.oferty, {id: ofertaId, temporaryId: ofertaId, isRefused: false}]\n }\n return z\n }),\n }\n } else {\n return {\n offerFormOn: false,\n editingOffersetId: null,\n pakietyOfert: prevState.pakietyOfert.map(po => {\n if (po.id === data.id) {\n return data\n }\n return po\n }),\n }\n }\n }\n );\n }\n\n handleCloseOfferPreview = () => {\n this.setState({offerPreviewOn: false, previewedOfferId: null});\n }\n\n handleAddZalacznik = (data) => {\n data = data || {};\n\n this.setState(prevState => ({\n zalaczniki: [...prevState.zalaczniki, {\n id: null,\n temporaryId: getLastTemporaryIdFromList(prevState.zalaczniki) + 1,\n jestProtokolem: false,\n nazwa: '',\n plik: {\n id: null,\n uri: '',\n nazwa: '',\n dataUtworzenia: '',\n ktoUtworzyl: {imie: '', nazwisko: ''},\n },\n plikDoWgrania: data.plikDoWgrania || null,\n }],\n }))\n }\n\n handleSaveZalacznikAttributes = (temporaryId, data) => {\n this.setState(prevState => {\n return {zalaczniki: prevState.zalaczniki.map(z => {\n if (z.temporaryId === temporaryId) {\n return Object.assign(z, data)\n } else {\n return z\n }\n })}\n });\n }\n\n handleRemoveZalacznik = (temporaryId) => {\n this.setState(prevState => {\n return {zalaczniki: prevState.zalaczniki.filter(z => z.temporaryId !== temporaryId)}\n });\n }\n\n handleChangeZalacznikIsProtocol = (checked, temporaryId) => {\n this.setState(prevState => {\n let zalaczniki = [];\n for (let z of prevState.zalaczniki) {\n if (z.temporaryId === temporaryId) {\n z.jestProtokolem = checked;\n } else {\n if (checked) {\n z.jestProtokolem = false;\n }\n }\n zalaczniki.push(z);\n }\n return {zalaczniki: zalaczniki}\n });\n }\n\n handleNoOfferSelectedChange = (checked, zamowienieId) => {\n this.setState(prevState => {\n return {zamowieniaNodes: prevState.zamowieniaNodes.map(z => {\n if (z.id === zamowienieId) {\n z.zadnaOfertaWybrana = checked;\n if (checked) {\n z.wybranyWariant = null;\n }\n }\n return z\n })}\n });\n }\n\n handleRefuseOffer = (zamowienieId, ofertaId) => {\n this.setOfferRefuseValue(zamowienieId, ofertaId, true);\n }\n\n handleRestoreOffer = (zamowienieId, ofertaId) => {\n this.setOfferRefuseValue(zamowienieId, ofertaId, false);\n }\n\n handleSelectWariant = (checked, zamowienieNode, wariantId) => {\n this.setState(prevState => ({\n zamowieniaNodes: prevState.zamowieniaNodes.map(z => {\n if (z.id === zamowienieNode) {\n if (checked) {\n z.wybranyWariant = wariantId;\n z.zadnaOfertaWybrana = false;\n } else {\n z.wybranyWariant = null;\n }\n }\n return z\n })\n }));\n }\n\n handleRemoveOfertaZewnetrzna = (pakietOfertId) => {\n this.setState(prevState => {\n // get variants ids for offerset\n let variantsIds = [];\n for (let po of prevState.pakietyOfert) {\n if (po.id === pakietOfertId) {\n for (let o of po.oferty) {\n variantsIds = [...variantsIds, ...o.warianty.map(w => w.id)];\n }\n break\n }\n }\n return {\n ofertyDoUsuniecia: [...prevState.ofertyDoUsuniecia, pakietOfertId],\n zamowieniaNodes: prevState.zamowieniaNodes.map(z => {\n if (variantsIds.includes(z.wybranyWariant)) {\n z.wybranyWariant = null;\n }\n return z\n }),\n }\n });\n }\n\n handleFetchSaveSuccess(data) {\n this.xhrFetchSave = null;\n window.location.reload();\n }\n\n handleShowSaveErrors = (errors) => {\n this.xhrFetchSave = null;\n const errors_ = getSerializedObjectErrorsFormServer(\n errors,\n this.getNotSerializedDataForSaving(),\n ['ofertyDoUsuniecia', 'zamowieniaNodes', 'oferty', 'zalaczniki']\n );\n this.setState(\n prevState => ({\n savingOn: false,\n saveBtnText: this.saveBtnDefaultText,\n errors: errors_,\n errorsDialogOn: Object.values(errors_.zamowieniaNodes).filter(\n z => (z.zadnaOfertaWybrana || []).length > 0).length > 0,\n })\n );\n }\n\n // helpers\n\n preState(props) {\n // it has to be here, because 'getMenuLinks' function needs it\n this.handleSetCurrentMenuLink = this.handleSetCurrentMenuLink.bind(this);\n }\n\n formPreState(props) {\n this.saveBtnDefaultText = 'Publikuj rozstrzygnięcie';\n }\n\n getAdditionalState(props) {\n\n const getOfertyByZamowienieNodeId = (zamowienieNodeId) => {\n let oferty = [];\n for (let po of this.props.pakietyOfert) {\n for (let o of po.oferty) {\n if (zamowienieNodeId === o.zamowienieNode.id) {\n oferty.push({id: o.id, temporaryId: o.id, isRefused: false});\n }\n }\n }\n return oferty\n }\n\n const zamowienia = this.props.ogloszenie.zamowienia;\n return {\n isNew: props.isNew,\n offerFormOn: false,\n editingOffersetId: null,\n offerPreviewOn: false,\n previewedOfferId: null,\n errorsDialogOn: false,\n menuLinks: this.getMenuLinks(zamowienia),\n currentMenuLink: {\n id: null,\n name: null,\n next: null,\n prev: null,\n },\n pakietyOfert: [...this.props.pakietyOfert],\n nieMaWiecejOfert: false,\n ofertyDoUsuniecia: [],\n zalaczniki: [],\n komentarz: '',\n zamowieniaNodes: zamowienia.map(z => ({\n id: z.zamowienieNode.id,\n temporaryId: z.id,\n zadnaOfertaWybrana: false,\n wybranyWariant: null,\n oferty: getOfertyByZamowienieNodeId(z.zamowienieNode.id),\n })),\n };\n }\n\n getFetchUrl() {\n return `/api/announcements/${this.props.ogloszenie.ogloszenie.id}/settlement`\n }\n\n getFetchError(message) {\n message = translateErrorMessage(message);\n if (this.state.isNew) {\n return `Nie udało się pobrać danych do rozstrzygnieca ogłoszenia. ${message}`\n }\n return `Nie udało się pobrać danych do rozstrzygnieca ogłoszenia. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n if (this.state.isNew) {\n return `Podczas pobierania danych do rozstrzygnieca ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}`\n }\n return `Podczas pobierania danych do rozstrzygnieca ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n getMenuLinks(zamowienia) {\n let index = 0;\n let links = [\n {name: 'offers_completing', id: index++, label: 'Kompletowanie ofert', onClick: this.handleSetCurrentMenuLink},\n ];\n for (let z of zamowienia) {\n links.push({name: z.id, id: index, label: `Oferty${zamowienia.length > 1 ? ' do części ' + index : ''}`, onClick: this.handleSetCurrentMenuLink});\n index++;\n }\n links.push({name: 'summary', id: index, label: 'Podsumowanie', onClick: this.handleSetCurrentMenuLink});\n return links\n }\n\n setOfferRefuseValue(zamowienieId, ofertaId, isRefused) {\n this.setState(prevState => {\n let wariantIds = [];\n if (isRefused) {\n // get ids of variants for the offer to unselect if selected\n for (let po of prevState.pakietyOfert) {\n for (let o of po.oferty) {\n if (o.id === ofertaId) {\n wariantIds = o.warianty.map(w => w.id);\n }\n }\n }\n }\n\n // get previously selected wariant to check if it hasn't been already refused\n let prevWybranyWariant = null;\n for (let z of prevState.zamowieniaNodes) {\n if (z.id === zamowienieId) {\n prevWybranyWariant = z.wybranyWariant;\n }\n }\n\n return {\n zamowieniaNodes: prevState.zamowieniaNodes.map(z => {\n if (z.id === zamowienieId) {\n z.oferty = z.oferty.map(o => {\n if (o.id === ofertaId) {\n o.isRefused = isRefused;\n }\n return o\n });\n z.wybranyWariant = isRefused && wariantIds.includes(prevWybranyWariant) ? null : prevWybranyWariant;\n }\n return z\n }),\n }\n });\n }\n\n getSaveUrl() {\n return `/api/announcements/${this.props.ogloszenie.ogloszenie.id}/resolve`\n }\n\n getSaveMethod() {\n return this.props.isNew ? 'POST' : 'PUT'\n }\n\n getDataForSaving() {\n return getSerializedObject(\n this.getNotSerializedDataForSaving(),\n {toServer: true, removeTemporaryId: true}\n )\n }\n\n getNotSerializedDataForSaving() {\n return {\n ofertyDoUsuniecia: this.state.ofertyDoUsuniecia,\n zamowieniaNodes: this.state.zamowieniaNodes,\n komentarz: this.state.komentarz,\n zalaczniki: this.state.zalaczniki.map(z => ({\n id: z.id,\n temporaryId: z.temporaryId,\n nazwa: z.nazwa,\n plik: z.plik.id,\n jestProtokolem: z.jestProtokolem\n })),\n }\n }\n\n // rendering\n\n renderContent() {\n const currentMenuLinkName = this.state.currentMenuLink.name;\n return (\n <>\n \n \n \n \n \n {currentMenuLinkName === 'offers_completing' && this.renderOffersCompleting()}\n {this.props.ogloszenie.zamowienia.map(z => {\n if (currentMenuLinkName === z.id) {\n return this.renderOffers(z)\n }\n return null\n })}\n {currentMenuLinkName === 'summary' && this.renderSummary()}\n \n \n {this.state.offerFormOn && this.renderFormOferta()}\n {this.state.offerPreviewOn && this.renderOfertaPreview()}\n \n )\n }\n\n renderOffersCompleting() {\n const pakietyOfertZewnetrzne = this.state.pakietyOfert.filter(\n po => po.ktoUtworzyl.id === this.props.user.id);\n return (\n <>\n \n Jeśli masz oferty spoza Bazy Konkurencyjności, dodaj je klikając w guzik \"Dodaj ofertę, która wpłynęła innym kanałem\". Jeśli nie masz innych ofert, lub wprowadziłeś wszystkie, które wpłynęły innym kanałem, zaznacz checkbox \"Nie ma więcej ofert\".\n \n this.setState({offerFormOn: true})}\n >\n Dodaj ofertę, która wpłynęła innym kanałem\n \n \n Lista ofert złożonych poza Bazą Konkurencyjności\n Liczba wyników: {pakietyOfertZewnetrzne.length}\n \n {pakietyOfertZewnetrzne.map(oferta => this.renderOfertaZewnetrzna(oferta))}\n \n \n this.setState({nieMaWiecejOfert: event.target.checked})}\n />\n \n \n this.handleSetCurrentMenuLink(this.state.currentMenuLink.next.id)}\n />\n \n )\n }\n\n renderOfertaZewnetrzna(pakietOfert) {\n const { adres, nazwa } = pakietOfert.danePodmiotu;\n const zamowienia = this.props.ogloszenie.zamowienia;\n const isRemoved = this.state.ofertyDoUsuniecia.includes(pakietOfert.id);\n return (\n \n

    Menu więcej opcji ogłoszenia

    \n
      \n
    • \n this.setState({offerFormOn: true, editingOffersetId : pakietOfert.id})}>\n Edytuj\n \n this.handleRemoveOfertaZewnetrzna(pakietOfert.id)}>Usuń\n
    • \n
    \n \n )}\n key={pakietOfert.id}\n titleOneRow={`Oferta ${nazwa}`}\n tag=\"li\"\n >\n \n {nazwa}\n \n \n {adres.miejscowosc}{adres.kraj !== 'Polska' ? ', ' + adres.kraj : ''}\n \n {zamowienia.length > 1 && (\n \n {(pakietOfert.oferty || []).map(o => (\n - {((o.zamowienieNode || {}).ostatniaWersja || {}).tytul}\n ))}\n \n )}\n {isRemoved ? (\n Oferta zostanie usunięta z chwilą zapisania rozstrzygnięcia.\n ) : (\n this.setState({offerPreviewOn: true, previewedOfferId: pakietOfert.id})}\n >Pokaż szczegóły\n )\n }\n \n )\n }\n\n renderOffers(zamowienie) {\n let offersStateDict = {};\n let wybranyWariant = null;\n for (let z of this.state.zamowieniaNodes) {\n if (z.id === zamowienie.zamowienieNode.id) {\n wybranyWariant = z.wybranyWariant;\n }\n for (let o of z.oferty) {\n offersStateDict[o.id] = o.isRefused;\n }\n }\n\n let warianty = [];\n const ofertyDoUsuniecia = this.state.ofertyDoUsuniecia;\n for (let po of this.state.pakietyOfert) {\n if (ofertyDoUsuniecia.includes(po.id)) {\n continue\n }\n for (let o of po.oferty) {\n if (o.zamowienieNode.id === zamowienie.zamowienieNode.id) {\n for (let w of o.warianty) {\n warianty.push(Object.assign({}, w, {\n nazwaOferenta: (po.danePodmiotu || {}).nazwa || '',\n isRefused: offersStateDict[o.id] || false,\n isSelected: wybranyWariant === w.id,\n ofertaId: o.id,\n zalaczniki: po.zalaczniki || [],\n }));\n }\n }\n }\n }\n\n let zadnaOfertaWybrana = false;\n for (let z of this.state.zamowieniaNodes) {\n if (z.id === zamowienie.zamowienieNode.id) {\n zadnaOfertaWybrana = z.zadnaOfertaWybrana;\n break\n }\n }\n\n return (\n \n \n Możesz odrzucić oferty, wybrać zwycięską ofertę lub zaznaczyć, że nie wybierasz żadnej oferty.\n 1}\n zadnaOfertaWybrana={zadnaOfertaWybrana}\n warianty={warianty}\n zamowienie={zamowienie}\n onNoOfferSelectedChange={this.handleNoOfferSelectedChange}\n onOfferRefuse={this.handleRefuseOffer}\n onOfferRestore={this.handleRestoreOffer}\n onWariantSelect={this.handleSelectWariant}\n />\n \n this.handleSetCurrentMenuLink(this.state.currentMenuLink.next.id)}\n onPrevClick={() => this.handleSetCurrentMenuLink(this.state.currentMenuLink.prev.id)}\n />\n \n )\n }\n\n renderSummary() {\n const formLocked = this.state.savingOn;\n const fetchSaveError = this.state.fetchSaveError;\n return (\n \n \n Podsumowanie: możesz dodać załącznik, oznaczyć wybrany załącznik jako protokół, a następnie opublikować rozstrzygnięcie.\n Podsumowanie\n {this.renderSelectedOfertyList()}\n {this.renderZalaczniki()}\n {this.renderKomentarz()}\n \n this.handleSetCurrentMenuLink(this.state.currentMenuLink.prev.id)}\n />\n \n {this.state.saveBtnText}\n \n {fetchSaveError.length > 0 && {fetchSaveError}}\n {this.state.errorsDialogOn && this.renderErrorsDialog()}\n \n )\n }\n\n renderFormOferta() {\n return (\n \n ({\n id: z.id,\n zamowienieNode: z.zamowienieNode,\n tytul: z.tytul,\n czyWariantowe: z.czyWariantowe,\n }))}\n onCloseForm={this.handleCloseForm}\n onSubmitForm={this.handleSubmitOfertaForm}\n />\n \n )\n }\n\n renderOfertaPreview() {\n if (!this.state.previewedOfferId) { return null }\n return \n }\n\n renderZalaczniki() {\n return (\n \n \n Liczba wyników: {this.state.zalaczniki.length}\n Możesz załączyć maksymalnie {MAX_ATTACHMENTS_NUMBER} plików.\n \n \n )\n }\n\n renderKomentarz() {\n const isKomentarzInvalid = (this.state.errors.komentarz || []).length > 0;\n return (\n \n \n this.setState({komentarz: event.target.value})}\n onClear={(ev) => this.setState({komentarz: ''})} />\n {isKomentarzInvalid &&
      {this.state.errors.komentarz.map((e, i) => {e})}
    }\n
    \n
    \n )\n }\n\n renderSelectedOfertyList() {\n const zamowienia = this.props.ogloszenie.zamowienia;\n if (zamowienia.length === 1) {\n return this.renderZamowienieSummary(zamowienia[0], false)\n }\n return zamowienia.map(z => this.renderZamowienieSummary(z, true))\n }\n\n renderZamowienieSummary(zamowienie, isMultiply) {\n let zamowienieFromState = null;\n for (let z of this.state.zamowieniaNodes) {\n if (z.id === zamowienie.zamowienieNode.id) {\n zamowienieFromState = z;\n }\n }\n\n if (!zamowienieFromState) {\n return this.renderUnexpectedSummaryPartError(zamowienie, isMultiply)\n }\n\n if (zamowienieFromState.zadnaOfertaWybrana) {\n return this.renderNoOfferSelected(zamowienie, isMultiply)\n }\n\n if (zamowienieFromState.wybranyWariant === null) {\n return this.renderNoChoice(zamowienie, isMultiply)\n }\n\n // get selectedWariant data\n let wybranyWariant = null;\n for (let po of this.state.pakietyOfert) {\n for (let o of po.oferty) {\n for (let w of o.warianty) {\n if (w.id === zamowienieFromState.wybranyWariant) {\n wybranyWariant = Object.assign(\n {}, w, {nazwaOferenta: po.danePodmiotu.nazwa});\n break\n }\n }\n if (wybranyWariant !== null) {\n break\n }\n }\n if (wybranyWariant !== null) {\n break\n }\n }\n\n if (wybranyWariant === null) {\n return this.renderUnexpectedSummaryPartError(zamowienie, isMultiply);\n }\n\n let info;\n if (isMultiply) {\n info = Dla części \"{zamowienie.tytul}\" została wybrana oferta;\n } else {\n info = Została wybrana oferta;\n }\n\n return (\n
    \n {info}\n \n {wybranyWariant.nazwaOferenta}\n {wybranyWariant.opis.length > 0 && (\n \n {wybranyWariant.opis}\n \n )}\n \n
    \n )\n }\n\n renderNoOfferSelected(zamowienie, isMultiply) {\n if (isMultiply) {\n return (\n
    \n Dla części \"{zamowienie.tytul}\" nie wybrano żadnej oferty.\n
    \n )\n }\n return (\n
    \n Nie wybrano żadnej oferty.\n
    \n )\n }\n\n renderNoChoice(zamowienie, isMultiply) {\n if (isMultiply) {\n return (\n
    \n Dla części \"{zamowienie.tytul}\"\n Nie dokonano wyboru\n
    \n )\n }\n return (\n
    \n Dla oferty\n Nie dokonano wyboru\n
    \n )\n }\n\n renderUnexpectedSummaryPartError(zamowienie, isMultiply) {\n if (isMultiply) {\n return (\n \n Wystąpił nieoczekiwany problem z częścią \"{zamowienie.tytul}\"\n \n )\n }\n return Wystąpił nieoczekiwany problem.\n }\n\n renderErrorsDialog() {\n const errors = this.state.errors.zamowieniaNodes || {};\n const zamowienia = this.props.ogloszenie.zamowienia;\n const isMultiply = zamowienia.length > 1;\n return (\n this.setState({errorsDialogOn: false})}\n >\n <>\n {zamowienia.map(z => {\n const zamowienieErrors = (errors[z.zamowienieNode.id] || {}).zadnaOfertaWybrana || [];\n if (zamowienieErrors.length) {\n let info;\n if (isMultiply) {\n info = Dla części \"{z.tytul}\" wystąpiły następujące błędy:;\n } else {\n info = Dla oferty wystąpiły następujące błędy:;\n }\n return (\n
    \n {info}\n {zamowienieErrors.map((e, i) => {e})}\n
    \n )\n }\n return null\n })}\n \n this.setState({errorsDialogOn: false})} primary>OK\n \n \n \n )\n }\n}\n\n\nexport { FormRozstrzygniecie };\n","import React, { Component } from 'react';\nimport { Icon } from '@rmwc/icon';\n\nimport { fetchApi } from '../../../fetch';\nimport { serializeObjectList, translateErrorMessage } from '../../../serializers';\nimport { ButtonStyled, DialogCustom, FieldWithLabel, GridCustom, Text } from '../../common';\n\n\nclass ListaWersji extends Component{\n\n constructor(props) {\n super(props);\n\n this.state ={\n initializingOn: true,\n versions: [],\n error: '',\n };\n\n this.xhrFetch = null;\n }\n\n // basic functions\n\n componentDidMount() {\n // get version list from server\n this.xhrFetch = fetchApi(\n `/api/announcements/${this.props.ogloszenieId}/versions`,\n 'GET',\n {},\n {mode: 'advertiser'},\n this.handleFetchVersionListSuccess,\n this.handleFetchVersionListError,\n this.handleFetchVersionListIncorrectStatus,\n );\n }\n\n componentWillUnmount() {\n // abort api request if exist\n if (this.xhrFetch !== null) {\n this.xhrFetch.abort();\n }\n }\n\n // handlers\n\n handleFetchVersionListSuccess = (data) => {\n this.xhrFetch = null;\n this.setState({initializingOn: false, versions: serializeObjectList(data.versions)});\n }\n\n handleFetchVersionListError = (data) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false, error: `Podczas pobierania listy wersji wystąpił nieoczekiwany błąd: ${translateErrorMessage(data.message)}`});\n }\n\n handleFetchVersionListIncorrectStatus = (status) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({initializingOn: false, error: `Podczas pobierania listy wersji wystąpił nieoczekiwany błąd o kodzie ${status}.`});\n }\n\n handleCloseDialog = () => {\n this.props.closeVersionDialog();\n }\n\n // helpers\n\n sortVersions(versions) {\n let draft = null, published = [];\n for (let v of versions) {\n if (v.status.id === this.props.roboczeStatusId) {\n draft = v;\n } else {\n published.push(v);\n }\n }\n\n // sort published versions by id\n published.sort((v1, v2) => {\n return v1.id > v2.id ? -1 : 1\n })\n\n return [draft, published]\n }\n\n // rendering\n\n render() {\n let content = null;\n const { error } = this.state;\n\n if (this.state.initializingOn) {\n content = Trwa pobieranie danych z serwera...;\n } else {\n content = error.length > 0 ? this.renderError() : this.renderVersionList();\n }\n return (\n 0) ? error : `Wszystkie wersje ogłoszenia`}\n >\n {content}\n \n )\n }\n\n renderError() {\n return (\n \n OK\n \n )\n }\n\n renderVersionList() {\n let content = null;\n if (this.state.versions.length) {\n // sort versions\n let [draft, published] = this.sortVersions(this.state.versions);\n\n const ogloszenieId = this.props.ogloszenieId;\n let currentlyVisibleMarker = (\n <>\n \n Aktualnie przeglądasz\n \n );\n\n content = (\n <>\n {this.renderDraftList(draft, currentlyVisibleMarker)}\n {published.length > 0 ? (\n \n {published.map((v, index) => (\n \n \n {parseInt(this.props.id) === v.id && currentlyVisibleMarker}\n {!v.isCreatedByAdvertiser &&\n \n Utworzona przez pracownika instytucji\n \n }\n \n ))}\n \n ) : Brak wersji opublikowanych}\n \n );\n } else {\n content = To ogłoszenie nie ma innych wersji.;\n }\n return (\n <>\n {content}\n \n Zamknij\n \n \n )\n }\n\n renderDraftList(draft, currentlyVisibleMarker) {\n if (!this.props.isAuthor && !draft) { return null }\n return (\n \n {draft !== null ? (\n \n \n {parseInt(this.props.id) === draft.id && currentlyVisibleMarker}\n \n ) : Brak wersji roboczych}\n \n )\n }\n}\n\n\nexport { ListaWersji };\n","import React, { useContext, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nimport { UserContext } from '../../../context/user-context';\nimport { isAdvertisementLocked, getUserFullName } from '../../../helpers';\nimport {useOneTimeFetchApi, usePutFetchApi} from '../../../hooks';\nimport { getSerializedObject } from '../../../serializers';\nimport { URLS } from '../../../urls/frontend';\nimport {\n ButtonStyled,\n CancelSaveButtonsRow,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\n\n\nexport const ManageAdvertisementButtons = ({\n advertisement, onChangeAdvertisementStatus\n}) => {\n\n let { data, loadingOn: initializationOn } = useOneTimeFetchApi({\n url: `/api/admin/permissions_ads_projects_enrollments/ad/${advertisement.ogloszenie.id}`,\n });\n\n const isLocked = isAdvertisementLocked(advertisement.ogloszenie.status);\n let history = useHistory();\n const [confirmDialogOn, setConfirmDialogOn] = useState(false);\n const [loadingOn, setLoadingOn] = useState(false);\n const [fetchError, setFetchError] = useState(null);\n\n function handleFetchSuccess(data) {\n setConfirmDialogOn(false);\n onChangeAdvertisementStatus(\n getSerializedObject(data).ogloszenie.status)\n }\n\n usePutFetchApi({\n url: `/api/admin/announcements/${advertisement.ogloszenie.id}/${isLocked ? 'un' : ''}lock`,\n callbackPutSuccess: handleFetchSuccess,\n loadingOn,\n setLoadingOn,\n setFetchError,\n message403error:\n `Nie masz uprawnień do ${isLocked ? 'odblokowania' : 'blokowania'}\n tego ogłoszenia.`,\n });\n\n const { permissions: userBasicPermission } = useContext(UserContext);\n\n if (initializationOn || !data) { return null}\n\n function hasPermission(parentName, name) {\n return (data.permission[parentName] || {})[name] || false\n }\n\n // what's now? If there is no base permission, return null\n if (!hasPermission('advertisementAdministration', 'searchNPreviewData')) {\n return null\n }\n\n function handleOpenConfirmDialog() {\n setFetchError(null);\n setConfirmDialogOn(true);\n }\n\n function handleCloseConfirmDialog() {\n setConfirmDialogOn(false);\n }\n\n function handleLock() {\n setLoadingOn(true);\n }\n\n function handleGoToAdvertisementPage() {\n history.push(\n URLS.advertisementsEdit.getUrl(advertisement.ogloszenie.id));\n }\n\n const {ktoUtworzyl: advertiser = {}} = advertisement.ogloszenie;\n\n function handleGoToManageUserPage() {\n history.push(URLS.usersDetails.getUrl(advertiser.id));\n }\n\n function handleFilterProjectsByUserEmail() {\n history.push(\n `${URLS.managementProjects.path}?email=${advertiser.email}&sort=type&strona=1`);\n }\n\n function handleFilterAdvertisementsByUserEmail() {\n const ADVERTISEMENTS_GET_COMMON_URL_PARAMS =\n '&sort=announcementNumber_desc&statusOgl=all&strona=1&typAdresu=all' +\n '&typNumeruIdent=all';\n history.push(\n `${URLS.managementAdvertisements.path}?email=${advertiser.email}${ADVERTISEMENTS_GET_COMMON_URL_PARAMS}`);\n }\n\n const isDraft = advertisement.ogloszenie.status.label === 'DRAFT';\n return (\n <>\n \n \n \n {isLocked || isDraft\n ? 'Widoczne tylko dla użytkowników posiadających uprawnienia do podglądu.'\n : 'Widoczne dla wszystkich.'\n }\n \n {!isDraft && (\n <>\n {hasPermission('advertisementAdministration', 'editData') && (\n \n Edytuj\n \n )}\n\n {hasPermission('advertisementAdministration', 'blocking') && (\n \n {isLocked ? 'Odblokuj' : 'Zablokuj'}\n \n )}\n \n )}\n \n \n \n {getUserFullName(advertiser)}\n {advertiser.email}\n ID {advertiser.identyfikator}\n \n
    \n {userBasicPermission.usersAndPermissionsPreviewListUsers && (\n \n Zarządzaj użytkownikiem\n \n )}\n {hasPermission('projectsEnrollmentsAdministration', 'searchNPreviewData') && (\n \n Lista projektów\n \n )}\n \n Lista ogłoszeń\n \n
    \n
    \n
    \n {confirmDialogOn && (\n \n \n {fetchError !== null && {fetchError}}\n \n )}\n \n )\n};\n","import React, { Component } from 'react';\nimport { Document, Page, StyleSheet, Text, View } from '@react-pdf/renderer';\n\nimport { splitLineByChar } from '../../../helpers';\nimport { PdfHeader } from '../../common';\nimport { pdfStyles } from '../../vars/pdfStyles';\n\n\nclass PytaniaForOgloszeniePdf extends Component {\n\n // rendering\n render() {\n const { numerOgloszenia, tytulOgloszenia } = this.props;\n const { labelStyle, mainPdfContainerStyle } = pdfStyles;\n\n return (\n \n \n \n \n Ogłoszenie nr {numerOgloszenia}\n {tytulOgloszenia}\n {this.renderQuestionsList()}\n \n \n \n )\n }\n\n renderQuestionsList() {\n const { pytania } = this.props;\n const { textHeaderStyle, textInfoStyle } = pdfStyles;\n\n if (pytania.length >= 1) {\n return (\n <>\n Lista opublikowanych pytań i odpowiedzi\n Liczba wyników: {pytania.length}\n {pytania.map(q => this.renderQuestion(q))}\n \n )\n }\n\n return Nie zadano żadnego pytania.\n }\n\n renderAnswer(question) {\n const { odpowiedz } = question;\n\n if (odpowiedz) {\n const { status } = question;\n\n let answerLabel = '';\n if (status.label === 'PUBLISHED') {\n answerLabel = 'Udzielono odpowiedzi';\n } else if (status.label === 'DRAFT') {\n answerLabel = 'Robocza wersja odpowiedzi';\n }\n\n return (\n \n {answerLabel}\n {splitLineByChar(odpowiedz.tresc).map((line, i) => {line})}\n \n )\n }\n\n return Nie udzielono odpowiedzi;\n }\n\n renderQuestion(question) {\n const { dataOpublikowania, dataUtworzenia, id, jestAutorem, numer, tresc } = question;\n\n return (\n \n {jestAutorem && Moje pytanie}\n Pytanie numer {numer}, data wysłania {dataUtworzenia}{dataOpublikowania && `, data opublikowania ${dataOpublikowania}`}\n {splitLineByChar(tresc).map((line, i) => {line})}\n {this.renderAnswer(question)}\n \n )\n }\n\n}\n\nconst styles = StyleSheet.create({\n myLabelStyle: {\n width: 70,\n borderBottomWidth: 2,\n borderBottomColor: '#666A6D',\n color: '#666A6D',\n textTransform: 'uppercase',\n fontSize: 10,\n fontWeight: 700,\n },\n questionContainerStyle: {\n paddingVertical: 10,\n marginBottom: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#666A6D'\n },\n answerContainerStyle: {\n paddingLeft: 20\n }\n});\n\n\nexport { PytaniaForOgloszeniePdf };\n","import React from 'react';\n\nimport { generatePdfDocument } from '../../../helpers';\nimport { getSerializedObject } from '../../../serializers';\nimport { ButtonCreatePdf, GridCustom } from '../../common';\nimport { BaseComponent } from '../common';\nimport { PytaniaForOgloszeniePdf } from './PytaniaForOgloszeniePdf';\n\n\nclass BasePytaniaForOgloszenieWidthPdf extends BaseComponent {\n\n // handlers\n\n handleFetchSuccess(data) {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: '',\n initializingOn: false,\n pytania: getSerializedObject(data).pytania,\n });\n }\n\n handleCreatePdf = () => {\n const { ogloszenie, tytul } = this.props.ogloszenie;\n\n this.setState(\n {pdfCreatingOn: true},\n () => generatePdfDocument(\n ,\n `pytania_do_ogloszenia_nr_${ogloszenie.numer}.pdf`,\n this.callbackPfdCreated\n )\n );\n }\n\n // helpers\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n getFetchUrl() {\n return `/api/question/announcement/${this.props.ogloszenie.ogloszenie.id}`\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się pobrać pytań dla tego ogłoszenia. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Podczas pobierania pytań dla tego ogłoszenia wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n renderPrintButton() {\n return (\n \n \n Wydruk listy pytań do ogłoszenia {this.props.ogloszenie.tytul}\n \n \n )\n }\n}\n\nexport { BasePytaniaForOgloszenieWidthPdf };\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedObject,\n getSerializedObjectErrorsFormServer,\n translateErrorMessage,\n} from '../../../serializers';\n\nimport {\n ButtonStyled,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom,\n} from '../../common';\n\n\nclass FormOdpowiedz extends Component {\n constructor(props) {\n super(props);\n const { pytanie } = this.props;\n this.state = {\n id: pytanie.odpowiedz.id || '',\n tresc: pytanie.odpowiedz.tresc || '',\n pytanieTresc: pytanie.tresc,\n savingOn: false,\n fetchError: '',\n errors: {},\n isNew: !pytanie.odpowiedz.id\n };\n }\n\n handleSaveDraft = () => this.handleSave();\n\n handleSavePublished = () => this.handleSave(true);\n\n handleSave = (published=false) => {\n this.setState(\n {savingOn: true},\n () => {\n // Save edited question and add/edit answer\n this.xhrSave = fetchApi(\n `/api/question/${this.props.pytanie.id}${published ? '?mode=publish' : ''}`,\n 'PUT',\n {},\n getSerializedObject(this.getData(), { toServer: true }),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n this.handleShowSaveErrors,\n );\n }\n )\n }\n\n handleFetchSaveSuccess = (data) => {\n this.xhrSave = null;\n this.props.onUpdate(\n this.props.pytanie.id,\n getSerializedObject(data).pytanie\n );\n }\n\n handleFetchSaveError = (data) => {\n this.xhrSave = null;\n\n this.setState({\n fetchError: translateErrorMessage(data.message),\n savingOn: false,\n });\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrSave = null;\n\n this.setState({\n fetchError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n savingOn: false,\n });\n }\n\n handleShowSaveErrors = (errors) => {\n this.xhrSave = null;\n\n this.setState({\n errors: getSerializedObjectErrorsFormServer(errors, this.getData()),\n savingOn: false,\n });\n }\n\n getData(){\n return {\n tresc: this.state.pytanieTresc,\n odpowiedz: {tresc: this.state.tresc},\n }\n }\n\n render() {\n const { onCloseForm } = this.props;\n const {\n dataOpublikowania,\n dataUtworzenia,\n numer\n } = this.props.pytanie;\n\n const {\n errors,\n fetchError,\n pytanieTresc,\n savingOn,\n tresc\n } = this.state;\n\n const isTrescInvalid = ((errors.odpowiedz || {}).tresc || []).length > 0;\n const isPytanieTrescInvalid = (errors.tresc || []).length > 0;\n const isFormInvalid = isTrescInvalid || isPytanieTrescInvalid;\n\n let questionLabel = `Pytanie nr ${numer}, data wysłania ${dataUtworzenia}`;\n\n if (dataOpublikowania) {\n questionLabel += `, data opublikowania ${dataOpublikowania}`\n }\n\n return (\n \n <>\n {questionLabel}\n \n this.setState({pytanieTresc: ''})}\n onChange={(ev) => this.setState({pytanieTresc: ev.target.value})}\n textarea\n value={pytanieTresc} />\n {isPytanieTrescInvalid &&
      {errors.tresc.map((e, i) => {e})}
    }\n
    \n \n this.setState({tresc: ''})}\n onChange={(ev) => this.setState({tresc: ev.target.value})}\n textarea\n value={tresc} />\n {isTrescInvalid &&
      {errors.odpowiedz.tresc.map((e, i) => {e})}
    }\n
    \n {fetchError.length > 0 && {fetchError}}\n \n \n \n Anuluj\n \n {(this.props.pytanie.status.label !== 'PUBLISHED') && (\n \n Zapisz wersję roboczą\n \n ) }\n \n \n Opublikuj\n \n \n {isFormInvalid && Formularz zawiera błędy.}\n \n \n )\n }\n}\n\nexport { FormOdpowiedz };\n","import React, { Component } from 'react';\n\nimport { fetchApi } from '../../../fetch';\nimport {\n getSerializedErrorsFromServer,\n getSerializedObject,\n translateErrorMessage,\n} from '../../../serializers';\n\nimport {\n ButtonStyled,\n DialogCustom,\n FieldWithLabel,\n GridCustom,\n Text,\n TextFieldCustom,\n} from '../../common';\n\n\nclass FormPytanie extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n tresc: '',\n savingOn: false,\n fetchError: '',\n errors: {},\n }\n }\n\n handleSave = () => {\n this.setState(\n {savingOn: true},\n () => {\n // save object on server\n this.xhrSave = fetchApi(\n '/api/question',\n 'POST',\n {},\n getSerializedObject(\n {\n tresc: this.state.tresc,\n ogloszenie: this.props.advertisementId,\n },\n {toServer: true}\n ),\n this.handleFetchSaveSuccess,\n this.handleFetchSaveError,\n this.handleFetchSaveIncorrectStatus,\n this.handleShowSaveErrors,\n );\n }\n )\n }\n\n handleFetchSaveSuccess = (data) => {\n this.xhrSave = null;\n this.props.onAddQuestion(getSerializedObject(data).pytanie);\n }\n\n handleFetchSaveError = (data) => {\n this.xhrSave = null;\n\n this.setState({\n fetchError: translateErrorMessage(data.message),\n savingOn: false,\n });\n }\n\n handleFetchSaveIncorrectStatus = (status) => {\n this.xhrSave = null;\n\n this.setState({\n fetchError: `Wystąpił nieoczekiwany błąd o kodzie ${status}.`,\n savingOn: false,\n });\n }\n\n handleShowSaveErrors = (errors) => {\n this.xhrSave = null;\n\n this.setState({\n errors: getSerializedErrorsFromServer(errors),\n savingOn: false,\n });\n }\n\n render() {\n const { onCloseForm } = this.props;\n const { errors, fetchError, savingOn, tresc } = this.state;\n const isTrescInvalid = (errors.tresc || []).length > 0;\n\n return (\n \n <>\n \n this.setState({tresc: ''})}\n onChange={(ev) => this.setState({tresc: ev.target.value})}\n maxLength={2000}\n value={tresc}\n textarea />\n {isTrescInvalid &&
      {errors.tresc.map((e, i) => {e})}
    }\n
    \n {fetchError.length > 0 && {fetchError}}\n \n \n Anuluj\n \n \n {savingOn ? 'Wysyłam...' : 'Zadaj pytanie'}\n \n \n \n \n )\n }\n}\n\nexport { FormPytanie };\n","import React, { Component } from \"react\";\nimport { Icon } from \"@rmwc/icon\";\n\nimport {\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text,\n} from \"../../common\";\nimport { BadgeAnchor, Badge } from \"@rmwc/badge\";\nimport \"@rmwc/badge/badge.css\";\nimport { fetchApi } from \"../../../fetch\";\nimport { MenuContext } from \"../../../context/menuContext\";\n\nclass Pytanie extends Component {\n static contextType = MenuContext;\n\n // handlers\n\n handleAnswer = (e) => {\n this.props.onClickAnswer(this.props.question.id);\n e.currentTarget.blur();\n };\n\n handleRemoveBadge = () => {\n fetchApi(\n `/api/badge/question/${this.props.question.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n this.props.reloadAnnouncement();\n }\n );\n };\n\n // rendering\n render() {\n const { jestAutorem, tresc, trescOryginalna, badge } = this.props.question;\n const { refreshBadges } = this.context;\n\n return (\n \n {jestAutorem && !this.props.noAuthorLabel && (\n Moje pytanie\n )}\n \n {trescOryginalna && trescOryginalna !== tresc && (\n <>\n \n Zmieniono treść pytania. Oryginalna treść:\n \n \n {trescOryginalna}\n \n \n )}\n \n {trescOryginalna && trescOryginalna !== tresc && (\n Wyświetlana treść: \n )}\n {tresc || \"\"}\n \n \n {this.renderOdpowiedz()}\n {this.props.allowAnswer && (\n {this.renderPytanieButton()}\n )}\n {badge && (\n \n \n {\n this.handleRemoveBadge();\n refreshBadges();\n }}\n primary\n icon=\"check\"\n >\n USUŃ OZNACZENIE JAKO NOWE\n dla pytania {this.renderPytanieLabel()}\n \n \n \n \n )}\n \n );\n }\n\n renderPytanieLabel() {\n const { dataOpublikowania, dataUtworzenia, numer, status } =\n this.props.question;\n\n let questionLabel = `Pytanie numer ${numer}, data wysłania ${dataUtworzenia}`;\n\n if (status.label === \"PUBLISHED\") {\n questionLabel += `, data opublikowania ${dataOpublikowania}`;\n }\n\n return questionLabel;\n }\n\n renderOdpowiedzLabel() {\n if (this.props.question.status.label === \"PUBLISHED\") {\n return \"Udzielono odpowiedzi\";\n } else {\n return \"Robocza wersja odpowiedzi\";\n }\n }\n\n renderOdpowiedz() {\n if (this.props.question.odpowiedz) {\n return (\n \n \n \n {this.props.question.odpowiedz.tresc}\n \n \n );\n }\n\n return Brak odpowiedzi;\n }\n\n renderPytanieButton() {\n const { status } = this.props.question;\n\n if (!this.props.annoucementOwner) {\n return null;\n }\n switch (status.label) {\n case \"DRAFT\":\n return (\n \n Edytuj / Publikuj\n {this.renderPytanieLabel()}\n \n );\n case \"PUBLISHED\":\n return (\n \n Edytuj {this.renderPytanieLabel()}\n \n );\n case \"NEW\":\n return (\n \n Udziel odpowiedzi\n na {this.renderPytanieLabel()}\n \n );\n default:\n return null;\n }\n }\n}\n\nexport { Pytanie };\n","import React from 'react';\n\nimport { BasePytaniaForOgloszenieWidthPdf } from './BasePytaniaForOgloszenieWidthPdf';\nimport { FormOdpowiedz } from './FormOdpowiedz';\nimport { Pytanie } from './Pytanie';\nimport { Container, Text } from '../../common';\n\n\nclass PytaniaForOgloszenieAnnouncementOwner extends BasePytaniaForOgloszenieWidthPdf {\n\n handleUpdate = (id, data) => {\n const { odpowiedz, status, tresc } = data;\n this.setState(\n prevState => ({\n answeredQuestionId: null,\n pytania: prevState.pytania.map(q => {\n if (q.id === id) {\n q = Object.assign({}, q, {\n tresc: tresc,\n status: status,\n odpowiedz: {\n id: odpowiedz.id,\n tresc: odpowiedz.tresc\n }\n });\n }\n return q\n }),\n })\n );\n }\n\n handleShowAnswerForm = (id) => {\n this.setState({answerFormOn: true, answeredQuestionId: id});\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n pytania: [],\n answerFormOn: false,\n answeredQuestionId: null,\n pdfCreatingOn: false,\n }\n }\n\n // rendering\n\n renderContent() {\n const pytania = this.state.pytania;\n\n if (!pytania.length) {\n return Nie zadano żadnego pytania.\n }\n\n return (\n <>\n \n {this.renderPrintButton()}\n Zadane pytania\n Liczba wyników: {pytania.length}\n {this.state.answerFormOn && this.renderAnswerForm()}\n
      \n {pytania.map((q) => {\n return (\n \n )\n })}\n
    \n
    \n\n \n )\n }\n\n renderAnswerForm(pytanie) {\n if (this.state.answeredQuestionId === null) { return null };\n\n const answeredQuestion = this.state.pytania.filter(q => q.id === this.state.answeredQuestionId)[0]\n if ([null, undefined].includes(answeredQuestion)) { return null };\n return (\n this.setState({answerFormOn: false, answeredQuestionId: null})}\n onUpdate={this.handleUpdate} />\n )\n }\n}\n\nexport { PytaniaForOgloszenieAnnouncementOwner };\n","import React from 'react';\n\nimport { BasePytaniaForOgloszenieWidthPdf } from './BasePytaniaForOgloszenieWidthPdf';\nimport { Pytanie } from './Pytanie';\nimport { ButtonStyled, Container, Text } from '../../common';\nimport { redirectToLoginView } from '../../../helpers';\n\n\nclass PytaniaForOgloszenieAnonymous extends BasePytaniaForOgloszenieWidthPdf {\n\n // helpers\n\n getAdditionalState(props) {\n return {\n pytania: [],\n }\n }\n\n // rendering\n\n renderContent() {\n const pytania = this.state.pytania;\n const ogloszenieStatus = this.props.ogloszenie.ogloszenie.status.label;\n\n return (\n <>\n {ogloszenieStatus === 'PUBLISHED' && (\n
    \n Dodaj pytanie\n Wymaga logowania\n
    \n )}\n\n \n {this.renderPrintButton()}\n {!pytania.length ? Do tego ogłoszenia nie ma opublikowanych pytań. : (\n
    \n Opublikowane pytania i odpowiedzi\n Liczba wyników: {pytania.length}\n
      \n {pytania.map((q) => )}\n
    \n
    \n )}\n
    \n \n )\n }\n}\n\n\nexport { PytaniaForOgloszenieAnonymous };\n","import React from 'react';\n\nimport { BasePytaniaForOgloszenieWidthPdf } from './BasePytaniaForOgloszenieWidthPdf';\nimport { FormPytanie } from './FormPytanie';\nimport { Pytanie } from './Pytanie';\nimport { ButtonStyled, Container, DialogCustom, GridCustom, Text } from '../../common';\n\n\nclass PytaniaForOgloszenieLoggedIn extends BasePytaniaForOgloszenieWidthPdf {\n\n handleAddQuestion = (data) => {\n this.setState(prevState => ({\n questionFormOn: false,\n pytania: [...prevState.pytania, data],\n confirmInfo: true,\n }));\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n pytania: [],\n questionFormOn: false,\n confirmInfo: false,\n }\n }\n\n // rendering\n\n renderContent() {\n const { confirmInfo, pytania, questionFormOn, } = this.state;\n const ogloszenieStatus = this.props.ogloszenie.ogloszenie.status.label;\n const myQuestionsList = pytania.filter(q => q.jestAutorem);\n const publishedQuestionsList = pytania.filter(q => q.status.label === 'PUBLISHED');\n myQuestionsList.sort((a,b) => (a.numer > b.numer) ? 1 : ((b.numer > a.numer) ? -1 : 0));\n\n return (\n <>\n {ogloszenieStatus === 'PUBLISHED' && (\n
    \n {\n this.setState({questionFormOn: true});\n e.currentTarget.blur();\n }} >\n Dodaj pytanie\n \n
    \n )}\n \n {this.renderQuestionsList('Moje pytania', myQuestionsList, 'Nie zadałeś pytań do tego ogłoszenia.', true)}\n \n \n {this.renderPrintButton()}\n {this.renderQuestionsList('Lista wszystkich opublikowanych pytań i odpowiedzi', publishedQuestionsList, 'Do tego ogłoszenia nie ma opublikowanych pytań.')}\n \n {questionFormOn && this.renderQuestionForm()}\n {confirmInfo && this.renderConfirmationDialog()}\n \n )\n }\n\n renderQuestionsList(questionsListName, questionsList, noQuestionsInfo, noAuthor=false) {\n if (questionsList.length) {\n return (\n
    \n {questionsListName}\n Liczba wyników: {questionsList.length}\n
      \n {questionsList.map((q) => )}\n
    \n
    \n )\n }\n\n return {noQuestionsInfo}\n }\n\n renderQuestionForm() {\n return (\n this.setState({questionFormOn: false})}\n onAddQuestion={this.handleAddQuestion} />\n )\n }\n\n renderConfirmationDialog() {\n return (\n this.setState({confirmInfo: false})} >\n \n this.setState({ confirmInfo: false })}>OK\n \n \n )\n }\n}\n\nexport { PytaniaForOgloszenieLoggedIn };\n","import React, { Component, Fragment } from 'react';\nimport { Icon } from '@rmwc/icon';\nimport { Typography } from '@rmwc/typography';\nimport '@rmwc/icon/icon.css';\n\nimport {\n dateStringToYearMonth,\n datetimeStringToISO,\n getUserFullName,\n isNotEmpty,\n listOrEmpty,\n\tsaveFileFromApi\n} from '../../../helpers';\nimport {\n Box,\n Container,\n GridCustom,\n FieldWithLabel,\n Text,\n AuditData,\n\tButtonStyled\n} from '../../common';\n\n\nconst TYP_NUMERU_IDENTYFIKACYJNEGO = {\n 'nip': 'NIP',\n 'pesel': 'PESEL',\n 'numer_zagraniczny': 'Numer identyfikacyjny',\n}\n\n\nclass OgloszenieDetails extends Component {\n\n // base functions\n\n componentDidMount() {\n document.title = \"Baza Konkurencyjności - szczegóły ogłoszenia \" + this.props.ogloszenie.tytul;\n window.scrollTo(0, 0);\n }\n\n // helpers\n\n getPrzedmiotyZamowieniaList() {\n let przedmiotyZamowienia = [];\n for (let z of this.props.ogloszenie.zamowienia) {\n przedmiotyZamowienia = [...przedmiotyZamowienia, ...z.przedmiotyZamowienia];\n }\n return przedmiotyZamowienia\n }\n\n getHarmonogramList(przedmiotyZamowienia) {\n let harmonogramy = [];\n for (let pz of przedmiotyZamowienia) {\n if (!isNotEmpty(pz.harmonogramy, 'list')) {\n continue\n }\n let i = 1;\n for (let h of pz.harmonogramy) {\n harmonogramy.push({\n date: h.poczatekRealizacji,\n label: `Etap${i} (początek): ${pz.kategoria.nazwa || '-'} / ${pz.podkategoria.nazwa || '-'} / ${(pz.opis || '').substring(0, 100)}...`,\n key: `${pz.id}_${i}_1`,\n hasPointer: true,\n })\n harmonogramy.push({\n date: h.koniecRealizacji,\n label: `Etap${i} (koniec): ${pz.kategoria.nazwa || '-'} / ${pz.podkategoria.nazwa || '-'} / ${(pz.opis || '').substring(0, 100)}... ${h.czyWystepujePlatnoscCzesciowa ? ' / występuje płatność częściowa' : ''}`,\n key:`${pz.id}_${i}_2`,\n hasPointer: true,\n })\n i++;\n }\n }\n return harmonogramy\n }\n\n prepareChartData(harmonogramy) {\n const baseHeigth = 15;\n harmonogramy = listOrEmpty(harmonogramy);\n if (harmonogramy.length === 1) {\n harmonogramy[0]['height'] = 0;\n } else {\n const firstDate = harmonogramy[0].date;\n if (!firstDate.length) { // every date is empty\n for (let obj of harmonogramy) {\n obj['height'] = baseHeigth;\n }\n } else {\n let lastDate = '';\n for (let i = harmonogramy.length - 1; i >= 0; i--){\n if (isNotEmpty(harmonogramy[i].date)) {\n lastDate = harmonogramy[i].date;\n break\n }\n }\n\n const maxDistance = new Date(\n datetimeStringToISO(lastDate)).getTime() - new Date(\n datetimeStringToISO(firstDate)).getTime();\n const factor = (harmonogramy.length - 1) * 100;\n for (let i = 0; i < harmonogramy.length; i++) {\n const obj = harmonogramy[i];\n if (!obj.date.length) {\n obj['height'] = baseHeigth;\n } else {\n const nextObj = harmonogramy[i + 1];\n if (i < harmonogramy.length - 1 && nextObj.date !== null) {\n if (obj.date === nextObj.date) {\n obj['height'] = 0;\n nextObj['hasPointer'] = false;\n } else if (!nextObj.date.length) {\n obj['height'] = baseHeigth;\n } else {\n const height = (new Date(\n datetimeStringToISO(nextObj.date)).getTime() - new Date(\n datetimeStringToISO(obj.date)).getTime()) / maxDistance * factor;\n obj['height'] = height < 20 ? 20 : (height > 170 ? 170 : height);\n }\n } else {\n obj['height'] = baseHeigth;\n }\n }\n }\n }\n //we don't want to have line after last element\n harmonogramy[harmonogramy.length - 1]['height'] = 0;\n }\n return harmonogramy\n }\n\nhandleSaveFileFromApi = (url, fileName) => {\n this.setState(\n () => saveFileFromApi(\n url,\n\t\t\t\tfileName)\n );\n }\n\n // rendering\n\n render() {\n const o = this.props.ogloszenie;\n const { ogloszenie } = o;\n const { nabor } = ogloszenie;\n const showVersionModeInfo = this.props.versionMode && o.status.label !== 'DRAFT' && ogloszenie.ostatniaOpublikowanaWersjaId !== o.id;\n return (\n <>\n {showVersionModeInfo && To jest nieaktualna wersja ogłoszenia. Ta wersja została opublikowana dnia {o.dataOpublikowania}.}\n \n \n
    \n {isNotEmpty(ogloszenie.projekty, 'list') && (\n \n {ogloszenie.projekty.map(p => {p.calyNumer} - {p.nazwa})}\n \n )}\n {!!nabor && (\n \n {nabor.calyNumer}{nabor.nazwa.length > 0 ? ` - ${nabor.nazwa}` : ''}\n \n )}\n {isNotEmpty(o.zamowieniaUzupelniajace) && (\n \n {o.zamowieniaUzupelniajace}\n \n )}\n {isNotEmpty(o.warunkiZmianyUmowy) && (\n \n {o.warunkiZmianyUmowy}\n \n )}\n {isNotEmpty(o.zalaczniki, 'list') && (\n \n {/* attachments are sorted by origin announcement version */}\n {o.zalaczniki.map(origin => this.renderOrigin(origin))}\n \n )}\n
    \n \n
    \n
    \n {this.renderZamowienia()}\n {this.renderPodsumowanie()}\n {(ogloszenie.jestAutorem || ogloszenie.isAdmin) &&\n \n }\n \n )\n }\n\n renderOrigin(origin) {\n const ogloszenie = this.props.ogloszenie;\n let indexVersion = (ogloszenie.ogloszenie.all_available_version_ids || []).indexOf(origin.id);\n if (indexVersion > -1) {\n indexVersion++;\n } else {\n indexVersion = '';\n }\n let label = origin.id === ogloszenie.id ? (\n this.props.draftMode ? 'aktualnej wersji roboczej' : `obowiązującej wersji z dn. ${origin.dataOpublikowania}`\n ) : `wersji ${indexVersion} z dn. ${origin.dataOpublikowania}`;\n return this.renderAttachmentsForOrigin(origin, label)\n }\n\n renderAttachmentsForOrigin(origin, label) {\n return (\n \n Dodane do ogłoszenia w {label}\n
      \n {origin.zalaczniki.map((z, i) => {\n if (z.nazwa.length || Object.keys(z.plik).length) {\n return (\n
    1. \n \n {i + 1}. {z.nazwa || 'Załącznik bez nazwy'}\n {z.plik && z.plik.uri.length > 0 && this.handleSaveFileFromApi(z.plik.uri, z.plik.nazwa)}>Pobierz}\n \n
    2. \n )\n } else {return null}\n })}\n
    \n
    \n )\n }\n\n renderDaneAdresoweOgloszeniodawcy() {\n if (!this.props.ogloszenie.daneAdresoweOgloszeniodawcy) {\n return null\n }\n const daneAdresowe = this.props.ogloszenie.daneAdresoweOgloszeniodawcy || {};\n const adres = daneAdresowe.adres || {};\n return (\n \n {daneAdresowe.nazwa}\n {adres.ulica} {adres.numerDomu}\n {adres.kodPocztowy} {adres.miejscowosc}\n {adres.country === 'Polska' && (\n <>\n gmina/dzielnica: {adres.gmina}\n powiat: {adres.powiat}\n woj.: {adres.wojewodztwo}\n \n )}\n {adres.kraj !== 'Polska' && (\n {adres.kraj}\n )}\n {TYP_NUMERU_IDENTYFIKACYJNEGO[daneAdresowe.typNumeruIdentyfikacyjnego]}: {daneAdresowe.numerIdentyfikacyjny}\n \n )\n }\n\n renderOsobyDoKontaktu() {\n return (\n \n {this.props.ogloszenie.osobyDoKontaktu.map(osoba => {\n return (\n
    \n {getUserFullName(osoba)}\n tel.: {osoba.numerTelefonu || '-'}\n e-mail: {osoba.email}\n
    \n )\n })}\n
    \n )\n }\n\n renderZamowienia() {\n const o = this.props.ogloszenie;\n\n if (!isNotEmpty(o.zamowienia)) {\n return (\n <>\n Części zamówienia\n \n Brak zdefiniowanych części zamówienia\n \n \n )\n }\n\n let tableOfContetns = null;\n\n if (o.zamowienia.length > 1) {\n tableOfContetns = (\n \n Spis treści\n {o.zamowienia.map((z, i) => (\n \n ))}\n \n )\n }\n\n const refs = o.zamowienia.map(z => React.createRef());\n\n return (\n <>\n Części zamówienia\n {tableOfContetns}\n
      \n {o.zamowienia.map((z, i) => (\n
    • \n \n
      \n Część {i + 1}\n {isNotEmpty(z.tytul) && {z.tytul}}\n
      \n
      \n {isNotEmpty(z.szacunkowaWartosc) && (\n \n {z.szacunkowaWartosc.replace('.', ',')} PLN\n \n )}\n \n {z.czyWariantowe === true ? 'TAK' : 'NIE'}\n \n
      \n
      \n {this.renderPrzedmiotyZamowienia(z.przedmiotyZamowienia)}\n {this.renderKryteriaOceny(z.kryteriaOceny)}\n
    • \n ))}\n
    \n \n )\n }\n\n renderPrzedmiotyZamowienia(przedmiotyZamowienia) {\n if (isNotEmpty(przedmiotyZamowienia, 'list')) {\n return (\n <>\n Przedmioty zamówienia\n
      \n {przedmiotyZamowienia.map((pz) => this.renderPrzedmiotZamowienia(pz))}\n
    \n \n )\n }\n return (\n <>\n Przedmioty zamówienia\n Brak zdefiniowanych przedmiotów zamówienia\n \n )\n }\n\n renderPrzedmiotZamowienia(przedmiotZamowienia) {\n return \n {isNotEmpty(przedmiotZamowienia.opis) && (\n \n {przedmiotZamowienia.opis}\n \n )}\n {isNotEmpty(przedmiotZamowienia.okresGwarancji) && (\n \n {przedmiotZamowienia.okresGwarancji}\n \n )}\n {isNotEmpty(przedmiotZamowienia.kodyCPV, 'list') && this.renderKodyCPV(przedmiotZamowienia.kodyCPV)}\n {isNotEmpty(przedmiotZamowienia.miejscaRealizacji, 'list') && this.renderMiejscaRealizacji(przedmiotZamowienia.miejscaRealizacji)}\n {isNotEmpty(przedmiotZamowienia.harmonogramy, 'list') && this.renderHarmonogram(przedmiotZamowienia.harmonogramy)}\n {isNotEmpty(przedmiotZamowienia.warunkiUdzialu, 'list') && this.renderWarunkiUdziału(przedmiotZamowienia.warunkiUdzialu)}\n \n }\n\n renderKodyCPV(kodyCPV) {\n return (\n \n {kodyCPV.map(kod_ => {kod_.kod} {kod_.nazwa})}\n \n )\n }\n\n renderMiejscaRealizacji(miejscaRealizacji) {\n return (\n \n {miejscaRealizacji.map(mr => {\n let address = null;\n if (mr.kraj || mr.wojewodztwo || mr.powiat || mr.gmina || mr.miejscowosc) {\n address = (\n \n {isNotEmpty(mr.kraj) && (\n \n {mr.kraj}\n \n )}\n {isNotEmpty(mr.wojewodztwo) && (\n \n {mr.wojewodztwo}\n \n )}\n {isNotEmpty(mr.powiat) && (\n \n {mr.powiat || '-'}\n \n )}\n {isNotEmpty(mr.gmina) && (\n \n {mr.gmina || '-'}\n \n )}\n {isNotEmpty(mr.miejscowosc) && (\n \n {mr.miejscowosc || '-'}\n \n )}\n \n );\n }\n return (\n
    \n \n {mr.typ.nazwa}\n \n {address}\n
    \n )\n })}\n
    \n )\n }\n\n renderHarmonogram(harmonogramy) {\n let i = 0;\n return (\n <>\n Harmonogram\n
      \n {harmonogramy.map((h) => {\n i++;\n return (\n
    • \n Etap {i}\n \n {isNotEmpty(h.poczatekRealizacji) && (\n \n {h.poczatekRealizacji}\n \n )}\n {isNotEmpty(h.koniecRealizacji) && (\n \n {h.koniecRealizacji}\n \n )}\n \n {h.czyWystepujePlatnoscCzesciowa === true ? 'TAK' : 'NIE'}\n \n \n {isNotEmpty(h.opis) && (\n \n {h.opis}\n \n )}\n
    • \n )\n })}\n
    \n \n )\n }\n\n renderWarunkiUdziału(warunkiUdzialu) {\n return (\n <>\n Warunki, jakie musi spełniać oferent\n {warunkiUdzialu.map((wu) =>\n
    \n {wu.typ.id !== null && (\n \n {wu.typ.nazwa}\n \n )}\n {isNotEmpty(wu.opis) && (\n \n {wu.opis}\n \n )}\n
    \n )}\n \n )\n }\n\n renderKryteriaOceny(kryteriaOceny) {\n if (!isNotEmpty(kryteriaOceny, 'list')) {\n return (\n <>\n Kryteria oceny\n Brak zdefiniowanych kryteriów oceny\n \n )\n }\n return (\n <>\n Kryteria oceny\n \n {kryteriaOceny.map((ko) => (\n \n Czy kryterium cenowe\n {ko.czyKryteriumCenowe === true ? 'TAK' : 'NIE'}\n {isNotEmpty(ko.opis) && (\n \n {ko.opis}\n \n )}\n \n ))}\n \n \n )\n }\n\n renderPodsumowanie() {\n return (\n <>\n Podsumowanie\n Oś czasu związana z ogłoszeniem i ofertowaniem\n {this.renderOgloszeniePodsumowanie()}\n\n Oś czasu realizacji przedmiotów zamówienia\n {this.renderPrzedmiotyZamowieniaPodsumowanie()}\n \n )\n }\n\n renderOgloszeniePodsumowanie() {\n const o = this.props.ogloszenie;\n const harmonogram = [\n {\n date: o.dataOpublikowania || '',\n label: 'data opublikowania',\n key: `${o.id}_dataOpublikowania`,\n hasPointer: true,\n },\n {\n date: o.terminOfert || '',\n label: 'termin składania ofert',\n key: `${o.id}_terminOfert`,\n hasPointer: true,\n },\n {\n date: o.planowanyTerminPodpisaniaUmowy || '',\n dateForShowing: (dateStringToYearMonth(o.planowanyTerminPodpisaniaUmowy)),\n label: 'planowany termin podpisania umowy',\n key: `${o.id}_planowanyTerminPodpisaniaUmowy`,\n hasPointer: true,\n },\n ];\n return this.renderChartData(harmonogram)\n }\n\n renderPrzedmiotyZamowieniaPodsumowanie() {\n const przedmiotyZamowienia = this.getPrzedmiotyZamowieniaList();\n if (!przedmiotyZamowienia.length) {\n return this.renderTextError('Brak zdefiniowanych przedmiotów zamówienia.')\n }\n\n const harmonogramForRendering = this.getHarmonogramList(przedmiotyZamowienia);\n if (!harmonogramForRendering.length) {\n return this.renderTextError('Brak zdefiniowanych etapów dla przedmiotów zamówienia.')\n }\n\n harmonogramForRendering.sort((h1, h2) => {\n if (h1.date.length === 0) {return 1}\n if (h2.date.length === 0) {return -1}\n return h1.date < h2.date ? -1 : 1\n });\n\n return this.renderChartData(harmonogramForRendering);\n }\n\n renderChartData(harmonogramy) {\n this.prepareChartData(harmonogramy);\n return harmonogramy.map((h) => (\n
    \n \n
    \n \n
    \n {h.dateForShowing || h.date || '????-??-??'} - {h.label}\n
    \n
    \n
    \n ))\n }\n\n renderTextError(text) {\n return {text}\n }\n}\n\n\nexport { OgloszenieDetails, TYP_NUMERU_IDENTYFIKACYJNEGO };\n","import React from 'react';\nimport { Document, Page, Text, View } from '@react-pdf/renderer';\n\nimport { dateStringToYearMonth, isNotEmpty, splitLineByChar } from '../../../helpers';\nimport { PdfHeader } from '../../common';\nimport { pdfStyles } from '../../vars/pdfStyles';\nimport { OgloszenieDetails, TYP_NUMERU_IDENTYFIKACYJNEGO } from './OgloszenieDetails';\n\n\nclass OgloszeniePdf extends OgloszenieDetails {\n\n // base functions\n\n componentDidMount() {\n // it's redefined, because we don't want to scroll page and change its\n // title, like in base class\n }\n\n // rendering\n\n render() {\n const {\n flexContainerStyle,\n labelStyle,\n textWithLabelStyle,\n mainPdfContainerStyle,\n sectionTitleStyle,\n titleStyle\n } = pdfStyles;\n\n const o = this.props.ogloszenie;\n const nabor = o.ogloszenie.nabor;\n const title = `${parseInt(this.props.roboczeStatusId) === parseInt(o.status.id) ? 'Wersja robocza ogłoszenia: ' : ''}${o.tytul}`;\n const showVersionModeInfo = this.props.versionMode && o.status.label !== 'DRAFT' && o.ogloszenie.ostatniaOpublikowanaWersjaId !== o.id;\n return (\n \n \n \n\n {showVersionModeInfo && To jest nieaktualna wersja ogłoszenia. Ta wersja została opublikowana dnia {o.dataOpublikowania}.}\n Ogłoszenie\n \n {isNotEmpty(o.ogloszenie.numer) && (\n \n Numer\n {o.ogloszenie.numer}\n \n )}\n \n Id\n {o.ogloszenie.id}\n \n \n {isNotEmpty(o.ogloszenie.projekty, 'list') && (\n \n Powstaje w kontekście projektu\n {o.ogloszenie.projekty.map(p => {p.calyNumer} - {p.nazwa})}\n \n )}\n {!!nabor && (\n \n Powstaje w kontekście naboru\n {nabor.calyNumer}{nabor.nazwa.length > 0 ? ` - ${nabor.nazwa}` : ''}\n \n )}\n {isNotEmpty(o.tytul) && (\n \n Tytuł\n {splitLineByChar(o.tytul).map((line, i) => {line})}\n \n )}\n {isNotEmpty(o.zamowieniaUzupelniajace) && (\n \n Zamówienia uzupełniające\n {splitLineByChar(o.zamowieniaUzupelniajace).map((line, i) => {line})}\n \n )}\n {isNotEmpty(o.warunkiZmianyUmowy) && (\n \n Warunki zmiany umowy\n {splitLineByChar(o.warunkiZmianyUmowy).map((line, i) => {line})}\n \n )}\n {isNotEmpty(o.zalaczniki, 'list') && (\n \n Załączniki\n {/* attachments are sorted by origin announcement version */}\n {o.zalaczniki.map(origin => this.renderOrigin(origin))}\n \n )}\n \n Czy dopuszczalna oferta częściowa?\n {o.czyDopuszczalnaOfertaCzesciowa === true ? 'TAK' : 'NIE'}\n \n \n {this.renderPublishedDates(o)}\n \n \n {isNotEmpty(o.terminOfert) && (\n \n Termin składania ofert\n {o.terminOfert}\n \n )}\n {isNotEmpty(o.planowanyTerminPodpisaniaUmowy) && (\n \n Planowany termin podpisania umowy\n {dateStringToYearMonth(o.planowanyTerminPodpisaniaUmowy)}\n \n )}\n \n {this.renderDaneAdresoweOgloszeniodawcy()}\n {isNotEmpty(o.osobyDoKontaktu, 'list') && this.renderOsobyDoKontaktu()}\n Części zamówienia\n {this.renderZamowienia()}\n Podsumowanie\n {this.renderPodsumowanie()}\n \n \n )\n }\n\n renderAttachmentsForOrigin(origin, label) {\n return (\n \n Dodane do ogłoszenia w {label}\n {origin.zalaczniki.map((z, i) => {\n if (z.nazwa.length || Object.keys(z.plik).length) {\n return {i + 1}. {z.nazwa || 'Załącznik bez nazwy'}\n } else {return null}\n })}\n \n )\n }\n\n renderPublishedDates(ogloszenie) {\n if (this.props.draftMode) { return null }\n const {\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n if (this.props.versionMode && isNotEmpty(ogloszenie.dataOpublikowania)) {\n return (\n \n Data opublikowania wersji\n {ogloszenie.dataOpublikowania}\n \n )\n }\n return (\n <>\n {isNotEmpty(ogloszenie.ogloszenie.dataOpublikowania) && (\n \n Data opublikowania ogłoszenia\n {ogloszenie.ogloszenie.dataOpublikowania}\n \n )}\n {isNotEmpty(ogloszenie.dataOpublikowania) && (\n \n Data ostatniej zmiany\n {ogloszenie.dataOpublikowania}\n \n )}\n \n )\n }\n\n renderDaneAdresoweOgloszeniodawcy() {\n if (!this.props.ogloszenie.daneAdresoweOgloszeniodawcy) {\n return null\n }\n const {\n borderedSectionStyle,\n gridSection,\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n const daneAdresowe = this.props.ogloszenie.daneAdresoweOgloszeniodawcy || {};\n const adres = daneAdresowe.adres || {};\n return (\n \n Dane adresowe ogłoszeniodawcy\n \n {daneAdresowe.nazwa}\n {adres.ulica} {adres.numerDomu}\n {adres.kodPocztowy} {adres.miejscowosc}\n {adres.country === 'Polska' && (\n <>\n gmina/dzielnica: {adres.gmina}\n powiat: {adres.powiat}\n woj.: {adres.wojewodztwo}\n \n )}\n\n {adres.kraj !== 'Polska' && (\n {adres.kraj}\n )}\n {TYP_NUMERU_IDENTYFIKACYJNEGO[daneAdresowe.typNumeruIdentyfikacyjnego]}: {daneAdresowe.numerIdentyfikacyjny}\n \n \n )\n }\n\n renderOsobyDoKontaktu() {\n const {\n borderedSectionStyle,\n flexContainerStyle,\n gridSection,\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n \n Osoby do kontaktu\n \n {this.props.ogloszenie.osobyDoKontaktu.map(osoba => {\n return (\n \n {osoba.imie} {osoba.nazwisko}\n tel.: {osoba.numerTelefonu || '-'}\n e-mail: {osoba.email}\n \n )\n })}\n \n \n )\n }\n\n renderZamowienia() {\n const o = this.props.ogloszenie;\n if (!isNotEmpty(o.zamowienia)) {\n const {\n textInfoStyle,\n errorStyle,\n } = pdfStyles;\n return (\n Brak zdefiniowanych części zamówienia\n )\n }\n const {\n labelStyle,\n sectionTitleStyle,\n textWithLabelStyle,\n titleStyle\n } = pdfStyles;\n\n return (\n \n {o.zamowienia.map((z, i) => (\n \n Część: {i + 1}\n {isNotEmpty(z.tytul) && (\n \n Tytuł części {i + 1}\n {z.tytul}\n \n )}\n {isNotEmpty(z.szacunkowaWartosc) && (\n \n Budżet części {i + 1}\n {z.szacunkowaWartosc.replace('.', ',')} PLN\n \n )}\n \n Czy dopuszczalne oferty wariantowe\n {z.czyWariantowe === true ? 'TAK' : 'NIE'}\n \n \n Przedmioty zamówienia do części {i + 1}\n {this.renderPrzedmiotyZamowienia(z.przedmiotyZamowienia)}\n \n \n Kryteria oceny do części {i + 1}\n {this.renderKryteriaOceny(z.kryteriaOceny)}\n \n \n ))}\n \n )\n }\n\n renderPrzedmiotyZamowienia(przedmiotyZamowienia) {\n if (isNotEmpty(przedmiotyZamowienia, 'list')) {\n return przedmiotyZamowienia.map((pz) => this.renderPrzedmiotZamowienia(pz))\n }\n const {\n errorStyle,\n textInfoStyle,\n } = pdfStyles;\n return (\n Brak zdefiniowanych przedmiotów zamówienia\n )\n }\n\n renderPrzedmiotZamowienia(przedmiotZamowienia) {\n const {\n borderedSectionStyle,\n labelStyle,\n pzTitleSection,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n \n \n \n Typ\n {przedmiotZamowienia.kategoria.nazwa || '-'}\n \n \n Podkategoria\n {przedmiotZamowienia.podkategoria.nazwa || '-'}\n \n \n \n {isNotEmpty(przedmiotZamowienia.opis) && (\n <>\n Opis\n {splitLineByChar(przedmiotZamowienia.opis).map((line, i) => {line})}\n \n )}\n \n \n {isNotEmpty(przedmiotZamowienia.okresGwarancji) && (\n <>\n Okres gwarancji\n {przedmiotZamowienia.okresGwarancji}\n \n )}\n \n {isNotEmpty(przedmiotZamowienia.kodyCPV, 'list') && this.renderKodyCPV(przedmiotZamowienia.kodyCPV)}\n {isNotEmpty(przedmiotZamowienia.miejscaRealizacji, 'list') && this.renderMiejscaRealizacji(przedmiotZamowienia.miejscaRealizacji)}\n {isNotEmpty(przedmiotZamowienia.harmonogramy, 'list') && this.renderHarmonogram(przedmiotZamowienia.harmonogramy)}\n {isNotEmpty(przedmiotZamowienia.warunkiUdzialu, 'list') && this.renderWarunkiUdziału(przedmiotZamowienia.warunkiUdzialu)}\n \n )\n }\n\n renderKodyCPV(kodyCPV) {\n const {\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n \n Kody CPV\n {kodyCPV.map(kod_ => {kod_.kod} {kod_.nazwa})}\n \n )\n }\n\n renderMiejscaRealizacji(miejscaRealizacji) {\n const {\n flexContainerStyle,\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n \n Miejsca realizacji\n {miejscaRealizacji.map(mr => {\n let address = null;\n if (mr.kraj || mr.wojewodztwo || mr.powiat || mr.gmina || mr.miejscowosc) {\n address = (\n \n {isNotEmpty(mr.kraj) && (\n \n Kraj\n {mr.kraj}\n \n )}\n {isNotEmpty(mr.wojewodztwo) && (\n \n Województwo\n {mr.wojewodztwo}\n \n )}\n {isNotEmpty(mr.powiat) && (\n \n Powiat\n {mr.powiat || '-'}\n \n )}\n {isNotEmpty(mr.gmina) && (\n \n Gmina\n {mr.gmina || '-'}\n \n )}\n {isNotEmpty(mr.miejscowosc) && (\n \n Miejscowość\n {mr.miejscowosc || '-'}\n \n )}\n \n );\n }\n return (\n \n {mr.typ.nazwa}\n {address}\n \n )\n })}\n \n )\n }\n\n renderHarmonogram(harmonogramy) {\n const {\n borderedSeparateSectionStyle,\n flexContainerStyle,\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n let i = 0;\n return (\n <>\n Harmonogram\n {harmonogramy.map((h) => {\n i++;\n return (\n \n Etap {i}\n \n {isNotEmpty(h.poczatekRealizacji) && (\n \n Początek realizacji\n {h.poczatekRealizacji}\n \n )}\n {isNotEmpty(h.koniecRealizacji) && (\n \n Koniec realizacji\n {h.koniecRealizacji}\n \n )}\n \n {isNotEmpty(h.opis) && (\n \n Opis\n {splitLineByChar(h.opis).map((line, i) => {line})}\n \n )}\n \n Czy występuje płatność częściowa\n {h.czyWystepujePlatnoscCzesciowa === true ? 'TAK' : 'NIE'}\n \n \n )\n })}\n \n )\n }\n\n renderWarunkiUdziału(warunkiUdzialu) {\n const {\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n \n Warunki, jakie musi spełniać oferent\n {warunkiUdzialu.map((wu) =>\n \n {wu.typ.id !== null && (\n \n Typ\n {wu.typ.nazwa}\n \n )}\n {isNotEmpty(wu.opis) && (\n \n Opis\n {splitLineByChar(wu.opis).map((line, i) => {line})}\n \n )}\n \n )}\n \n )\n }\n\n renderKryteriaOceny(kryteriaOceny) {\n if (!isNotEmpty(kryteriaOceny, 'list')) {\n const {\n errorStyle,\n textInfoStyle,\n } = pdfStyles;\n return (\n Brak zdefiniowanych kryteriów oceny\n )\n }\n const {\n borderedSeparateSectionStyle,\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n return (\n <>\n {kryteriaOceny.map((ko) => (\n \n \n Czy kryterium cenowe?\n {ko.czyKryteriumCenowe === true ? 'TAK' : 'NIE'}\n \n {isNotEmpty(ko.opis) && (\n \n Opis\n {splitLineByChar(ko.opis).map((line, i) => {line})}\n \n )}\n \n ))}\n \n )\n }\n\n renderPodsumowanie() {\n const {\n labelStyle,\n textWithLabelStyle,\n } = pdfStyles;\n\n return (\n <>\n \n Oś czasu związana z ogłoszeniem i ofertowaniem\n {this.renderOgloszeniePodsumowanie()}\n \n \n Oś czasu realizacji przedmiotów zamówienia\n {this.renderPrzedmiotyZamowieniaPodsumowanie()}\n \n \n )\n }\n\n renderChartData(harmonogramy) {\n this.prepareChartData(harmonogramy);\n return harmonogramy.map((h) => (\n \n \n {h.hasPointer ? '-> ' : '' }{h.dateForShowing || h.date || '????-??-??'} - {h.label}\n \n \n \n ))\n }\n\n renderTextError(text) {\n return {text}\n }\n}\n\nexport { OgloszeniePdf };\n","import React from 'react';\nimport { TabBar, Tab } from '@rmwc/tabs';\nimport { BadgeAnchor, Badge } from '@rmwc/badge';\nimport '@rmwc/badge/badge.css';\n\nimport {\n dateStringToYearMonth,\n generatePdfDocument,\n isNotEmpty,\n redirectToLoginView,\n serializeAuditData\n} from '../../../helpers';\nimport {\n translateErrorMessage,\n serializeObject,\n} from '../../../serializers';\nimport {\n ButtonCreatePdf,\n ButtonStyled,\n Container,\n FieldWithLabel,\n GridCustom,\n Text\n} from '../../common';\nimport { BaseComponent } from '../common';\nimport {\n OfertyOffererClosedStatus,\n OfertyOffererPublishedStatus,\n OfertyOffererResolvedStatus,\n OfertyOwnerClosedStatus,\n OfertyOwnerPublishedStatus,\n OfertyOwnerResolvedStatus\n} from '../oferty';\nimport {\n PytaniaForOgloszenieAnnouncementOwner,\n PytaniaForOgloszenieAnonymous,\n PytaniaForOgloszenieLoggedIn,\n} from '../pytania';\nimport { ListaWersji } from'./ListaWersji';\nimport { ManageAdvertisementButtons } from'./ManageAdvertisementButtons';\nimport { OgloszenieDetails } from'./OgloszenieDetails';\nimport { OgloszeniePdf } from'./OgloszeniePdf';\nimport { fetchApi } from \"../../../fetch\";\nimport { MenuContext } from \"../../../context/menuContext\";\n\n\nconst ANNOUNCEMENT_STATUS_DRAFT = 'announcement_status_draft';\nconst ANNOUNCEMENT_STATUS_PUBLISHED = 'announcement_status_published';\nconst TAB_INDEXES = {\n ogloszenie: 0,\n oferty: 1,\n pytania: 2,\n};\nconst REVERTED_TAB_INDEXES = {\n 0: 'ogloszenie',\n 1: 'oferty',\n 2: 'pytania',\n};\n\n\nclass Ogloszenie extends BaseComponent {\n\n static contextType = MenuContext;\n\n // basic functions\n\n componentDidMount() {\n super.componentDidMount();\n window.onpopstate = () => {\n this.handleReload();\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.user.identifier !== this.props.user.identifier) {\n this.handleReload();\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.props.setAdvertisementManagerType(\n {isAuthor: false, isAdmin: false});\n window.onpopstate = () => {};\n }\n\n // handlers\n\n handleFetchSuccess = (data) => {\n this.xhrFetch = null;\n\n const ogloszenie = serializeObject(data.advertisement);\n this.props.setAdvertisementManagerType(\n {\n isAuthor: ogloszenie.ogloszenie.jestAutorem || false,\n isAdmin: ogloszenie.ogloszenie.isAdmin || false,\n },\n () => {\n // set values from dictionaries\n this.obublikowaneStatusId = data.dictionaries[ANNOUNCEMENT_STATUS_PUBLISHED];\n this.roboczeStatusId = parseInt(data.dictionaries[ANNOUNCEMENT_STATUS_DRAFT]);\n\n // reformat attachments\n ogloszenie.zalaczniki = this.sortAttachmentsByOrigins(\n ogloszenie.zalaczniki || []);\n\n ogloszenie.czyUlubione = data.favorite;\n ogloszenie.badge = data.badge;\n ogloszenie.offer_set_badge_count = data.offer_set_badge_count;\n ogloszenie.question_badge_count = data.question_badge_count;\n\n const params = new URLSearchParams(this.props.location.search);\n let section = params.get('sekcja') || 'ogloszenie';\n const isCurrentVersion =\n !(this.props.draftMode || this.props.versionMode);\n if (!isCurrentVersion) {\n section = 'ogloszenie';\n }\n\n this.setState({\n initializingOn: false,\n ogloszenie: ogloszenie,\n selectedTab: TAB_INDEXES[section] || 0,\n auditData: serializeAuditData(isCurrentVersion\n ? data.advertisement.advertisement\n : data.advertisement\n ),\n });\n }\n )\n }\n\n handleFetchError = (data) => {\n this.xhrFetch = null; // clean xhr object\n this.setState({\n fetchError: translateErrorMessage(data.message),\n initializingOn: false,\n });\n }\n\n handleFetchIncorrectStatus = (status) => {\n this.xhrFetch = null; // clean xhr object\n\n if (status === 404) {\n this.setState({pageNotFound: true, initializingOn: false});\n return\n }\n this.setState({\n initializingOn: false,\n fetchError: status === 403\n ? 'Nie masz uprawnień do przegladania tej strony.'\n : `Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n });\n }\n\n handleCloseVersionDialog = () => {\n this.setState({showOtherVersionOn: false});\n }\n\n handleReload = (link=null) => {\n if (link !== null) {\n this.props.history.push(link);\n }\n this.setState(\n {initializingOn: true, showOtherVersionOn: false},\n this.fetchInitialData\n );\n }\n\n handleCreatePdf = () => {\n this.setState(\n {pdfCreatingOn: true},\n () => generatePdfDocument(\n ,\n `ogloszenie_${this.props.match.params.id}.pdf`,\n this.callbackPfdCreated\n )\n );\n }\n\n handleChangeTab = (ev) => {\n const selectedTab = ev.detail.index;\n this.setState(\n {selectedTab: selectedTab},\n () => {\n //update url \"sekcja\" param\n this.props.history.push(\n `${window.location.pathname}?sekcja=${REVERTED_TAB_INDEXES[selectedTab] || REVERTED_TAB_INDEXES[0]}`);\n }\n );\n }\n\n handleChangeAdvertisementStatus = (status) => {\n this.setState(prevState => ({\n ogloszenie: {\n ...prevState.ogloszenie, ...{\n ogloszenie: {...prevState.ogloszenie.ogloszenie, status}\n }\n }\n }));\n }\n\n handleAddToFavorite = () => {\n fetchApi(\n `/api/favorite-announcements/${this.props.match.params.id}`,\n \"POST\",\n {},\n {},\n () => {\n this.handleReload();\n }\n );\n }\n\n handleRemoveBadge = () => {\n fetchApi(\n `/api/badge/announcements/${this.props.match.params.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n this.handleReload();\n this.context.refreshBadges();\n }\n );\n }\n\n handleRemoveFromFavorite = () => {\n fetchApi(\n `/api/favorite-announcements/${this.props.match.params.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n this.handleReload();\n }\n );\n }\n\n // helpers\n\n getAdditionalState(props) {\n return {\n showOtherVersionOn: false,\n pdfCreatingOn: false,\n ogloszenie: null,\n selectedTab: null,\n auditData: {},\n }\n }\n\n postState(props) {\n super.postState(props);\n this.obublikowaneStatusId = null;\n this.roboczeStatusId = null;\n }\n\n getFetchUrl() {\n let url = `/api/announcements/${this.props.match.params.id}`;\n if (this.props.versionMode) {\n url += `/versions/${this.props.match.params.versionId}`;\n }\n return url\n }\n\n getFetchData() {\n let body = {dictionaries: [ANNOUNCEMENT_STATUS_DRAFT, ANNOUNCEMENT_STATUS_PUBLISHED]};\n if (this.props.draftMode) {\n body['version_mode'] = 'draft';\n }\n return body\n }\n\n callbackPfdCreated = () => {\n this.setState({pdfCreatingOn: false});\n }\n\n sortAttachmentsByOrigins(attachments) {\n let origins = {};\n let originsIds = [];\n for (let attachment of attachments) {\n const originId = (attachment.origin || {}).id || null;\n if (!originId) { continue }\n if (!originsIds.includes(originId)) {\n origins[originId] = {\n dataOpublikowania: attachment.origin.dataOpublikowania || '',\n zalaczniki: [\n {\n id: attachment.id,\n nazwa: attachment.nazwa,\n plik: attachment.plik,\n },\n ],\n };\n originsIds.push(originId);\n } else {\n origins[originId]['zalaczniki'] = [...origins[originId]['zalaczniki'], {\n id: attachment.id,\n nazwa: attachment.nazwa,\n plik: attachment.plik,\n }];\n }\n }\n\n let originsList = Object.entries(origins).map(data => Object.assign(data[1], {id: parseInt(data[0])}));\n return originsList.sort((origin1, origin2) => {\n return origin1.id < origin2.id\n })\n }\n\n // rendering\n\n renderPublishedDates(ogloszenie) {\n if (this.props.draftMode) { return null }\n\n if (this.props.versionMode && isNotEmpty(ogloszenie.dataOpublikowania)) {\n return (\n \n {ogloszenie.dataOpublikowania}\n \n )\n }\n return (\n <>\n {isNotEmpty(ogloszenie.ogloszenie.dataOpublikowania) && (\n \n {ogloszenie.ogloszenie.dataOpublikowania}\n \n )}\n {isNotEmpty(ogloszenie.dataOpublikowania) && (\n \n {ogloszenie.dataOpublikowania}\n \n )}\n \n )\n }\n\n renderHeader() {\n if (this.state.ogloszenie === null) { return null }\n const o = this.state.ogloszenie;\n let isMyAdvertisement = false;\n if (this.props.user.id === o.ogloszenie.ktoUtworzyl.id) {\n isMyAdvertisement = true;\n }\n\n return (\n <>\n {!this.props.userAnonymous\n && !o.ogloszenie.jestAutorem\n && \n }\n \n {isNotEmpty(o.ogloszenie.numer) && (\n Ogłoszenie nr {o.ogloszenie.numer}\n )}\n \n {(!isMyAdvertisement && o.czyUlubione === false) && DODAJ DO ULUBIONYCH ogłoszenie {this.state.ogloszenie.tytul}}\n {(!isMyAdvertisement && o.czyUlubione === true) && USUŃ Z ULUBIONYCH ogłoszenie {this.state.ogloszenie.tytul}}\n \n Pobierz plik PDF ogłoszenia {this.state.ogloszenie.tytul}\n \n \n\n \n\n \n {isNotEmpty(o.tytul) && (\n {o.tytul}\n )}\n \n Status ogłoszenia: {o.ogloszenie.status.nazwa}\n {o.badge && \n USUŃ OZNACZENIE JAKO NOWE ogłoszenia {this.state.ogloszenie.tytul}\n \n }\n \n {parseInt(o.status.id) === this.roboczeStatusId && Status wersji: {o.status.nazwa}}\n {\n this.setState({showOtherVersionOn: true});\n e.currentTarget.blur();\n }}>\n Podejrzyj inne wersje ogłoszenia {o.tytul}\n \n {this.state.showOtherVersionOn && (\n )}\n \n \n {isNotEmpty(o.terminOfert) && (\n \n {o.terminOfert}\n \n )}\n {this.renderPublishedDates(o)}\n {isNotEmpty(o.planowanyTerminPodpisaniaUmowy) && (\n \n {dateStringToYearMonth(o.planowanyTerminPodpisaniaUmowy)}\n \n )}\n \n \n \n \n \n {o.offer_set_badge_count > 0 && }\n \n \n {o.question_badge_count > 0 && }\n \n \n \n )\n }\n\n renderContent() {\n switch (this.state.selectedTab) {\n case TAB_INDEXES['oferty']:\n return this.renderOferty()\n case TAB_INDEXES['pytania']:\n return this.renderPytania()\n default:\n return this.renderOgloszenie()\n }\n }\n\n renderOferty() {\n if (this.props.draftMode || this.props.versionMode) { return null }\n switch (this.state.ogloszenie.ogloszenie.status.label) {\n case 'DRAFT':\n return null\n case 'PUBLISHED':\n return this.renderOfertyForPublishedStatus()\n case 'CANCELLED':\n return this.renderOfertyForCancelledStatus()\n case 'CLOSED':\n return this.renderOfertyForClosedStatus()\n case 'RESOLVED':\n return this.renderOfertyForResolvedStatus()\n default:\n return null\n }\n }\n\n renderOfertyForPublishedStatus() {\n if (this.props.userAnonymous) {\n return (\n
    \n Utwórz ofertę\n Wymaga logowania\n
    \n )\n }\n // check if advertisement owner\n if (this.props.user.advertisementManagerType.isAuthor) {\n return this.handleReload()} />\n }\n return \n }\n\n renderOfertyForCancelledStatus() {\n return Ogłoszenie zostało anulowane dla wszystkich oferentów.\n }\n\n renderOfertyForClosedStatus() {\n return this.renderOfertyForAfterPublishedStatus(\n OfertyOwnerClosedStatus, OfertyOffererClosedStatus)\n }\n\n renderOfertyForResolvedStatus() {\n return this.renderOfertyForAfterPublishedStatus(\n OfertyOwnerResolvedStatus, OfertyOffererResolvedStatus)\n }\n\n renderOfertyForAfterPublishedStatus(OwnerComponent, OffererComponent) {\n const { advertisementManagerType } = this.props.user;\n const { isAuthor: isAdvertisementOwner } = advertisementManagerType;\n if (isAdvertisementOwner || advertisementManagerType.isAdmin) {\n return \n }\n return \n }\n\n renderPytania() {\n\t\t\n if (this.props.userAnonymous) {\n return \n } else if (this.state.ogloszenie.ogloszenie.ktoUtworzyl.id === this.props.user.id) {\n return \n }\n\n return \n }\n\n renderOgloszenie() {\n if (this.state.ogloszenie === null) { return null }\n const o = this.state.ogloszenie;\n return (\n \n )\n }\n}\n\n\nexport { Ogloszenie };\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport { fetchApi } from '../../../fetch';\nimport { MIEJSCE_REALIZACJI_OLD_BK_DICT } from '../../../const';\nimport { getSearchFiltersCount, SEARCH_CLEANED_FILTERS } from '../../../filters';\nimport { dateToStringOldBK } from '../../../helpers';\nimport { ButtonStyled, Container, GridCustom, GridCellCustom, Text, TextFieldCustom } from '../../common';\nimport { PaginatedBaseComponent } from '../common';\nimport { FiltryWyszukiwarki } from './FiltryWyszukiwarki';\n\n\nconst STATUS_MAP = {\n CANCELLED: 'canceled',\n PUBLISHED: 'active',\n CLOSED: 'archived',\n};\n\n\nclass Wyszukiwarka extends PaginatedBaseComponent {\n\n // basic functions\n\n componentDidMount() {\n document.title = \"Baza Konkurencyjności - wyszukiwarka\";\n\n super.componentDidMount();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (prevProps.userIdentifier !== this.props.userIdentifier) {\n this.handleReload();\n }\n }\n\n // handlers\n\n handleReload = (link=null) => {\n this.setState(\n {initializingOn: true, fetchError: '', objects: []},\n () => {this.fetchInitialData()}\n );\n }\n\n handleSubmit = (ev) => {\n ev.preventDefault();\n this.handleReload();\n }\n\n handleChangeQuery = (value) => {\n this.setState(\n {query: value, pageNumber: 1},\n () => {\n // change url\n this.props.history.push(\n encodeURI(`${window.location.pathname}${value.length > 0 ? `?q=${value}` : ''}`));\n }\n );\n }\n\n handleAddToFavorites = (object) => {\n fetchApi(\n `/api/favorite-announcements/${object.id}`,\n \"POST\",\n {},\n {},\n () => {\n const index = this.state.objects.findIndex(obj => obj.id === object.id);\n const updatedObjects = [...this.state.objects];\n updatedObjects[index] = { ...updatedObjects[index], favorite: true};\n this.setState({ objects: updatedObjects });\n }\n );\n }\n\n handleRemoveFromFavorites = (object) => {\n fetchApi(\n `/api/favorite-announcements/${object.id}`,\n \"DELETE\",\n {},\n {},\n () => {\n const index = this.state.objects.findIndex(obj => obj.id === object.id);\n const updatedObjects = [...this.state.objects];\n updatedObjects[index] = { ...updatedObjects[index], favorite: false};\n this.setState({ objects: updatedObjects });\n }\n );\n }\n\n // helpers\n\n preState(props) {\n super.preState();\n\n // redefine from base class\n this.objectsName = 'ogloszenia';\n this.paginateBy = 20;\n this.sortingValues = [\n ['publicationDate', 'Po dacie publikacji ogłoszeń'],\n ['submissionDeadline', 'Po terminie składania ofert'],\n ['default', 'Domyślnie'],\n ];\n this.sortingLabel = 'Sortuj wyniki wyszukiwania';\n this.filtersComponentClass = FiltryWyszukiwarki;\n\n this.getFiltersCount = getSearchFiltersCount;\n }\n\n getAdditionalState(props) {\n const params = new URLSearchParams(props.location.search);\n return Object.assign({}, super.getAdditionalState(props), {\n selectedSort: {value: this.sortingValues[2][0], label: this.sortingValues[2][1]},\n query: params.get('q') || '',\n filters: SEARCH_CLEANED_FILTERS,\n })\n }\n\n postState(props) {\n super.postState(props);\n this.dictionaries = {};\n }\n\n getFetchUrl() {\n return '/api/announcements/search'\n }\n\n getFetchData() {\n let queryDict = super.getFetchData();\n\n if (this.state.query.length) {\n queryDict['query'] = this.state.query;\n }\n for (let [name, value] of Object.entries(this.state.filters)) {\n if (['publicationDateRange', 'submissionDeadlineRange'].includes(name)) {\n for (let [subname, subvalue] of Object.entries(value)) {\n if (subname === 'type') { continue }\n if (!!subvalue) {\n queryDict[`${name}[${subname}]`] = subvalue;\n }\n }\n } else if (name === 'cpvItem') {\n if (Object.keys(value).length) {\n queryDict[name] = value.map(kod => kod.kod);\n }\n } else if ('programme' === name) {\n if (value.length) {\n queryDict[name] = value.map(mr => mr.value.toUpperCase());\n }\n } else if ('fulfillmentPlaces' === name) {\n if (value.length) {\n queryDict[name] = value.map(mr => mr.value);\n }\n } else if (['category', 'subcategory'].includes(name)) {\n if (value !== null) {\n queryDict[name] = value.label;\n }\n } else if ((name === 'status' && Object.keys(value).length) ||\n value !== SEARCH_CLEANED_FILTERS[name]\n ) {\n queryDict[name] = value;\n }\n }\n return queryDict\n }\n\n getFetchError(message) {\n message = super.getFetchError(message);\n return `Nie udało się wyszukać ogłoszeń. ${message}`\n }\n\n getFetchIncorrectStatusError(status) {\n return `Nie udało się wyszukać ogłoszeń. Wystąpił nieoczekiwany błąd o kodzie ${status}.`\n }\n\n // rendering\n\n renderHeader() {\n return (\n \n
    \n \n \n this.handleChangeQuery(ev.target.value)}\n onClear={ev => this.handleChangeQuery('')}\n id=\"search_input\" />\n Szukaj\n \n
    \n
    \n )\n }\n\n renderEmptyObjects() {\n return Nie znaleziono ogłoszeń spełniających kryteria wyszukiwania.\n }\n\n renderList() {\n const total = this.state.total;\n return (\n <>\n Znaleziono {total < this.paginateBy ? '' : 'około '}{total} ogłoszeń\n
      \n {this.state.objects.map(o => this.renderObject(o))}\n
    \n \n )\n }\n\n renderFiltersComponent() {\n return (\n this.setState({filtersAreOn: false})}\n updateDictionaries={dictionaries => this.dictionaries = dictionaries}\n updateFilters={this.handleApplyFilters}\n />\n )\n }\n\n renderObject(object) {\n return (\n
  • \n \n \n \n {object.moje && Moje ogłoszenie}\n \n {!object.moje && (\n \n {(object.favorite === false) && this.handleAddToFavorites(object)} primary\n icon=\"favorite\">DODAJ DO ULUBIONYCH ogłoszenie {object.tytul}}\n {(object.favorite === true) && this.handleRemoveFromFavorites(object)} remove\n icon=\"close\">USUŃ Z ULUBIONYCH ogłoszenie {object.tytul}}\n \n )}\n \n\n

    \n \n Opublikowano: {object.dataOpublikowania}\n Termin składania ofert: {object.terminOfert}\n \n {(object.miejsceRealizacji || '').length > 0 && {object.miejsceRealizacji}}\n \n
  • \n )\n }\n\n renderAdditionalAfterBaseContent() {\n return this.renderOldBkLink()\n }\n\n renderOldBkLink() {\n const filters = this.state.filters;\n const isPublicationDateRangeCustom = filters.publicationDateRange.type === 'custom'\n const isSubmissionDeadlineRangeCustom = filters.submissionDeadlineRange.type === 'custom'\n return (\n
    \n {this.state.query.length > 0 && }\n {filters.status.map((s, i) => )}\n {isPublicationDateRangeCustom && filters.publicationDateRange.from && (\n \n )}\n {isPublicationDateRangeCustom && filters.publicationDateRange.to && (\n \n )}\n {isSubmissionDeadlineRangeCustom && filters.submissionDeadlineRange.from && (\n \n )}\n {isSubmissionDeadlineRangeCustom && filters.submissionDeadlineRange.to && (\n \n )}\n \n {filters.category && }\n {filters.subcategory && }\n {filters.fulfillmentPlaces.map(m => {\n const value = MIEJSCE_REALIZACJI_OLD_BK_DICT[m.value];\n if (!!value) {\n return \n } else {\n return null\n }\n })}\n { }} type=\"submit\">Przeszukaj starą Bazę Konkurencyjności Strona zostanie otwarta w nowym oknie\n
    \n )\n }\n}\n\nexport { Wyszukiwarka };\n","import React, { useEffect, useState } from \"react\";\nimport { fetchApi } from \"../../../fetch\";\nimport { GridCustom, FieldWithLabel } from \"../../common\";\nimport { Typography, Elevation, Switch } from \"rmwc\";\nimport { colors } from \"../../vars/vars\";\n\nconst translationMap = {\n MY_ADVERTISEMENT: \"Zmiany mojego ogłoszenia\",\n MY_OFFERS: \"Zmiany ogłoszenia z moją ofertą\",\n MY_FAVORITE_ADVERTISEMENT: \"Zmiany ulubionych ogłoszeń\",\n MY_ADVERTISEMENT_QUESTION_SUBMITTED:\n \"Gdy w moim ogłoszeniu pojawi się nowe pytanie\",\n MY_ADVERTISEMENT_OFFER_SUBMITTED_OR_CHANGED:\n \"Gdy w moim ogłoszeniu pojawi się nowa lub zmieniona oferta\",\n MY_ADVERTISEMENT_OFFER_WITHDRAWN:\n \"Gdy w moim ogłoszeniu zostanie wycofana oferta\",\n MY_ADVERTISEMENT_ENDS_IN_24_HOURS:\n \"Gdy moje ogłoszenie skończy się w ciągu 24 godzin\",\n MY_OFFERS_ADVERTISEMENT_SUBMITTED_CHANGES:\n \"Gdy w ogłoszeniu zostaną opublikowane zmiany\",\n MY_OFFERS_ADVERTISEMENT_STATUS_CHANGED: \"Gdy w ogłoszeniu zmieni się status\",\n MY_OFFERS_ADVERTISEMENT_ANSWER_SUBMITTED_OR_CHANGED:\n \"Gdy w ogłoszeniu zostanie dodana lub zmieniona odpowiedź\",\n MY_FAVORITE_ADVERTISEMENT_SUBMITTED_CHANGES:\n \"Gdy w ulubionym ogłoszeniu zostaną opublikowane zmiany\",\n MY_FAVORITE_ADVERTISEMENT_STATUS_CHANGED:\n \"Gdy w ulubionym ogłoszeniu zmieni się status\",\n MY_FAVORITE_ADVERTISEMENT_ANSWER_SUBMITTED_OR_CHANGED:\n \"Gdy w ulubionym ogłoszeniu zostanie dodana lub zmieniona odpowiedź\",\n MY_FAVORITE_ADVERTISEMENT_ENDS_IN_24_HOURS:\n \"Gdy ulubione ogłoszenie skończy się w ciągu 24 godzin\"\n};\n\nconst CircleWithLetter = () => {\n return (\n
    \n N\n
    \n );\n};\n\nexport default CircleWithLetter;\n\nexport const Notifications = (props) => {\n const [notificationOptions, setNotificationOptions] = useState();\n\n useEffect(() => {\n fetchApi(\"/api/notification-type-enabled\", \"GET\", {}, {}, (data) => {\n setNotificationOptions(data);\n });\n }, []);\n\n const notificationsEnabled = notificationOptions?.notifications?.enabled;\n\n const handleToggleNotifications = (checked) => {\n fetchApi(\n \"/api/notification-type-enabled/NOTIFICATIONS\",\n \"PUT\",\n {},\n { enabled: checked },\n () => {\n setNotificationOptions({\n ...notificationOptions,\n notifications: {\n ...notificationOptions.notifications,\n enabled: checked,\n },\n });\n }\n );\n };\n\n const handleToggleNotification = (type, checked) => {\n const groups = [...notificationOptions.groups];\n\n for (let i = 0; i < groups.length; i++) {\n const group = groups[i];\n for (let j = 0; j < group.items.length; j++) {\n const item = group.items[j];\n if (item.type === type) {\n item.enabled = checked;\n break;\n }\n }\n }\n\n fetchApi(\n `/api/notification-type-enabled/${type}`,\n \"PUT\",\n {},\n { enabled: checked },\n () => {\n setNotificationOptions({\n ...notificationOptions,\n groups: [...groups],\n });\n }\n );\n };\n\n return (\n
    \n \n Ustawienia powiadomień\n \n \n \n

    \n Uwaga: Jeśli wyłączysz powiadomienia, oznaczenia nie będą się wyświetlać.\n

    \n
    \n\n
    \n \n \n \n Ustawienia powiadomień\n \n
    \n \n \n handleToggleNotifications(ev.target.checked)}\n id=\"notifications_enabled\"\n />\n \n \n \n\n {notificationsEnabled && (\n \n \n \n Ustawienia typów powiadomień\n \n
    \n\n {notificationOptions.groups.map((group) => {\n return (\n
    \n

    {translationMap[group.type]}

    \n {group.items.map((item) => {\n return (\n \n \n \n handleToggleNotification(\n item.type,\n ev.target.checked\n )\n }\n id={`notification_${item.type}`}\n />\n \n \n );\n })}\n
    \n );\n })}\n \n )}\n \n );\n};\n","import React, { useEffect, useState, useContext } from \"react\";\nimport { TabBar, Tab } from \"@rmwc/tabs\";\nimport { useLocation, useHistory } from \"react-router-dom\";\nimport { Notifications } from \"./Notifications\";\nimport { NewsletterSettings } from \"./NewsletterSettings\";\nimport { Favorites } from \"./Favorites\";\nimport { UserContext } from \"../../../context/user-context\";\n\nconst tabIndexMap = new Map([\n [\"newsletter\", 0],\n [\"powiadomienia\", 1],\n [\"ulubione\", 2],\n]);\n\nfunction getMapKeyByValue(value) {\n for (let [key, val] of tabIndexMap.entries()) {\n if (val === value) {\n return key;\n }\n }\n return undefined;\n}\n\nconst Newsletter = (props) => {\n const location = useLocation();\n const history = useHistory();\n\n useEffect(() => {\n sessionStorage.setItem(\n \"currentPathname\",\n window.location.pathname + window.location.search\n );\n }, []);\n\n useEffect(() => {\n const activeTab = location.search?.split(\"?sekcja=\")?.[1];\n if (activeTab) {\n setActiveTabIndex(tabIndexMap.get(activeTab));\n }\n }, [location.search]);\n\n const [activeTabIndex, setActiveTabIndex] = useState(0);\n\n const { user } = useContext(UserContext);\n\n return (\n <>\n {user.identifier === null ? (\n

    Zaloguj się aby wyświetlić zawartość tej strony.

    \n ) : (\n <>\n {\n const tabName = getMapKeyByValue(event.detail.index);\n history.push(`${window.location.pathname}?sekcja=${tabName}`);\n }}\n >\n Newsletter\n Powiadomienia\n Ulubione\n \n {activeTabIndex === 0 && }\n {activeTabIndex === 1 && }\n {activeTabIndex === 2 && }\n \n )}\n \n );\n};\n\nexport { Newsletter };\n","import React from \"react\";\nimport { URLS } from \"../../../urls/frontend\";\nimport { useHistory } from \"react-router-dom\";\nimport { GridCustom, ButtonStyled, Container } from \"../../common\";\nimport { Typography } from \"@rmwc/typography\";\nimport { Icon } from \"@rmwc/icon\";\n\nexport const UnsubscribeSuccess = () => {\n const history = useHistory();\n \n const handleGoToMainPage = () => {\n history.push(URLS.home.path);\n };\n \n return (\n \n \n \n \n \n \n Newsletter i powiadomienia są wyłączone\n \n \n \n \n Aby ponownie włączyć newsletter przejdź do{\" \"}\n edycji newslettera.\n \n \n \n \n Aby ponownie włączyć powiadomienia przejdź do{\" \"}\n \n edycji powiadomień\n \n .\n \n \n \n \n Aby włączyć newsletter lub powiadomienia musisz być zalogowany.\n \n \n \n \n OK\n \n \n \n );\n };","import React, { useEffect, useState } from \"react\";\nimport { useHistory, useLocation } from \"react-router-dom\";\nimport { GridCustom, ButtonStyled, Container } from \"../../common\";\nimport { Icon } from \"@rmwc/icon\";\nimport { Typography } from \"@rmwc/typography\";\nimport { URLS } from \"../../../urls/frontend\";\nimport { fetchApi } from \"../../../fetch\";\nimport { UnsubscribeSuccess } from \"./UnsubscribeSuccess\";\n\nconst UnsubscribeConfirmation = (props) => {\n const history = useHistory();\n const location = useLocation();\n\n const [token, setToken] = useState(undefined);\n\n useEffect(() => {\n const token = location.search?.split(\"?token=\")?.[1];\n if (token) {\n setToken(token);\n } else {\n handleGoToMainPage();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [location.search]);\n\n const handleGoToMainPage = () => {\n history.push(URLS.home.path);\n };\n\n const handleError = (error) => {\n throw new Error(error);\n };\n\n const handleConfirm = () => {\n fetchApi(\n `/api/notification-opt-out-link/${token}`,\n \"POST\",\n {},\n {},\n () => {\n props.setConfirmed(true);\n },\n handleError,\n handleError\n );\n };\n\n return (\n \n \n \n \n \n \n Czy na pewno chcesz wyłączyć
    \n newsletter i powiadomienia?\n \n
    \n \n \n TAK, CHCĘ WYŁĄCZYĆ NEWSLETTER I POWIADOMIENIA\n \n \n NIE, PRZEJDŹ DO STRONY GŁÓWNEJ\n \n \n
    \n );\n};\n\nexport const Subscriptions = () => {\n const [confirmed, setConfirmed] = useState(false);\n\n return confirmed ? (\n \n ) : (\n \n );\n};\n","import React, { useContext, useEffect } from 'react';\nimport { Redirect, Route, Switch, useHistory } from 'react-router-dom';\n\nimport { AdvertisementProvider } from '../context/advertisementContext';\nimport { MenuContext } from '../context/menuContext';\nimport { UserContext } from '../context/user-context';\nimport { URLS } from '../urls/frontend';\nimport { NotFoundPage } from './common';\nimport { DeklaracjaDostepnosci } from './layoutElements/DeklaracjaDostepnosci';\nimport {\n Activities,\n Institutions,\n Perspectives,\n Priorities,\n Programmes,\n Regions,\n Subactivities\n} from './layoutElements/implementationLevelsManagement';\nimport { LandingPage } from './layoutElements/LandingPage';\nimport { Advertisements, Projects } from './layoutElements/management';\nimport { FormOgloszenie, Ogloszenia, Ogloszenie, Wyszukiwarka } from './layoutElements/ogloszenia';\nimport { Oferty } from './layoutElements/oferty';\nimport { Newsletter } from './layoutElements/newsletter/Newsletter';\nimport { Projekty } from './layoutElements/projekty';\nimport {\n BladLogowania, Logowanie, ProfilUzytkownika, User, Users\n} from './layoutElements/uzytkownicy';\nimport {\n Ciasteczka,\n FormCiasteczka, FormKomunikat, FormPomoc, FormRegulamin, FormTrescOgolna,\n Komunikat, Komunikaty, KomunikatFront, KomunikatyFront,\n Pomoc, Pomoce, PomoceFront, PomocFront,\n Regulamin, Regulaminy,\n TresciOgolne, TrescOgolna,\n ZarzadzanieTrescia\n} from './layoutElements/zarzadzanieTrescia';\nimport { Subscriptions } from './layoutElements/subscriptions/Subscriptions'\n\n\n// add url pattern here if you want to light the menu link on for that page\nconst URL_PATTERNS_BY_MENU_LINK_NAME = {\n projects: [URLS.projects.pattern],\n advertisements: [\n 'advertisements', 'advertisementsNew', 'advertisementsEdit'].map(\n name => URLS[name].pattern),\n offers: [URLS.offers.pattern],\n newsletter: [URLS.newsletter.pattern],\n accessibility: [URLS.accessibility.pattern],\n users: ['users', 'usersDetails', 'usersMyProfile'].map(\n name => URLS[name].pattern),\n projectsManagement: [URLS.managementProjects.pattern],\n advertisementsManagement: [URLS.managementAdvertisements.pattern],\n contentsManagement: [\n 'managementContents',\n 'managementContentsHelps',\n 'managementContentsHelpsNew',\n 'managementContentsHelpsEdit',\n 'managementContentsHelpsDetails',\n 'managementContentsRegulations',\n 'managementContentsRegulationsCurrent',\n 'managementContentsRegulationsForPublishing',\n 'managementContentsRegulationsNew',\n 'managementContentsRegulationsEdit',\n 'managementContentsCookies',\n 'managementContentsCookiesNew',\n 'managementContentsCookiesEdit',\n 'managementContentsGeneralContents',\n 'managementContentsGeneralContentsEdit',\n 'managementContentsGeneralContentsDetails',\n 'managementContentsStatements',\n 'managementContentsStatementsNew',\n 'managementContentsStatementsEdit',\n 'managementContentsStatementsDetails'\n ].map(name => URLS[name].pattern),\n implementationLevelsDictionaryManagement: [\n 'managementPerspectives',\n 'managementProgrammesForPerspective',\n 'managementPrioritiesForProgramme',\n 'managementSubactivitiesForPriority',\n 'managementActivitiesForPriority',\n 'managementRegionsForSubactivity',\n 'managementInstitutionsForActivity',\n ].map(name => URLS[name].pattern),\n};\n\n\nconst Routes = ({ onLoginClick, onSetMenuLinkByName }) => {\n\n const {\n permissions,\n user,\n setAdvertisementManagerType\n } = useContext(UserContext);\n const userAnonymous = user.identifier === null;\n\n const history = useHistory();\n\n function setMenuLink() {\n for (let [linkName, patternList] of Object.entries(\n URL_PATTERNS_BY_MENU_LINK_NAME)) {\n for (let pattern of patternList) {\n if (pattern.test(history.location.pathname)) {\n onSetMenuLinkByName(linkName);\n return\n }\n }\n }\n // if not found, clear menu link\n onSetMenuLinkByName(null);\n }\n useEffect(setMenuLink, [history.location.pathname, ]);\n\n const getComponent = (component, permissionName=null) => {\n if (userAnonymous) {\n return \n }\n if (permissionName !== null && !permissions[permissionName]) {\n return \n }\n return component\n }\n\n const { menuLinkKey } = useContext(MenuContext);\n\n return (\n \n \n \n } />\n }\n />\n userAnonymous\n ? \n : \n } />\n getComponent(\n \n )} />\n getComponent(\n \n )} />\n \n } />\n getComponent(\n {window.formOgloszenie = c}}\n setAdvertisementManagerType={setAdvertisementManagerType}\n userData={user}\n />\n )} />\n \n } />\n getComponent(\n \n )} />\n \n } />\n getComponent(\n {window.formOgloszenie = c}}\n setAdvertisementManagerType={setAdvertisementManagerType}\n userData={user}\n />\n )} />\n getComponent(\n \n )} />\n }/>\n \n getComponent(\n ,\n 'fullUsersAndPermissions'\n )} />\n getComponent(\n ,\n 'fullUsersAndPermissions'\n )} />\n getComponent(\n \n )} />\n getComponent(\n ,\n 'projectsEnrollments'\n )} />\n getComponent(\n ,\n 'advertisements'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n \n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n ,\n 'fullContent'\n )} />\n getComponent(\n , 'fullContent'\n )} />\n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n {getComponent(, 'previewDictionaries')}\n \n \n \n \n \n } />\n \n \n \n \n \n \n )\n}\n\n\nexport { Routes };\n","import React, { Component } from 'react';\nimport { BrowserRouter as Router, Link, useLocation } from 'react-router-dom';\nimport { Button } from '@rmwc/button';\nimport { DrawerAppContent } from '@rmwc/drawer';\nimport { Icon } from '@rmwc/icon';\nimport { TopAppBar, TopAppBarFixedAdjust, TopAppBarActionItem, TopAppBarRow, TopAppBarSection, TopAppBarTitle } from '@rmwc/top-app-bar';\nimport '@material/elevation/dist/mdc.elevation.css';\nimport '@material/top-app-bar/dist/mdc.top-app-bar.css';\nimport '@material/textfield/dist/mdc.textfield.css';\nimport '@material/floating-label/dist/mdc.floating-label.css';\nimport '@material/notched-outline/dist/mdc.notched-outline.css';\nimport '@material/line-ripple/dist/mdc.line-ripple.css';\n\nimport { TOKEN_COOKIE_NAME } from '../const';\nimport { MenuProvider } from '../context/menuContext';\nimport { UserContext } from '../context/user-context';\nimport { fetchApi, fetchSativaApi } from '../fetch';\nimport { deleteCookie, getCookieValue, redirectToLoginView, setFocusOnElement } from '../helpers';\nimport { URLS } from '../urls/frontend';\nimport { MenuDrawer, SkipLinks, Text } from './common';\nimport { Sesja, SessionDialog } from './layoutElements/uzytkownicy';\nimport { CiasteczkaFront, ZoltyPasekFront } from './layoutElements/zarzadzanieTrescia';\nimport { Routes } from './Routes';\n\nimport ueFooter from '../static/img/FE_footer.png'\n\n\nconst SKIP_LINKS_PRIVATE = [\n {\n id: 1,\n label: 'Przejdź do projektów',\n linkTo: URLS.projects.path,\n },\n {\n id: 2,\n label: 'Przejdź do ogłoszeń',\n linkTo: URLS.advertisements.path,\n },\n {\n id: 3,\n label: 'Przejdź do ofert',\n linkTo: URLS.offers.path,\n },\n];\n\nconst SKIP_LINKS = [\n {\n id: 4,\n label: 'Przejdź do deklaracji dostępności',\n linkTo: URLS.accessibility.path,\n },\n {\n id: 5,\n label: 'Przejdź do treści',\n linkTo: '#',\n },\n];\n\nconst MENU_LINKS = [\n {\n icon: 'question_answer',\n id: 1,\n label: 'Moje projekty i nabory',\n linkTo: URLS.projects.path,\n name: 'projects',\n onlyAuthenticated: true,\n },\n {\n icon: 'send',\n id: 2,\n label: 'Moje ogłoszenia',\n linkTo: URLS.advertisements.path,\n name: 'advertisements',\n onlyAuthenticated: true,\n },\n {\n icon: 'list',\n id: 3,\n label: 'Moje oferty',\n linkTo: URLS.offers.path,\n name: 'offers',\n onlyAuthenticated: true,\n },\n {\n icon: 'mail',\n id: 4,\n label: 'Newsletter, powiadomienia, ulubione',\n linkTo: `${URLS.newsletter.path}?sekcja=newsletter`,\n name: 'newsletter',\n onlyAuthenticated: true,\n },\n {\n icon: 'accessibility',\n id: 5,\n label: 'Deklaracja dostępności',\n linkTo: URLS.accessibility.path,\n name: 'accessibility',\n },\n {\n icon: 'people',\n id: 6,\n label: 'Administracja użytkownikami i uprawnieniami',\n linkTo: `${URLS.users.path}?sekcja=lista`,\n name: 'users',\n onlyAuthenticated: true,\n permissionName: 'fullUsersAndPermissions',\n },\n {\n icon: 'account_tree_icon',\n id: 7,\n label: 'Administracja słownikiem poziomów wdrażania',\n linkTo: URLS.managementPerspectives.path,\n name: 'implementationLevelsDictionaryManagement',\n onlyAuthenticated: true,\n permissionName: 'previewDictionaries',\n },\n {\n icon: 'vertical_split',\n id: 8,\n label: 'Administracja treściami',\n linkTo: URLS.managementContents.path,\n name: 'contentsManagement',\n onlyAuthenticated: true,\n permissionName: 'fullContent',\n },\n {\n icon: 'line_weight',\n id: 9,\n label: 'Administracja projektami i\\u00a0naborami',\n linkTo: URLS.managementProjects.path,\n name: 'projectsManagement',\n onlyAuthenticated: true,\n permissionName: 'projectsEnrollments',\n },\n {\n icon: 'description',\n id: 10,\n label: 'Administracja ogłoszeniami',\n linkTo: URLS.managementAdvertisements.path,\n name: 'advertisementsManagement',\n onlyAuthenticated: true,\n permissionName: 'advertisements',\n },\n];\n\n\nconst UePadding = (props) => {\n const location = useLocation();\n\n if (location.pathname != '/') {\n return <>\n }\n\n return
    \n}\n\n\nconst UeFooter = (props) => {\n const location = useLocation();\n\n if (location.pathname != '/') {\n return <>\n }\n\n return (\n <>\n
    \n \"Zestawienie\n
    \n
    \n Projekt współfinansowany z Funduszu Spójności i budżetu państwa\n
    \n \n )\n}\n\n\nclass App extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n initializingOn: window.location.pathname !== URLS.login.path,\n currentMenuLink: null,\n openMenu: false,\n mobile: true,\n currentHref: '/',\n logoutError: '',\n logoutDoneOn: false,\n }\n\n this.appContentRef = React.createRef();\n\n this.xhrFetch = null;\n this.xhrLogoutFetch = null;\n\n this.updateMenuDisplay = this.updateMenuDisplay.bind(this);\n }\n\n // basic functions\n\n componentDidMount() {\n this.updateMenuDisplay();\n window.addEventListener('resize', this.updateMenuDisplay);\n\n if (this.state.initializingOn) {\n // if token cookie exists, check it on server\n if (getCookieValue(TOKEN_COOKIE_NAME)) {\n this.xhrFetch = fetchApi(\n '/api/authentication/identity',\n 'GET',\n {},\n {},\n this.handleFetchSuccess,\n this.handleFetchError,\n this.handleFetchIncorrectStatus,\n );\n } else {\n this.setState({initializingOn: false});\n }\n }\n }\n\n componentWillUnmount() {\n // abort api requests if exist\n for (let fetch of [this.xhrFetch, this.xhrLogoutFetch]) {\n if (fetch !== null) {\n fetch.abort();\n }\n }\n }\n\n // handlers\n\n handleFetchSuccess = (data) => {\n this.xhrFetch = null;\n this.context.set(\n data,\n () => this.setState({initializingOn: false})\n )\n }\n\n handleFetchError = (data) => {\n this.xhrFetch = null;\n this.clearAuthCookie();\n this.setState({initializingOn: false});\n }\n\n handleFetchIncorrectStatus = (status) => {\n this.xhrFetch = null;\n this.clearAuthCookie();\n this.setState({initializingOn: false});\n }\n\n handleLogin = () => {\n redirectToLoginView();\n }\n\n handleLogout = () => {\n this.xhrLogoutFetch = fetchSativaApi(\n '/api/token/revoke',\n this.handleFetchLogoutSuccess,\n this.handleFetchLogoutError,\n this.handleFetchLogoutIncorrectStatus,\n );\n }\n\n handleFetchLogoutSuccess = (data) => {\n this.xhrLogoutFetch = null;\n this.clearAuthCookie(\n () => this.context.logout(() => this.setState({logoutDoneOn: true}))\n );\n }\n\n handleFetchLogoutError = (data) => {\n this.xhrLogoutFetch = null;\n this.setState({logoutError: `Nie udało się wylogować użytkownika. ${data.message}`});\n }\n\n handleFetchLogoutIncorrectStatus = (status) => {\n this.xhrLogoutFetch = null;\n this.setState({logoutError: `Nie udało się wylogować użytkownika. Wystąpił błąd o kodzie ${status}.`});\n }\n\n handleSetMenuLinkByName = (linkName) => {\n if (linkName === null) {\n this.setState({currentMenuLink: null});\n return\n }\n for (let link of MENU_LINKS) {\n if (link.name === linkName) {\n this.setState({currentMenuLink: link.id});\n return\n }\n }\n this.setState({currentMenuLink: null});\n }\n\n // helpers\n\n setCurrentMenuLink(id) {\n this.setState({currentMenuLink: id});\n setFocusOnElement(this.appContentRef);\n }\n\n updateMenuDisplay() {\n this.setState({mobile: window.innerWidth >= 1340 ? false : true});\n }\n\n clearAuthCookie = (callback=null) => {\n deleteCookie(TOKEN_COOKIE_NAME, callback);\n }\n\n // rendering\n\n render() {\n if (this.state.initializingOn) {\n return Trwa inicjalizacja danych...\n }\n\n let skipLinks = [...SKIP_LINKS];\n if (this.context.user.identifier) {\n skipLinks = [...SKIP_LINKS_PRIVATE, ...SKIP_LINKS];\n }\n\n // Router should be on the top of components, because MenuDrawer needs routing\n return (\n <>\n \n \n \n \n {this.renderHeader()}\n \n {this.renderMenu()}\n {this.renderContent()}\n {this.renderFooter()}\n \n \n {this.state.logoutError.length > 0 && this.renderLogoutError()}\n {this.state.logoutDoneOn && this.renderLogoutDialog()}\n \n )\n }\n\n renderHeader() {\n const { mobile } = this.state;\n return (\n \n \n \n {mobile && (\n {this.setState(prevState => ({openMenu: !prevState.openMenu}))}}\n title=\"Rozwiń menu\"\n unelevated >\n Rozwiń menu\n \n \n )}\n \n \n Baza Konkurencyjności\n \n \n \n \n {window.sessionComponent = c}} />\n {this.renderUserWidget()}\n \n \n \n )\n }\n\n renderUserWidget() {\n if (this.context.user.identifier === null) {\n return (\n \n Zaloguj się\n \n \n )\n }\n const { forename, surname } = this.context.user;\n return (\n <>\n \n \n \n {forename} {surname}\n \n Wyloguj się\n \n \n \n )\n }\n\n renderMenu() {\n const {\n currentMenuLink,\n mobile,\n openMenu,\n } = this.state;\n\n let menuLinks = [...MENU_LINKS];\n if (!this.context.user.identifier) {\n menuLinks = menuLinks.filter(link => link.onlyAuthenticated !== true);\n } else {\n const permissions = this.context.permissions;\n menuLinks = menuLinks.filter(\n link => !link.permissionName ||\n permissions[link.permissionName] || false\n );\n }\n\n return (\n {this.setState(prevState => ({openMenu: !prevState.openMenu}))}}\n mobile={mobile} />\n )\n }\n\n renderContent() {\n return (\n \n
    \n \n
    \n \n
    \n
    \n \n
    \n )\n }\n\n renderFooter() {\n return (\n <>\n
    \n
    \n \n
    \n \n )\n }\n\n renderLogoutError() {\n return this.setState({logoutError: ''})}\n error\n messageTitle={this.state.logoutError}\n messageIcon=\"error_outline\"\n withButton />\n }\n\n renderLogoutDialog() {\n return window.location.reload()}\n messageContent=\"Aby uzyskać dostęp do widoków dla zarejestrowanych użytkowników, zaloguj się ponownie.\"\n messageTitle=\"Użytkownik został wylogowany.\"\n withButton />\n }\n}\n\n\nApp.contextType = UserContext;\n\nexport default App;\n","export default \"data:image/png;base64,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\"","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './components/App';\nimport { colors } from './components/vars/vars';\nimport * as serviceWorker from './serviceWorker';\nimport { ThemeProvider } from '@rmwc/theme';\nimport './static/styles/base.sass';\n\nimport { UserProvider } from './context/user-context';\n\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}