{"version":3,"sources":["serviceWorker.ts","model/downloadDocumentState/DownloadDocumentStateType.ts","actions/actionsDef.ts","model/search/SearchResult.ts","reducers/classificationTableReducer.ts","common/utils/downloadStateUtils/fileDownloadReducerUtils.ts","model/search/filter.ts","model/search/searchFilters.ts","reducers/searchFiltersReducer.ts","reducers/http.ts","reducers/searchReducer.ts","reducers/lastLoaded.ts","reducers/featuredDocuments.ts","model/enum/searchType.ts","reducers/loadResultLoadedReducer.ts","reducers/resultReducer.ts","reducers/downloadListReducer.ts","reducers/detailReducer.ts","model/downloadDocumentState/DownloadDocumentState.ts","reducers/downloadDocumentReducer.ts","reducers/classificationChartReducer.ts","reducers/filterRequestChartReducer.ts","reducers/filesListReducer.ts","reducers/detailFileReducer.ts","reducers/simpleSearchReducer.ts","reducers/lastSearchReducer.ts","common/constants/languagesId.ts","common/utils/languageHelper.ts","reducers/languageReducer.ts","reducers/index.ts","reducers/singleDocumentDownloadStateListReducer.ts","reducers/singleCaseFileDownloadStateListReducer.ts","model/search/searchFiles.ts","middlewares/http/middleware.ts","middlewares/http/actions.ts","store.tsx","history.ts","actions/downloadList/removeDownloadAction.ts","actions/downloadList/clearListAction.ts","resources/commonStrings_en.ts","resources/commonStrings.ts","resources/commonStrings_va.ts","common/Alerts/ToastrType.ts","translations/language.ts","common/components/downloadConfirmationPanel/downloadConfirmationPanel.tsx","components/downloadList/downloadList.tsx","common/Alerts/Alerts.ts","common/constants/methodRequest.ts","common/msal/msalConfig.ts","common/msal/msal.ts","common/constants/routes.ts","api/search/searchMsalApi.ts","actions/downloadDocument/downloadDocument.ts","components/downloadList/downloadListContainer.tsx","common/hoc/auth.tsx","common/components/socialMedia/socialMediaButtons.tsx","common/components/languageCombo/LanguageCombo.tsx","components/header/header.tsx","components/header/headerContainer.tsx","components/footer/footer.tsx","components/footer/footerContainer.tsx","components/layout.tsx","components/layoutStyler/layoutStyler.tsx","actions/downloadList/addDownloadAction.ts","model/downloadList/downloadDocument.ts","model/downloadDocumentState/SingleDocumentDownloadState.ts","common/utils/caseFileAndDocDownloadStateUtils.ts","common/components/ImageComponent/ImageComponent.tsx","common/components/headerLogo/headerLogo.tsx","components/detailDoc/detailDoc.tsx","actions/downloadDocument/downloadSingleDocument.ts","components/detailDoc/detailDocContainer.tsx","actions/detailDoc/getDetailAction.ts","components/detailDoc/detailDocModal.tsx","components/searchItem/searchItem.tsx","components/searchItem/searchItemContainer.tsx","common/components/documentResulList/documentResultList.tsx","components/mainSearch/mainSearch.tsx","actions/mainSearch/loadSearchAction.ts","model/enum/orderType.ts","common/utils/apiUtils.ts","actions/mainSearch/loadLastLoaded.ts","actions/mainSearch/loadFeaturedDocuments.ts","actions/mainSearch/clearAdvancedSearchResultAction.ts","actions/mainSearch/saveCurrentSearchAction.ts","components/mainSearch/mainSearchContainer.tsx","actions/dowloadFile/downloadFile.tsx","common/components/pager/pagerComponent.tsx","components/detailFile/detailFile.tsx","components/detailFile/detailFileContainer.tsx","actions/detailFile/getDetailFileAction.ts","components/detailFile/detailFileModal.tsx","components/searchFiles/searchFiles.tsx","components/searchFiles/searchFilesContainer.tsx","common/components/filesResultsList/filesResultList.tsx","common/utils/componentUtils/renderList.tsx","common/utils/componentUtils/renderShowImages.tsx","components/mainResult/mainResult.tsx","actions/classificationChart/clearSearchResultAction.ts","components/mainResult/mainResultContainer.tsx","actions/mainSearch/loadResultLoadedAction.ts","model/contact/ContactRequest.ts","components/contact/Contact.tsx","components/contact/ContactContainer.tsx","actions/contact/sendContactAction.ts","common/components/facets/facetLastComponent.tsx","common/components/facets/facetSecondComponent.tsx","common/components/facets/facetComponent.tsx","styles/loading/loading.ts","common/components/loadingComponent/loadingClassificationTable.tsx","components/clasification/classificactionChart.tsx","actions/mainSearch/loadClassificationTableAction.ts","components/clasification/classificationChartContainer.tsx","actions/classificationChart/loadClassificationChart.ts","actions/searchFilters/loadSearchFilters.ts","components/advancedSearch/FilterExpresionComponent.tsx","components/advancedSearch/GroupFilter.tsx","common/components/loadingComponent/loading.tsx","components/advancedSearch/AdvancedSearch.tsx","components/advancedSearch/AdvancedSearchContainer.tsx","components/expired/expired.tsx","common/components/info/info.tsx","routes.tsx","index.tsx","styles/img/APV-logo-small.svg","styles/img/imageNotAvailable.svg","styles/img/APV-logo.svg","styles/img/stroke.svg","styles/img/logo-aslan-blanco.png","styles/img/spa_flag.svg","styles/img/uk_flag.svg","styles/img/Flag_of_the_Valencian_Community_(2x3).svg","styles/img/APV-logo-codigo.png","styles/img/imageNotAvailableEn.svg","styles/img/imageNotAvailableVa.svg"],"names":["Boolean","window","location","hostname","match","DownloadDocumentStateTypes","actionsDefinition","HTTP_CALL_START","HTTP_CALL_END","LOAD_SEARCH","GET_SEARCH","LOAD_LAST_LOADED","CLEAR_STATE_FROM_AUTOCOMPLETE","LOAD_RESULT","LOAD_RESULT_SIMPLE","LOAD_RESULT_ADVANCED","LOAD_RESULT_LOADED","LOAD_FEATURED_DOCUMENTS","SAVE_CURRENT_SEARCH","ADD_ITEM","GET_ITEMS","REMOVE_ITEM","CLEAR_LIST","LOAD_DETAIL","LOAD_CLASSIFICATION_CHART","LOAD_RESULTS_CHART","CLEAR_SEARCH_RESULTS","DOWNLOAD_LIST","CLEAR_STATE","DOWNLOAD_ONE","CLEAR_SINGLE_STATE","ADD_DOC","ADD_CASEFILE","CLEAR_ADVANCED_RESULT","GET_FILTERS","CLEAR_FILTERS","LOAD_DETAIL_FILE","GET_FILES","LOADING","COMPLETED","SAVE_LANGUAGE","AdvanceSearchResult","Object","classCallCheck","this","docs","files","facets","documentTypeGroupsFacets","total","page","ClassificationTableState","loading","searchResult","handleClassificationTableLoading","state","payload","objectSpread","handleClassificationTableCompleted","LogicOperatorType","OperatorType","handleDownloadOneCompleted","arguments","length","undefined","newState","slice","fileToUpdate","find","x","docId","downloadState","newDocState","NOTSTARTED","push","handleClearDownloadStateCompleted","handleClearSingleDownloadStateCompleted","fileIndex","indexOf","newFileState","handleAddFileCompleted","SearchFilters","filters","SearchFiltersState","isLoaded","loadSearchFilterCompleted","clearSearchFilterState","handleHttpCallStart","callCount","inProgress","handleHttpCallEnd","handleGetSearchCompleted","handeClearAdvancedResult","searchTypeEnum","FilterExpression","field","operator","value","Connects","exp","connect","ConnectRequest","condition","or","GroupRequest","group","Filters","orderType","handleGetSearchResultCompleted","loadResultAreaCompleted","getItemsCompleted","addItemCompleted","id","removeItemCompleted","itemToRemove","indexOfItem","splice","clearListCompleted","handleGetDetailCompleted","detailSearchResult","isDataLoaded","createEmptyDocumentState","currentState","handleDownloadListCompleted","loadResultChartCompleted","create","detailFileResult","handleGetSearchAdvancedCompleted","handleLastSearchCompleted","languageIds","es","en","va","getLanguageLocalStorage","setDefaultLanguage","localStorage","getItem","saveLanguageLocalStorage","selectedLanguage","setItem","handleSaveLanguageCompleted","combineReducers","http","action","type","lastLoaded","featuredDocuments","filtersRequest","advSearchResult","downloadList","detail","originalId","name","pdfUri","public","thumbnailUri","description","moreResults","apvDocType","size","hasPhotographs","hasPlans","initDate","endDate","clasificationType","tipoDocumentalENI","apvDocSubType","caseFiles","notes","score","signature","classificationChart","filtersChart","downloadingDocumentListStatus","searchFilters","filesList","singleDocumentDownloadStateList","singleCaseFileDownloadStateList","detailFile","documentalSeries","simpleSearch","Simple","lastSearch","classificationTable","language","dispatchHttpCallEndAction","dispatch","next","meta","httpEnd","cleanAction","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middlewares","reduxThunk","_ref","store","createStore","applyMiddleware","apply","createBrowserHistory","removeDownloadAction","document","removeDownload","payloadRem","commonStringsEn","DOWNLOAD_TERMS_TITLE","DOWNLOAD_TERMS1","DOWNLOAD_TERMS2","DOWNLOAD_TERMS3","DOWNLOAD_ITALIC1","DOWNLOAD_ITALIC2","DOWNLOAD_TERMS7","DOWNLOAD_BOLD_TEXT4","DOWNLOAD_TERMS8","DOWNLOAD_BOLD_TEXT5","DOWNLOAD_TERMS9","DOWNLOAD_BOLD_TEXT3","DOWNLOAD_BOLD_TEXT1","DOWNLOAD_BOLD_TEXT2","commonStringsEs","commonStringsVa","DOWNLOAD_TERMS4","DOWNLOAD_ITALIC3","DOWNLOAD_TERMS10","DOWNLOAD_TERMS5","DOWNLOAD_TERMS6","DOWNLOAD_ITALIC4","DOWNLOAD_TERMS11","ToastrType","getLanguage","DonwloadConfirmationPanel","_React$Component","props","_this","possibleConstructorReturn","getPrototypeOf","call","getLanguages","onAccept","setState","didConfirm","onCancel","onCheckbox","inherits","createClass","key","_this2","stringsLanguages","react_default","a","createElement","Fragment","Dialog","open","showPanel","onClose","scroll","aria-labelledby","aria-describedby","className","SEARCH","MODAL","GENERAL_CONDITIONS","Checkbox","onChange","label","ACCEPT_CONDITIONS","DefaultButton","onClick","text","BUTTONS","CANCEL","PrimaryButton","disabled","ACCEPT","React","Component","DownloadList","_getDownloadStatusClass","isPanelOpen","downloadingDocumentStatus","INPROGRESS","ERROR","_renderArrow","index_esm","_renderDownloadList","downloadConfirmationPanel_DonwloadConfirmationPanel","onAcceptDownload","onCancelDownload","showDownloadPanel","_createDownloadList","map","itemList","_renderDownloadButton","downloadButtonClick","DOWNLOADLIST","DOWNLOAD_SELECTION","item","_createDownloadListItem","changePanelShow","doc","removeItem","requestList","forEach","request","docUri","downloadDocList","downloadDocument","hidePanel","prevProps","clearDownloadList","clearDownloadState","panelClass","noItemsClass","downloadStatusClass","concat","X_SELECTED","Alerts","message","toastr","positionClass","Success","Info","Warning","Error","methodRequest","msalConfig","auth","authority","process","clientId","postLogoutRedirectUri","cache","storeAuthStateInCookie","CacheLocation","msalInstance","UserAgentApplication","PnPFetchClient","_BearerTokenFetchClie","authContext","_fetch","fetch","_x","toString","asyncToGenerator","regenerator_default","mark","_callee","url","options","token","_args","wrap","_context","prev","isUrlAbsolute","getToken","getResource","sent","abrupt","get","prototype","stop","_x2","_getToken","_callee2","resource","response","_context2","scopes","acquireTokenSilent","accessToken","t0","_x3","decode","claims","hasOwnProperty","roles","errorCode","parser","href","protocol","BearerTokenFetchClient","routeUrls","search","result","homeResult","resources","advancedSearch","login","contacto","expired","ayuda","webValenciaport","info","politicaDeCookies","routeStrings","headersCon","Content-Type","Accept","userLanguage","baseUrl","GetPnp","sessionStorage","publicUrl","pnp","mapToDetailSeachResult","mapToSearchFiles","mapNotes","searchMap","mapToDocumentType","code","documentSubType","mapToDocumentSubType","mainFunctions","documentarySeries","mapToDocumentarySerie","documentariesSeries","handleResponse","ok","json","then","downloadFile","mapToDetailFileResult","mapToSearchResult","documentalSerie","mapToSearchComplexResult","_loop","lstTemp","faceLst","facetMap","count","filter","displayName","mapToSearchFilters","searchFiltersMapped","mappedFilter","display","conditions","mapSearchFilterConditions","conditionsMapped","apiCall","urlApi","obj","mapFunc","isDownload","status","history","urlValue","body","appendChild","style","setAttribute","click","parentNode","removeChild","searchMsalApi","searchUrl","SearchText","method","headers","JSON","stringify","textButton","MORE_RESULTS","res","searchLastLoadedUrl","searchTypeEnumUrl","advancedSearchoadedUrl","searchTypeApi","docsRequest","docDownloadUrl","classificationChartUrl","getSearchFiltersUrl","searchFeaturedDocumentsUrl","filesId","contactRequest","contactEmailUrl","classificationTableUrl","downloadDocumentsDispatch","payloadDis","clearDocumentDownloadState","payloadClear","DownloadListContainer","show","ALERTS","DOWNLOAD_DOCS_IN_PROGRESS","DOWNLOAD_DOCS_SUCESSFULLY","DOWNLOAD_DOCS_FAILED","downloadMultipleDocsAction","SocialMediaButtons","copyClickboard","select","execCommand","LINK_COPY_CLICKBOARD","HEADER","SHARE","TOOLTIP","COPY","TeachingBubble","target","onDismiss","styles","subComponentStyles","callout","calloutMain","background","beak","calloutProps","FacebookShareButton","quote","title","MAIL","FacebookIcon","iconBgStyle","fill","logoFillColor","TwitterShareButton","TwitterIcon","LinkedinShareButton","LinkedinIcon","WhatsappShareButton","WhatsappIcon","round","EmailShareButton","subject","EmailIcon","io_index_esm","LanguageCombo","getOptions","renderEnOption","renderEsOption","renderVaOption","src","enFlag","LANGUAGE","esFlag","vaFlag","getSelectedOption","languageSelected","event","changeLanguage","react_select_esm","defaultValue","Header","node","msal","_menuButtonElement","toggleExpanded","expanded","logOut","logout","isUserInfoVisible","initials","jwt_decode","split","infoUser","INFOUSER","NAME","LOGOUT","getUser","isUserInfoSelected","Persona","PersonaSize","size40","primaryText","hidePersonaDetails","showSocial","renderHeaderLanguageCombo","LanguageCombo_LanguageCombo","pathname","pathName","newPathName","bind","assertThisInitialized","authenticated","isCalloutVisible","BuscarLink","react_router_dom","to","BusquedaAvanzadaLink","ADVANCED_SEARCH","RecursosLink","CLASSIFICATION","ContactoLink","fa_index_esm","CONTACT","AyudaLink","rel","PDF_HELP","HELP","HomeLinkLogo","logo","alt","logoSmall","WebPuerto","exact","ref","menuButton","socialMediaButtons_SocialMediaButtons","LINK","closeButtonAriaLabel","hasCloseIcon","TITLE","ONLINE","ASLAN","ASLAN_D","logoBanner","HeaderContainer","Footer","onRejectCookiePanel","cookies","remove","rejectedCookie","Cookies","politicaLink","PDF_PRIVACY","FOOTER","POLICY","AvisoLink","PDF_ADVERTISEMENT","LEGAL","CookiesLink","PDF_COOKIES","COOKIES","REFUSED_COOKIES","RESERVED_RIGHTS","FooterContainer","Layout","onAcceptCookiePanel","set","react","children","LayoutStyler","Comp","Styler","layout_Layout","addDownloadAction","addDownload","payloadAdd","createEmptyIDownloadDocument","createEmptySingleDocumentDownloadState","getCurrentCaseFileFromStateList","caseFileList","getCurrentDocFromStateList","docList","getFileDownloadStateClass","isDoc","ImageComponent","_getPrototypeOf2","_len","args","Array","_key","onError","onerror","imageNotAvailable","imgSrc","HeaderLogo","logoCodigo","DetailDocComponent","thumbnail","image","stroke","ImageComponent_ImageComponent","dateTitle","DETAIL_DOC","DATE","typeTitle","TYPE","initialDate","INITIAL_DATE","moment","utc","format","dueDate","DATE_END","signatura","signatureText","SIGNATURE_TOPOGRAPHIC","SIGNATURE","trim","DESCRIPTION","NO_DESCRIPTION","subType","SUBTYPE_DOC_APV","note","DOC_VOID","header","idDoc","headerLogo_HeaderLogo","downLoadButton","DOWNLOAD","privateDoc","NO_PUBLIC","typeAPV","TYPE_DOC_APV","idDocument","typeENI","TYPE_DOC_ENI","concatCitaText","citaText","DOC_QUOTE_TEXT","endsWith","share","downloadDoc","currentDocState","params","getDetail","currentDoc","downloadDocStateList","addToDocDownloadStateList","clearDocDownloadStateList","_this3","downloadStateClass","dir","DOC_TITLE","DOC_NOTES","DOC_REFERENCES","DOC_QUOTE","downloadDocumentAction","docRequest","inProgressDoc","downloadDocumentDispatch","DOWNLOAD_DOC_IN_PROGRESS","completedDoc","errorDoc","DOWNLOAD_DOC_FAILED","payloadDoc","addDocumentToStateListAction","docIdParam","newDoc","addDocumentToStateListDispatch","clearDocumentStateFromListAction","clearDoc","clearDocumentStateFromListDispatch","DetailDocContainer","customProps","loadDetailCompleted","getDetailAction","DetailDocModal","renderCloseModalButton","arrivedFromFileModal","ti_index_esm","Modal","titleAriaId","isOpen","showModal","SearchItemComponent","ellipsizeTextBox","el","getElementById","wordArray","innerHTML","scrollHeight","offsetHeight","pop","join","descriptionText","initDescriptionText","endDescriptionText","maxLenghtReached","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","Symbol","iterator","done","currentWord","err","return","nameText","initNameText","endNameText","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","openDetailModal","subTypeText","initsubTypeTextText","endsubTypeTextText","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","downloadButton","hideDownloadButton","handleImgError","e","thumbnailUrl","renderButtonsNoPublic","addToList","canAddToList","renderDownloadListButton","isDocInList","renderRemoveFromListButton","renderAddToListButton","REMOVE","removeDocFromList","ADD","addDocToList","docToRemove","removeFromList","docToAdd","checkDocumentInDownloadList","documentList","hideFileModal","onCloseModal","showFileModal","showViewObservations","imageNotAvailableEn","imageNotAvailableVa","prevState","showImage","backgroundImage","docInListClass","tipoAPV","NO_TYPE_DOC_APV","subtipoAPV","idOriginal","noDate","DOC_NO_DATE","noDescription","noSubtypeAPV","NO_SUBTYPE_DOC_APV","detailDocModal_DetailDocModal","SearchItemContainer","isPublic","DocumentResultListComponent","changeIcon","showListClass","showList","documentsResults","MainSearchComponent","grid","results","itemChanged","updateLayout","renderMenuItemChildren","option","handleInputChange","searchText","getSearch","clearSuggestions","handleOnChange","getElementsByName","saveCurrentSearch","setFilter","optionsSelected","showCookiePanel","typeahead","input","getInstance","_updateText","focus","getFeaturedDocuments","SINTAX_HELP","react_bootstrap_typeahead_lib","emptyLabel","labelKey","inputProps","filterBy","filterByCallback","placeholder","onInputChange","FEATURED_DOCUMENTS","documentResultList_DocumentResultListComponent","ReactAI","withTracking","orderTypeEnum","sendToResultAction","isMoreResults","searchTypeValue","Co","Eq","and","cond","filterRequest","getFilterByName","loadResultCompletedSimple","loadResultCompleted","loadResultCompletedAdvanced","loadAreaCompleted","loadLastReesults","clearAdvancedSearchResultActionCompleted","saveCurrentSearchCompleted","MainSearchContainer","loadSearchAction","getLastLoaded","featuredResult","resultLastLoaded","clearAdvancedSearchResult","saveCurrentSearchAction","downloadCaseFileAction","caseFileIdParam","inProgressCaseFile","downloadCaseFileDispatch","DOWNLOAD_DOC_FILE_FAILED","addCaseFileToStateListAction","addCaseFileToStateListDispatch","clearCaseFileStateFromListAction","clearCaseFileStateFromListDispatch","PagerComponent","getPageBlock","blockPage","pages","nextPage","calculation","currentPageBlock","totalPages","Math","trunc","calculateTotalPages","calculatedPage","currentPage","changePaging","prevPage","renderPrevPageButton","PAGINATION","PREVIOUS","renderNextPageButton","calculateTotalPageBlocks","pageNumber","NEXT","totalItems","blockCount","pageBlock","pagin","getPaging","blockPages","i","buttonPage","active","data-automation-id","String","allowDisabledFocus","DetailFileComponent","NO_DESCRIPTION_FILE","FILE_VOID","caseFileId","idFile","onPageChange","pageNum","pageBlockParam","currentCaseFile","filterPage","currentCaseFileRes","caseFileDownloadList","currentCaseFileList","clearCaseFileFromStateListAction","RESULTS","FILES","FILE_m","FILTER","DOCUMENTARY_SERIES","DOCS_RELATED_FILE","pagerComponent_PagerComponent","DetailFileContainer","getDetailFileAction","fileId","DetailFileModal","hideSelf","showSelf","hiddenDocClass","idCaseFile","SearchFilesComponent","searchFile","onCancelModal","detailFileModal_DetailFileModal","SearchFilesContainer","FilesResultListComponent","filesResults","renderList","onClickParam","DOCS","GRID_VIEW","LIST_VIEW","renderShowImages","showImages","onChangeParam","Toggle","checked","ev","backgroundColor","IMG","MainResultComponent","onDateChange","date","isInit","formatedDate","toISOString","Ge","Le","dateGroup","cloneDeep","dateGroupRequest","dateCondition","modifyFilters","groupIndex","mainGroupRequest","secondMainGroupRequest","facetGroupRequest","toggleImages","showFilter","changeShowImages","renderFilesResultsOrMessage","renderFilesResults","NOT_FOUND","PLEASE_TRY","renderListComponent","SEARCH_RESULTS_DOCS","RESULTS_FILES","RESULTS_DOCS","filesResultList_FilesResultListComponent","X_RESULTS_MIDDLE","X_RESULTS","SEE_FILES","showMenuFilters","formatDisplayName","NO_CONTENT","CONTENT","startsWith","getExcludedKeys","renderInitDatePicker","entry_default","onInitDatePickerChange","locale","getLocale","clearIcon","calendarIcon","renderEndDatePicker","onEndDatePickerChange","newDate","Date","setDate","getDate","updateEndDate","searchByDocType","cleanFilters","searchByFacets","initFiltersRequest","list","alert","clearSearchResult","getAdvancedSearch","mainGroup","secondGroup","tempFilter","facetGroup","searchData","isBoolean","toLowerCase","facetsArray","graphicFacet","initDatePicker","endDatePicker","getFacets","facetDocs","FacetList","showFilterClass","FILTER_DOCS","FILTER_DATE","END_DATE","DOCS_TYPE","OTHER_GRAPHIC","ActionButton","iconProps","iconName","CLEAN_FILTERS","_this4","facetKey","getFacetTitle","facetHTML","ENY_DOCUMENTARY","CLASIFICATION_TYPE","FILE","CONTAINS_PHOTO","CONTAINS_PLANS","OTHER","_this5","listItems","facet","facetIndexFirst","types","details","currentFacet","facetIndex","subTypes","subtypeDetails","cSubType","getIsBoolean","clearSearchResultActionCompleted","MainResultContainer","loadResultLoadedCompleted","loadResultLoadedAction","createEmptyContactRequest","sender","Contact","handleEmailInputChange","currentText","RegExp","test","formErrors","email","ERRORS","CONTACT_ERROR_FORMAT_MAIL","CONTACT_ERROR_VOID_MAIL","handleSubjectInputChange","CONTACT_ERROR_VOID_SUBJECT","handleBodyInputChange","CONTACT_ERROR_VOID_BODY","handleinputPolicyChange","policyChecked","handleContactClick","regex","sendContact","CONTACT_SEND_REQUEST","handleCaptchaChange","captchaChecked","SUBTITLE","SERVICE_HOURS","SERVICE_HOURS_EXT","ContactContainer","CONTACT_SEND_REQUEST_OK","sendContactAction","FacetLastComponent","onClickLast","isLastSelected","FacetSecondComponent","renderLastBox","elements","secondBox","facetLast","facetLastComponent_FacetLastComponent","onLastComponentClick","lastComponentId","ChangeStateSecondBox","FacetComponent","renderSecondBox","firstBox","facetSecond","facetSecondComponent_FacetSecondComponent","secondComponentId","onSecondComponentClick","ChangeStateFirstBox","activeFolder","WrappedComponent","spin","keyframes","_templateObject","LoadingContainerClassificationTable","styled","div","_templateObject2","LoadingContainer","_templateObject3","LoadingComponentClassificationTable","ClassificationChartComponent","searchDataPage","searchOrder","connectReq","groupReq","filterText","firstComponentClick","firstComponentIdCla","secondComponentIdCla","lastComponentIdCla","selectedFilter","firstComponentId","lastClicked","isSelected","breadCrumb","labelSecond","labelLast","labels","labelFirst","SEPARATOR","renderTotalResults","CLASSIFICATION_TABLE","STRUCTURE","FUNCTIONS","TEXT_SELECTED","renderSpinnerOrResult","loadingClassificationTable_LoadingComponentClassificationTable","sortFilesResult","n1","n2","Ascending","renderResultHeaderToggles","Descending","RESULTS_HEADER_TOGGLES","orderedFileResult","sort","RESULTS_FILES_CLASSIFICATION","shouldRenderFacet","shouldRender","every","getclassificationChart","first","facetComponent_FacetComponent","classificationTableLoaded","classificationTableLoading","ClassificationChartContainer","finally","loadClassificationTableAction","loadSearchFiltersCompleted","clearSearchFiltersCompleted","FilterExpressionComponent","generateFilterComponent","joinClassName","_getJoinClassName","removeFilter","generateFieldSelect","generateConditionsSelect","generateInputOrDatePicker","handleFieldSelectChanged","filterOptionIndex","expression","selected","currentFilter","handleConditionSelectChanged","conditionOptionIndex","ADD_VALUE","getFilterValue","handleFilterValueChanged","generateEmptyFilterComponent","onAddFilterClick","ADD_NEW","leftJoin","rightJoin","selectedField","selectedCondition","onChangeFilter","assignDateValue","filterAdded","GroupFilter","generateFilterExpressionComponents","slides","generateSlides","react_id_swiper_lib_default","assign","direction","slidesPerView","grabCursor","freeMode","scrollbar","mousewheel","shouldSwiperUpdate","slide","prevLogicOperator","groupConditions","filterIndex","filterElement","FilterExpresionComponent_FilterExpressionComponent","_getShouldBeLeftJoin","connectBox","renderAndOrConnectBox","addFilter","generateAddFilterExpressionBox","generateSlide","element","conditionsLength","currentIndex","logicOperator","onChangeFilterOperator","LoadingComponent","AdvancedSearch","initialGroupNumber","executeSearchClick","canDispatch","_evaluateFilters","_formatFilters","getFilteredResults","ERROR_ADVANCED_SEARCH","_createEmptyGroups","groupRequest","emptyConditionFromProps","newFilterAdded","firstFilter","renderGroupBox","groupElement","GroupFilter_GroupFilter","onChangefilter","operatorType","changeFilterOperator","renderAndOrBox","groupLength","changeOperator","OR","AND","_removeEmptyFilters","tempFilters","index","canDispatchFilters","filtersWithoutEmptyGroups","filtersWithoutEmptyGroupsFormated","getSearchFilters","clearSearchFilters","executeButtonClass","RUN_ADVANCED","loading_LoadingComponent","AdvancedSearchContainer","ExpiredComponent","handleRedirectCallback","authErr","accountState","EXPIRED_SESSION","RECOVERED_SESSION","InfoComponent","routes","react_router","path","component","Auth","renewIframe","hasError","errorMessage","isCallback","hash","getAccount","loginRedirect","from","init","instrumentationKey","setAppContext","urlReferrer","referrer","initializeIcons","disableWarnings","languageCookie","ReactDOM","render","react_hot_loader","CookieBot_default","domainGroupId","navigator","serviceWorker","ready","registration","unregister","renderApp","module","exports","__webpack_require__","p"],"mappings":"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","file":"static/js/main.b7ed8234.chunk.js","sourcesContent":["// 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\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: 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(\n (process as { env: { [key: string]: string } }).env.PUBLIC_URL,\n window.location.href\n );\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\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: 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\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\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: 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\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","export enum DownloadDocumentStateTypes {\n INPROGRESS,\n ERROR,\n COMPLETED,\n NOTSTARTED\n}\n","export const actionsDefinition = {\n http: {\n HTTP_CALL_START: 'HTTP_CALL_START',\n HTTP_CALL_END: 'HTTP_CALL_END'\n },\n searchResults: {\n LOAD_SEARCH: 'LOAD_SEARCH',\n GET_SEARCH: 'GET_SEARCH',\n LOAD_LAST_LOADED: 'LOAD_LAST_LOADED',\n CLEAR_STATE_FROM_AUTOCOMPLETE: 'CLEAR_STATE_FROM_AUTOCOMPLETE',\n LOAD_RESULT: 'LOAD_RESULT',\n LOAD_RESULT_SIMPLE: 'LOAD_RESULT_SIMPLE',\n LOAD_RESULT_ADVANCED: 'LOAD_RESULT_ADVANCED',\n LOAD_RESULT_LOADED: 'LOAD_RESULT_LOADED',\n LOAD_FEATURED_DOCUMENTS: 'LOAD_FEATURED_DOCUMENTS',\n SAVE_CURRENT_SEARCH: 'SAVE_CURRENT_SEARCH',\n },\n downloadList: {\n ADD_ITEM: 'ADD_ITEM',\n GET_ITEMS: 'GET_ITEMS',\n REMOVE_ITEM: 'REMOVE_ITEM',\n CLEAR_LIST: 'CLEAR_LIST',\n },\n detailDoc: {\n LOAD_DETAIL: 'LOAD_DETAIL'\n },\n classificationChart: {\n LOAD_CLASSIFICATION_CHART: 'LOAD_CLASSIFICATION_CHART',\n LOAD_RESULTS_CHART: 'LOAD_RESULTS_CHART',\n CLEAR_SEARCH_RESULTS: 'CLEAR_SEARCH_RESULTS'\n },\n downloadDocument: {\n DOWNLOAD_LIST: 'DOWNLOAD_LIST',\n CLEAR_STATE: 'CLEAR_STATE'\n },\n downloadSingleDocument: {\n DOWNLOAD_ONE: 'DOWNLOAD_ONE',\n CLEAR_STATE: 'CLEAR_STATE',\n CLEAR_SINGLE_STATE: 'CLEAR_SINGLE_STATE',\n ADD_DOC: 'ADD_DOC'\n },\n downloadSingleCaseFile: {\n DOWNLOAD_ONE: 'DOWNLOAD_ONE',\n CLEAR_STATE: 'CLEAR_STATE',\n CLEAR_SINGLE_STATE: 'CLEAR_SINGLE_STATE',\n ADD_CASEFILE: 'ADD_CASEFILE'\n },\n mainSearch: {\n CLEAR_ADVANCED_RESULT: 'CLEAR_ADVANCED_RESULT'\n },\n searchFilters: {\n GET_FILTERS: 'GET_FILTERS',\n CLEAR_FILTERS: 'CLEAR_FILTERS',\n },\n detailFile: {\n LOAD_DETAIL_FILE: 'LOAD_DETAIL_FILE',\n },\n filesList: {\n GET_FILES: 'GET_FILES',\n },\n authenticated: {\n IS_AUTHENTICATED: 'IS_AUTHENTICATED'\n },\n classificationTable: {\n LOADING: 'CLASSIFICATIONTABLE_LOADING',\n COMPLETED: 'CLASSIFICATIONTABLE_COMPLETED'\n },\n language: {\n SAVE_LANGUAGE: 'SAVE_LANGUAGE'\n }\n};\n","import { SearchFilesModel, DetailSearchFiles } from './searchFiles';\n\nexport interface SearchResult {\n id: string;\n originalId: string;\n name: string;\n pdfUri: string;\n public: boolean;\n thumbnailUri: string;\n description: string;\n moreResults: boolean;\n apvDocType: string;\n}\n\nexport interface DetailSearchResult extends SearchResult {\n size: number;\n hasPhotographs: boolean;\n hasPlans: boolean;\n initDate: string;\n endDate: string;\n clasificationType: string;\n location: string;\n tipoDocumentalENI: string;\n apvDocSubType: string;\n caseFiles: SearchFilesModel[];\n notes: string[];\n score: number;\n total: number;\n page: number;\n signature: string;\n}\n\nexport const CreateDetailSearchResult = (): DetailSearchResult => {\n return {\n id: '',\n originalId: '',\n name: '',\n pdfUri: '',\n public: false,\n thumbnailUri: '',\n description: '',\n moreResults: false,\n apvDocType: '',\n size: 0,\n hasPhotographs: false,\n hasPlans: false,\n initDate: '',\n endDate: '',\n clasificationType: '',\n location: '',\n tipoDocumentalENI: '',\n apvDocSubType: '',\n caseFiles: [],\n notes: [],\n score: 0,\n total: 0,\n page: 0,\n signature: ''\n };\n};\n\nexport const GenerateEmptySearchResult = (): SearchResult => {\n return {\n id: '',\n originalId: '',\n name: '',\n pdfUri: '',\n public: true,\n thumbnailUri: '',\n description: '',\n apvDocType: '',\n moreResults: false\n };\n};\n\nexport class Facet {\n public count: number;\n public filter: string;\n public displayName: string;\n\n constructor(count: number, filter: string, displayName: string) {\n this.count = count;\n this.filter = filter;\n this.displayName = displayName;\n }\n}\n\nexport class ApvDocTypeFacet extends Facet {\n public subTypes: Facet[];\n\n constructor(count: number, filter: string, displayName: string) {\n super(count, filter, displayName);\n this.subTypes = [];\n }\n}\n\nexport class DocGroup extends Facet {\n public types: ApvDocTypeFacet[];\n\n constructor(count: number, filter: string, displayName: string) {\n super(count, filter, displayName);\n this.types = [];\n }\n}\n\nexport class AdvanceSearchResult {\n public docs: DetailSearchResult[];\n public files: DetailSearchFiles[];\n public facets: { [key: string]: Facet[] };\n public documentTypeGroupsFacets: DocGroup[];\n public total: number;\n public page: number;\n\n constructor() {\n this.docs = [];\n this.facets = {};\n this.documentTypeGroupsFacets = [];\n }\n}\n\nexport class ClassificationTableState {\n public loading: boolean;\n public searchResult: AdvanceSearchResult;\n\n constructor() {\n this.loading = false;\n this.searchResult = new AdvanceSearchResult();\n }\n}\n","import { actionsDefinition } from './../actions/actionsDef';\nimport { ClassificationTableState, AdvanceSearchResult } from './../model/search/SearchResult';\n\nexport const classificationTableReducer = (state: ClassificationTableState = new ClassificationTableState(), action: any) => {\n switch (action.type) {\n case actionsDefinition.classificationTable.LOADING:\n return handleClassificationTableLoading(state, action.payload);\n case actionsDefinition.classificationTable.COMPLETED:\n return handleClassificationTableCompleted(state, action.payload);\n }\n return state;\n}\n\nconst handleClassificationTableLoading = (state: ClassificationTableState, payload: boolean): ClassificationTableState => {\n return {\n ...state,\n loading: payload\n };\n};\n\nconst handleClassificationTableCompleted = (state: ClassificationTableState, payload: AdvanceSearchResult): ClassificationTableState => {\n return {\n ...state,\n searchResult: payload\n }\n}\n","import { DownloadDocumentStateTypes } from '../../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { SingleDocumentDownloadState } from '../../../model/downloadDocumentState/SingleDocumentDownloadState';\n\nexport const handleDownloadOneCompleted = (state: SingleDocumentDownloadState[] = [], payload: SingleDocumentDownloadState) => {\n const newState = state.slice();\n const fileToUpdate = newState.find(x => x.docId === payload.docId);\n if (fileToUpdate) {\n fileToUpdate.downloadState = payload.downloadState;\n } else {\n const newDocState: SingleDocumentDownloadState = {\n docId: payload.docId,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n newState.push(newDocState);\n }\n return newState;\n};\n\nexport const handleClearDownloadStateCompleted = (state: SingleDocumentDownloadState[] = [], payload: SingleDocumentDownloadState) => {\n return [];\n};\n\nexport const handleClearSingleDownloadStateCompleted = (state: SingleDocumentDownloadState[] = [], payload: SingleDocumentDownloadState) => {\n const newState = state.slice();\n const fileIndex = newState.indexOf(newState.find(x => x.docId === payload.docId));\n if (fileIndex !== -1) {\n newState[fileIndex].downloadState = DownloadDocumentStateTypes.NOTSTARTED;\n } else {\n const newFileState: SingleDocumentDownloadState = {\n docId: payload.docId,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n newState.push(newFileState);\n }\n return newState;\n};\n\nexport const handleAddFileCompleted = (state: SingleDocumentDownloadState[] = [], payload: SingleDocumentDownloadState) => {\n const newState = state.slice();\n const newFileState: SingleDocumentDownloadState = {\n docId: payload.docId,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n newState.push(newFileState);\n return newState;\n};\n","export enum LogicOperatorType {\n or = 'or',\n and = 'and'\n}\n\nexport enum OperatorType {\n Eq = 'Igual a',\n Co = 'Contiene',\n Nc = 'No contiene',\n Lt = 'Menor que',\n Le = 'Menor o igual que',\n Gt = 'Mayor que',\n Ge = 'Mayor o igual que',\n Ne = 'Distinto'\n}\n\nexport class FilterExpression {\n public field: string;\n public operator: string;\n public value: string;\n\n constructor (field: string, operator: string, value: string) {\n this.field = field;\n this.operator = operator;\n this.value = value;\n }\n}\n\nexport class Connects {\n public exp: FilterExpression;\n public connect: LogicOperatorType;\n\n constructor (exp: FilterExpression, connect: LogicOperatorType) {\n this.exp = exp;\n this.connect = connect;\n }\n}\n\nexport class ConnectRequest {\n public condition: Connects[];\n public connect: LogicOperatorType;\n\n constructor () {\n this.condition = [];\n this.connect = LogicOperatorType.or;\n }\n}\n\nexport class GroupRequest {\n public group: ConnectRequest[];\n constructor () {\n this.group = [];\n }\n}\n\nexport class Filters {\n public filters: GroupRequest;\n public page: number;\n public orderType: string;\n\n constructor () {\n this.filters = new GroupRequest();\n this.page = 0;\n this.orderType = '';\n }\n}\n","import { Condition } from './condition';\nexport class SearchFilters {\n filters: SearchFilter[];\n constructor() {\n this.filters = [];\n }\n}\n\nexport class SearchFilter {\n field: string;\n display: string;\n conditions: Condition[];\n\n constructor() {\n this.field = '';\n this.display = '';\n this.conditions = [];\n }\n}\n","import { actionsDefinition } from './../actions/actionsDef';\nimport { SearchFilters } from './../model/search/searchFilters';\n\nexport class SearchFiltersState {\n filters: SearchFilters;\n isLoaded: boolean;\n constructor() {\n this.filters = new SearchFilters();\n this.isLoaded = false;\n }\n}\n\nexport const searchFiltersReducer = (state: SearchFiltersState = new SearchFiltersState(), action): SearchFiltersState => {\n if (action.type === actionsDefinition.searchFilters.GET_FILTERS) {\n return loadSearchFilterCompleted(action.payload);\n } else {\n if (action.type === actionsDefinition.searchFilters.CLEAR_FILTERS) {\n return clearSearchFilterState();\n }\n }\n return state;\n};\n\nconst loadSearchFilterCompleted = (payload: SearchFilters) => {\n return {\n isLoaded: true,\n filters: payload\n };\n};\n\nconst clearSearchFilterState = () => {\n return new SearchFiltersState();\n};\n","import { actionsDefinition } from '../actions/actionsDef';\n\nexport interface HttpState {\n callCount: number;\n inProgress: boolean;\n}\n\nconst newState = (): HttpState => ({\n callCount: 0,\n inProgress: false,\n});\n\nexport const httpReducer = (state = newState(), action) => {\n switch (action.type) {\n case actionsDefinition.http.HTTP_CALL_START:\n return handleHttpCallStart(state, action.payload);\n case actionsDefinition.http.HTTP_CALL_END:\n return handleHttpCallEnd(state, action.payload);\n }\n\n return state;\n};\n\nconst handleHttpCallStart = (state: HttpState, payload): HttpState => ({\n callCount: 1,\n inProgress: true,\n});\n\nconst handleHttpCallEnd = (state: HttpState, payload): HttpState => {\n const callCount = state.callCount - 1;\n\n return {\n callCount,\n inProgress: callCount > 0,\n };\n};\n","import { SearchResult } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const searchReducer = (state: SearchResult[] = [], action: any) => {\n if (action.type === actionsDefinition.searchResults.LOAD_SEARCH) {\n return handleGetSearchCompleted(state, action.payload);\n } else {\n if (action.type === actionsDefinition.mainSearch.CLEAR_ADVANCED_RESULT) {\n return handeClearAdvancedResult();\n }\n }\n return state;\n};\n\nconst handleGetSearchCompleted = (state: SearchResult[], payload: SearchResult[]) => {\n return payload;\n};\n\nconst handeClearAdvancedResult = () => {\n return [];\n};\n\n\n","import { SearchResult } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const lastLoadedReducer = (state: SearchResult[] = [], action: any) => {\n if (action.type === actionsDefinition.searchResults.LOAD_LAST_LOADED) {\n return handleGetSearchCompleted(state, action.payload);\n }\n\n return state;\n};\n\nconst handleGetSearchCompleted = (state: SearchResult[], payload: SearchResult[]) => {\n return payload;\n};\n\n\n\n","import { SearchResult } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const featuredDocumentsReducer = (state: SearchResult[] = [], action: any) => {\n if (action.type === actionsDefinition.searchResults.LOAD_FEATURED_DOCUMENTS) {\n return handleGetSearchCompleted(state, action.payload);\n }\n\n return state;\n};\n\nconst handleGetSearchCompleted = (state: SearchResult[], payload: SearchResult[]) => {\n return payload;\n};\n\n\n\n","export enum searchTypeEnum {\n Simple = 'Simple',\n AdvancedSearch = 'Advanced'\n}\n","import { AdvanceSearchResult } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const loadResultLoadedReducer = (state: AdvanceSearchResult = new AdvanceSearchResult(), action: any) => {\n if (action.type === actionsDefinition.searchResults.LOAD_RESULT_LOADED || action.type === actionsDefinition.classificationChart.CLEAR_SEARCH_RESULTS) {\n return handleGetSearchResultCompleted(state, action.payload);\n }\n return state;\n};\n\nconst handleGetSearchResultCompleted = (state: AdvanceSearchResult, payload: AdvanceSearchResult) => {\n return payload;\n};\n","import { Filters } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const resultReducer = (state: Filters = new Filters(), action): Filters => {\n if (action.type === actionsDefinition.searchResults.LOAD_RESULT) {\n return loadResultAreaCompleted(state, action.payload);\n }\n return state;\n};\n\nconst loadResultAreaCompleted = (state: Filters, payload: Filters) => {\n return payload;\n};\n","import { IDownloadDocument } from '../model/downloadList';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const downloadListReducer = (state: IDownloadDocument[] = [], action: any): IDownloadDocument[] => {\n switch (action.type) {\n case actionsDefinition.downloadList.GET_ITEMS:\n return getItemsCompleted(state);\n case actionsDefinition.downloadList.ADD_ITEM:\n return addItemCompleted(state, action.payload);\n case actionsDefinition.downloadList.REMOVE_ITEM:\n return removeItemCompleted(state, action.payload);\n case actionsDefinition.downloadList.CLEAR_LIST:\n return clearListCompleted();\n default:\n return state;\n }\n};\n\nconst getItemsCompleted = (state: IDownloadDocument[] = []): IDownloadDocument[] => {\n return state;\n};\n\nconst addItemCompleted = (state: IDownloadDocument[] = [], payload: IDownloadDocument): IDownloadDocument[] => {\n const newState = state.slice();\n const isItemAdded = newState.find(x => x.id === payload.id) !== undefined;\n if (!isItemAdded) {\n newState.push(payload);\n }\n return newState;\n};\n\nconst removeItemCompleted = (state: IDownloadDocument[] = [], payload: IDownloadDocument): IDownloadDocument[] => {\n const newState = state.slice();\n const itemToRemove = newState.find(x => x.id === payload.id);\n if (itemToRemove) {\n const indexOfItem = newState.indexOf(itemToRemove);\n newState.splice(indexOfItem, 1);\n }\n return newState;\n};\n\nconst clearListCompleted = (): IDownloadDocument[] => {\n return [];\n};\n","import { DetailSearchResult, CreateDetailSearchResult } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport interface DetailState {\n detailSearchResult: DetailSearchResult;\n isDataLoaded: boolean;\n}\n\nexport const createDetailState = () => {\n return ({\n detailSearchResult: CreateDetailSearchResult(),\n isDataLoaded: false,\n });\n};\n\nexport const detailReducer = (state: DetailState = createDetailState(), action: any) => {\n if (action.type === actionsDefinition.detailDoc.LOAD_DETAIL) {\n return handleGetDetailCompleted(state, action.payload);\n }\n return state;\n};\n\nconst handleGetDetailCompleted = (state: DetailState, payload: DetailSearchResult) => {\n return {\n ...state,\n detailSearchResult: payload,\n isDataLoaded: true\n };\n};\n\n\n\n\n","import { DownloadDocumentStateTypes } from './DownloadDocumentStateType';\n\nexport interface DownloadDocumentState {\n currentState: DownloadDocumentStateTypes;\n}\n\nexport const createEmptyDocumentState = (): DownloadDocumentState => {\n return {\n currentState: DownloadDocumentStateTypes.NOTSTARTED\n };\n};\n","import { actionsDefinition } from '../actions/actionsDef';\nimport { DownloadDocumentState, createEmptyDocumentState } from '../model/downloadDocumentState/DownloadDocumentState';\nimport { DownloadDocumentStateTypes } from '../model/downloadDocumentState/DownloadDocumentStateType';\n\nexport const downloadDocumentReducer = (state: DownloadDocumentState = createEmptyDocumentState(), action: any) => {\n switch (action.type) {\n case actionsDefinition.downloadDocument.DOWNLOAD_LIST:\n return handleDownloadListCompleted(state, action.payload);\n case actionsDefinition.downloadDocument.CLEAR_STATE:\n return handleClearDownloadStateCompleted(state, action.payload);\n default:\n return state;\n }\n};\n\nconst handleDownloadListCompleted = (state: DownloadDocumentState = createEmptyDocumentState(), payload: DownloadDocumentStateTypes) => {\n return {\n currentState: payload\n };\n};\n\nconst handleClearDownloadStateCompleted = (state: DownloadDocumentState = createEmptyDocumentState(), payload: DownloadDocumentStateTypes) => {\n return createEmptyDocumentState();\n};\n","import { actionsDefinition } from '../actions/actionsDef';\nimport { IDocumentType } from '../model/documentTypes';\n\nexport const classificationChartReducer = (state: IDocumentType[] = [], action: any): IDocumentType[] => {\n if (action.type === actionsDefinition.classificationChart.LOAD_CLASSIFICATION_CHART) {\n return loadResultAreaCompleted(state, action.payload);\n }\n return state;\n};\n\nconst loadResultAreaCompleted = (state: IDocumentType[], payload: IDocumentType[]) => {\n return payload;\n};\n\n\n\n\n","import { Filters } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const filtersRequestChartReducer = (state: Filters = new Filters(), action): Filters => {\n if (action.type === actionsDefinition.classificationChart.LOAD_RESULTS_CHART) {\n return loadResultChartCompleted(state, action.payload);\n }\n return state;\n};\n\nconst loadResultChartCompleted = (state: Filters, payload: Filters) => {\n return payload;\n};\n","import { SearchFilesModel } from '../model/search/searchFiles';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport const filesListReducer = (state: SearchFilesModel[] = [], action: any): SearchFilesModel[] => {\n if (action.type === actionsDefinition.filesList.GET_FILES) {\n return getItemsCompleted(state, action.payload);\n }\n return state;\n};\n\nconst getItemsCompleted = (state: SearchFilesModel[], payload: SearchFilesModel[]) => {\n return Object.create(state);\n};\n\n","import { DetailSearchFiles, createDetailSearchFiles } from '../model/search';\nimport { actionsDefinition } from '../actions/actionsDef';\n\nexport interface DetailFileState {\n detailFileResult: DetailSearchFiles;\n isDataLoaded: boolean;\n}\n\nexport const createDetailFileState = () => {\n return ({\n detailFileResult: createDetailSearchFiles(),\n isDataLoaded: false,\n });\n};\n\nexport const detailFileReducer = (state: DetailFileState = createDetailFileState(), action: any) => {\n if (action.type === actionsDefinition.detailFile.LOAD_DETAIL_FILE) {\n return handleGetDetailCompleted(state, action.payload);\n }\n return state;\n};\n\nconst handleGetDetailCompleted = (state: DetailFileState, payload: DetailSearchFiles) => {\n return {\n ...state,\n detailFileResult: payload,\n isDataLoaded: true\n };\n};\n\n\n\n\n","import { searchTypeEnum } from '../model/enum/searchType';\nimport { actionsDefinition } from '../actions/actionsDef';\n\n\nexport const simpleSearchReducer = (state: searchTypeEnum = searchTypeEnum.Simple, action: any) => {\n if (action.type === actionsDefinition.searchResults.LOAD_RESULT_SIMPLE) {\n return handleGetSearchCompleted(state, action.payload);\n } else {\n if (action.type === actionsDefinition.searchResults.LOAD_RESULT_ADVANCED) {\n return handleGetSearchAdvancedCompleted(state, action.payload);\n }\n }\n return state;\n};\n\nconst handleGetSearchCompleted = (state: searchTypeEnum, payload: searchTypeEnum) => {\n return payload;\n};\n\nconst handleGetSearchAdvancedCompleted = (state: searchTypeEnum, payload: searchTypeEnum) => {\n return payload;\n};\n","import { actionsDefinition } from '../actions/actionsDef';\n\nexport const lastSearchReducer = (state = '', action: any) => {\n if (action.type === actionsDefinition.searchResults.SAVE_CURRENT_SEARCH) {\n return handleLastSearchCompleted(state, action.payload);\n }\n return state;\n};\n\nconst handleLastSearchCompleted = (state: string, payload: string) => {\n return payload;\n};\n","export const languageIds = {\n es: 'es',\n en: 'en',\n va: 'va',\n};\n","import { languageIds } from \"../constants/languagesId\";\n\nexport const getLanguageLocalStorage = (): string => {\n setDefaultLanguage();\n return localStorage.getItem('languageSelected');\n}\n\nexport const saveLanguageLocalStorage = (selectedLanguage: string) => {\n localStorage.setItem('languageSelected', selectedLanguage)\n}\n\nexport const setDefaultLanguage = () => {\n if (localStorage.getItem('languageSelected') === null) {\n saveLanguageLocalStorage(languageIds.es)\n }\n}\n","import { actionsDefinition } from '../actions/actionsDef';\nimport { getLanguageLocalStorage } from '../common/utils/languageHelper';\n\nexport const languageReducer = (state = getLanguageLocalStorage(), action: any) => {\n if (action.type === actionsDefinition.language.SAVE_LANGUAGE) {\n return handleSaveLanguageCompleted(state, action.payload);\n }\n return state;\n};\n\nconst handleSaveLanguageCompleted = (state: string, payload: string) => {\n return payload;\n};","import { classificationTableReducer } from './classificationTableReducer';\nimport { ClassificationTableState } from './../model/search/SearchResult';\nimport { singleCaseFileDownloadStateListReducer } from './singleCaseFileDownloadStateListReducer';\nimport { SearchFiltersState, searchFiltersReducer } from './searchFiltersReducer';\nimport { singleDocumentDownloadStateListReducer } from './singleDocumentDownloadStateListReducer';\nimport { combineReducers } from 'redux';\nimport { HttpState, httpReducer } from './http';\nimport { SearchResult, Filters, AdvanceSearchResult, SearchFilesModel } from '../model/search';\nimport { searchReducer } from './searchReducer';\nimport { lastLoadedReducer } from './lastLoaded';\nimport { featuredDocumentsReducer } from './featuredDocuments';\nimport { loadResultLoadedReducer } from './loadResultLoadedReducer';\nimport { resultReducer } from './resultReducer';\nimport { IDownloadDocument } from '../model/downloadList';\nimport { downloadListReducer } from './downloadListReducer';\nimport { detailReducer, DetailState } from './detailReducer';\nimport { downloadDocumentReducer } from './downloadDocumentReducer';\nimport { IDocumentType } from '../model/documentTypes';\nimport { classificationChartReducer } from './classificationChartReducer';\nimport { filtersRequestChartReducer } from './filterRequestChartReducer';\nimport { DownloadDocumentState } from '../model/downloadDocumentState/DownloadDocumentState';\nimport { filesListReducer } from './filesListReducer';\nimport { SingleDocumentDownloadState } from '../model/downloadDocumentState/SingleDocumentDownloadState';\nimport { detailFileReducer, DetailFileState } from './detailFileReducer';\nimport { searchTypeEnum } from '../model/enum/searchType';\nimport { simpleSearchReducer } from './simpleSearchReducer';\nimport { lastSearchReducer } from './lastSearchReducer';\nimport { languageReducer } from './languageReducer';\n\nexport interface StateReducer {\n http: HttpState;\n searchResult: SearchResult[];\n advSearchResult: AdvanceSearchResult;\n lastLoaded: SearchResult[];\n featuredDocuments: SearchResult[];\n filtersRequest: Filters;\n detail: DetailState;\n downloadList: IDownloadDocument[];\n classificationChart: IDocumentType[];\n filtersChart: Filters;\n downloadingDocumentListStatus: DownloadDocumentState;\n singleDocumentDownloadStateList: SingleDocumentDownloadState[];\n singleCaseFileDownloadStateList: SingleDocumentDownloadState[];\n searchFilters: SearchFiltersState;\n filesList: SearchFilesModel[];\n detailFile: DetailFileState;\n simpleSearch: searchTypeEnum;\n lastSearch: string;\n classificationTable: ClassificationTableState;\n language: string;\n}\n\nexport const state = combineReducers<StateReducer>({\n http: httpReducer,\n searchResult: searchReducer,\n lastLoaded: lastLoadedReducer,\n featuredDocuments: featuredDocumentsReducer,\n filtersRequest: resultReducer,\n advSearchResult: loadResultLoadedReducer,\n downloadList: downloadListReducer,\n detail: detailReducer,\n classificationChart: classificationChartReducer,\n filtersChart: filtersRequestChartReducer,\n downloadingDocumentListStatus: downloadDocumentReducer,\n searchFilters: searchFiltersReducer,\n filesList: filesListReducer,\n singleDocumentDownloadStateList: singleDocumentDownloadStateListReducer,\n singleCaseFileDownloadStateList: singleCaseFileDownloadStateListReducer,\n detailFile: detailFileReducer,\n simpleSearch: simpleSearchReducer,\n lastSearch: lastSearchReducer,\n classificationTable: classificationTableReducer,\n language: languageReducer,\n});\n","import { actionsDefinition } from '../actions/actionsDef';\nimport { SingleDocumentDownloadState } from '../model/downloadDocumentState/SingleDocumentDownloadState';\nimport {handleDownloadOneCompleted, handleClearDownloadStateCompleted, handleClearSingleDownloadStateCompleted, handleAddFileCompleted} from '../common/utils/downloadStateUtils';\n\nexport const singleDocumentDownloadStateListReducer = (state: SingleDocumentDownloadState[] = [], action: any) => {\n switch (action.type) {\n case actionsDefinition.downloadSingleDocument.DOWNLOAD_ONE:\n return handleDownloadOneCompleted(state, action.payload);\n case actionsDefinition.downloadSingleDocument.CLEAR_STATE:\n return handleClearDownloadStateCompleted(state, action.payload);\n case actionsDefinition.downloadSingleDocument.CLEAR_SINGLE_STATE:\n return handleClearSingleDownloadStateCompleted(state, action.payload);\n case actionsDefinition.downloadSingleDocument.ADD_DOC:\n return handleAddFileCompleted(state, action.payload);\n default:\n return state;\n }\n};\n","import { actionsDefinition } from '../actions/actionsDef';\nimport { SingleDocumentDownloadState } from '../model/downloadDocumentState/SingleDocumentDownloadState';\nimport {handleDownloadOneCompleted, handleClearDownloadStateCompleted, handleClearSingleDownloadStateCompleted, handleAddFileCompleted} from '../common/utils/downloadStateUtils';\n\nexport const singleCaseFileDownloadStateListReducer = (state: SingleDocumentDownloadState[] = [], action: any) => {\n switch (action.type) {\n case actionsDefinition.downloadSingleCaseFile.DOWNLOAD_ONE:\n return handleDownloadOneCompleted(state, action.payload);\n case actionsDefinition.downloadSingleCaseFile.CLEAR_STATE:\n return handleClearDownloadStateCompleted(state, action.payload);\n case actionsDefinition.downloadSingleCaseFile.CLEAR_SINGLE_STATE:\n return handleClearSingleDownloadStateCompleted(state, action.payload);\n case actionsDefinition.downloadSingleCaseFile.ADD_CASEFILE:\n return handleAddFileCompleted(state, action.payload);\n default:\n return state;\n }\n};\n","import { DetailSearchResult } from './SearchResult';\n\nexport interface SearchFilesModel {\n id: string;\n name: string;\n description: string;\n}\n\nexport interface DetailSearchFiles extends SearchFilesModel {\n thumbnailUri: string;\n docs: DetailSearchResult[];\n documentalSeries: string;\n initDate: string;\n endDate: string;\n location: string;\n notes: string[];\n type: string;\n public: boolean;\n total: number;\n page: number;\n signature: string;\n}\n\nexport const createDetailSearchFiles = (): DetailSearchFiles => {\n return {\n id: '',\n name: '',\n description: '',\n thumbnailUri: '',\n docs: [],\n documentalSeries: '',\n endDate: '',\n initDate: '',\n location: '',\n notes: [],\n type: 'Expediente',\n public: false,\n total: 0,\n page: 0,\n signature: ''\n };\n};\n","import { httpCallEndAction } from './actions';\n\nexport const httpMiddleware = ({ dispatch }) => (next) => (action) => {\n return dispatchHttpCallEndAction(dispatch, next, action);\n};\n\nconst dispatchHttpCallEndAction = (dispatch, next, action) => {\n const httpEnd = action.meta && action.meta.httpEnd;\n\n if (!httpEnd) {\n return next(action);\n } else {\n const nextAction = cleanAction(action);\n next(nextAction);\n return dispatch(httpCallEndAction());\n }\n};\n\nconst cleanAction = (action) => ({\n ...action,\n meta: {\n ...action.meta,\n httpEnd: null,\n },\n});\n","import { actionsDefinition } from '../../actions/actionsDef';\n\nexport const httpCallStartAction = () => ({\n type: actionsDefinition.http.HTTP_CALL_START,\n});\n\nexport const httpCallEndAction = () => ({\n type: actionsDefinition.http.HTTP_CALL_END,\n});\n\n","import { Store, createStore, applyMiddleware, compose } from 'redux';\nimport reduxThunk from 'redux-thunk';\nimport { state, StateReducer } from './reducers';\nimport { httpMiddleware } from './middlewares/http/';\n\n\nconst composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nconst middlewares = [\n reduxThunk,\n httpMiddleware\n\n];\n\n\nexport const store: Store<StateReducer> = createStore(state, composeEnhancers(applyMiddleware(...middlewares)));\n\n\n","import { createBrowserHistory } from 'history';\n\nexport default createBrowserHistory();\n","import { IDownloadDocument } from '../../model/downloadList';\nimport { actionsDefinition } from '../actionsDef';\n\nexport const removeDownloadAction = (document: IDownloadDocument) => (dispatch: any) => {\n dispatch(removeDownload(document));\n};\n\nconst removeDownload = (payloadRem: IDownloadDocument) => ({\n type: actionsDefinition.downloadList.REMOVE_ITEM,\n payload: payloadRem\n});\n","import { actionsDefinition } from '../actionsDef';\n\nexport const clearListAction = () => (dispatch: any) => {\n dispatch(clearListCompleted());\n};\n\nconst clearListCompleted = () => ({\n type: actionsDefinition.downloadList.CLEAR_LIST\n});\n","export class commonStringsEn {\n static DOWNLOAD_TERMS_TITLE = `General Conditions for the Reuse of Documents .`;\n static DOWNLOAD_TERMS1 = `These general conditions shall be binding upon any reusing agent 1for the mere fact of making use of the documents subject to them. A reusing agent is any natural or legal person who reuses public sector information,` +\n ` wheter for commercial or non-commercual purposes, provided that such use does not constitute a public administrative activity.`;\n static DOWNLOAD_TERMS2 = `These general conditions allow the reuse of the documents subject to them for commercial and non-commercial purposes. Reuse means the use of documents held by the bodies of the General State Administration` +\n ` and other bodies and entities in the state public sector referred to in Article 1.2 of Royal Decree 1495/2011, of October 24, which implements Law 37/2007, of November 16, on the reuse of state public sector information by natural or legal persons for commercial ` +\n `or non-commercial purposes, provided that such use does not constitute a public administrative activity. Authorized reuse includes, by way of example, activities such as copying, disseminating, modifying, adapting, extracting, reordering, and combining ` +\n `information.\\n\nThe concept of document is that established in paragraph 2 of article 3 of Law 37/2007, of November 16, on the reuse of public sector information, thus including all information, whatever its material or electronic support, as well as its form of` +\n ` graphic, sound, or image expression, including also, consequently, the data in its most disaggregated or \"raw\" levels.\\n\nThis authorization also entails the free and non-exclusive assignment of the intellectual property rights, held by the Port Authority of Valencia, if applicable, corresponding to such documents, authorizing the reproduction, distribution, public communication, or transformation activities necessary ` +\n `to carry out the authorized reuse activity, in any form and format, for everyone and for the maximum period permitted by Law. \\n\nFor the reuse of documents for which the Port Authority of Valencia is not the holder of the intellectual property rights, express authorization must be obtained from the legitimate holder of said rights. `;\n static DOWNLOAD_TERMS3 = `The following general conditions shall apply for the reuse of documents subject to them: \\n\n1.\tIt is forbidden to distort the meaning of the information.\n2.\tThe source of the reused documents must be cited. This may be done as follows: \\n`;\n static DOWNLOAD_ITALIC1 = `Name or brief description of the document.`;\n static DOWNLOAD_ITALIC2 = `Signatures and/or references that allow the location of the document. Identification of the Information Unit responsible for the document (Port Authority of Valencia Archive or Port Authority of Valencia Photo Library, as appropriate). `;\n static DOWNLOAD_TERMS7 = `3.\tThe date of the last update of the documents to be reused should be mentioned, provided that it was included in the original document. \n4.\tIt may not be indicated, insinuated, or suggested that the Port Authority of Valencia, owner of the reused information, participates, sponsors, or supports the reuse carried out with the information. \n5.\tMetadata on the update date and the applicable reuse conditions included, where applicable, should be retained, not altered, or deleted, in the document made available for reuse. \n6.\tWhen the information, even if provided in a dissociated form, may contain sufficient elements to identify the parties involved in the reuse process, the dissociation process may not be reversed by adding new data obtained ` +\n `from other sources. `;\n static DOWNLOAD_BOLD_TEXT4 = `Exclusion of Liability `;\n static DOWNLOAD_TERMS8 = `The use of the data sets shall be carried out by the users or reusing agents at their own risk, and they alone shall be liable to third parties for any damage that may arise from it. \\n\nThe Port Authority of Valencia shall not be liable for the use made of its information by reusing agents, nor for the damages suffered or economic losses that , directly or indirectly, produce or may produce economic, material or data damages ` +\n `caused by the use of the reused information.\\n\nThe Port Authority of Valencia does not guarantee the continued availability of the reusable documents, either in content or form, nor does it assume responsibility for any error or omission contained therein. `;\n static DOWNLOAD_BOLD_TEXT5 = `Responsibility of the Reusing Agent`;\n static DOWNLOAD_TERMS9 = `The reusing agent is subject to the regulations applicable to the reuse of public sector information, including the penalty system set forth in Article 11 of Law 37/2007, dated 16 November, on the reuse ` +\n `of public sector information.`;\n static DOWNLOAD_BOLD_TEXT3 = `General Conditions for Reuse.`;\n static DOWNLOAD_BOLD_TEXT1 = `Mandatory Nature of the General Conditions.\\n`;\n static DOWNLOAD_BOLD_TEXT2 = `Authorization for Reuse and Non-Exclusive Assignment of Intellectual Property Rights.`;\n}\n\n\nexport const DOWNLOAD_TERMS4 = `En lÃnea: `;\nexport const DOWNLOAD_ITALIC3 = `Enlace al documento on - line.`;\nexport const DOWNLOAD_TERMS10 = `Archivo on - line de la Autoridad Portuaria de València.`;\nexport const DOWNLOAD_TERMS5 = `Referencia a un expediente:`;\nexport const DOWNLOAD_TERMS6 = `En lÃnea:`;\nexport const DOWNLOAD_ITALIC4 = `Enlace al expediente on - line.`;\nexport const DOWNLOAD_TERMS11 = `Archivo on - line de la Autoridad Portuaria de València.`;\n\nexport const DOWNLOAD_TERMS_READ = `He leÃdo y acepto las condiciones generales de reutilización de documentos`;\n\nexport const INFO_TITLE = `Sintaxis de consulta`;\nexport const INFO_PPAL = `Con el buscador autocompletable puede escribir consultas de forma más avanzada, por ejemplo, comodines, búsqueda aproximada, búsqueda por proximidad o expresiones regulares.`;\nexport const INFO_TITLE1 = `Fundamentos de sintaxis`;\nexport const INFO_TEXT1 = `Los siguientes fundamentos de sintaxis se aplican a todas las consultas.`;\nexport const INFO_TITLE2 = `Evaluación de operadores en contexto`;\nexport const INFO_TEXT2 = `La selección de ubicación determina si un sÃmbolo se interpreta como un operador o como otro carácter de una cadena. \\n\nPor ejemplo, en esta sintaxis, se usa la tilde (~) para la búsqueda aproximada y la búsqueda por proximidad. Cuando se coloca detrás de una frase entre comillas, ~ invoca la búsqueda por proximidad. Cuando se coloca al final de un término, ~ invoca la búsqueda aproximada. \\n\nDentro de un término, como \"business~analyst\", el carácter no se evalúa como un operador. En este caso, suponiendo que la consulta es de un término o una frase, la búsqueda de texto completo con análisis léxico elimina la tilde ~ y divide el término \"business~analyst\" en dos: business OR analyst.\n\\n El ejemplo anterior es la tilde (~), pero el mismo principio se aplica a todos los operadores. `;\nexport const INFO_TITLE3 = `Codificación de caracteres reservados y no seguros en las direcciones URL`;\nexport const INFO_TEXT3 = `Asegúrese de que todos los caracteres reservados y no seguros están codificados en una dirección URL. Por ejemplo, \"#\" es un carácter no seguro porque es un identificador de delimitador o fragmento en una dirección URL. El carácter debe codificarse con %23` +\n ` si se usa en una dirección URL. \"&\" y \"=\" son ejemplos de caracteres reservados.Consulte RFC1738: Localizadores uniformes de recursos(URL) para más información. \n \\n Los caracteres no seguros son: \" \\` < > # % {} | ^ ~[].Los caracteres reservados son; / ? : @ = + &.`;\nexport const INFO_TITLE4 = `Operadores de precedencia: agrupación y agrupación de campos`;\nexport const INFO_TEXT4 = `Puede usar paréntesis para crear subconsultas, incluidos los operadores dentro de la instrucción entre paréntesis. Por ejemplo, motel+(wifi||luxury) buscará los documentos que contengan el término \"motel\" y \"wifi\" o \"luxury\" (o ambos). \\n\nLa agrupación de campos es parecida, pero establece el ámbito de la agrupación en un único campo. Por ejemplo, hotelAmenities:(gym+(wifi||pool)) busca \"gym\" y \"wifi\", o \"gym\" y \"pool\" en el campo \"hotelAmenities\".`;\nexport const INFO_TITLE5 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT5 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE6 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT6 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE7 = `Operador OR - ||`;\nexport const INFO_TEXT7 = `El operador OR es una barra vertical o el carácter de barra vertical. Por ejemplo: wifi || luxury buscará documentos que contengan \"wifi\" o \"luxury\" o ambos. Como OR es el operador de conjunción predeterminado, podrÃa también dejarlo fuera, de forma que wifi luxury` +\n `es el equivalente de wifi || luxuery.`;\nexport const INFO_TITLE8 = `Operador AND - &&`;\nexport const INFO_TEXT8 = `El operador AND es una Y comercial o un signo más. Por ejemplo: wifi && luxury buscará documentos que contengan \"wifi\" y \"luxury\". El carácter de signo más (+) se usa para los términos requeridos. Por ejemplo, +wifi +luxury estipula que ambos términos deben aparecer` +\n `en algún lugar en el campo de un documento. `;\nexport const INFO_TITLE9 = `Operador NOT NOT - !`;\nexport const INFO_TEXT9 = `El operador NOT es un signo de exclamación o el signo menos. Por ejemplo, wifi !luxury encontrará documentos que contengan el término wifi y no contengan el término luxury.`;\nexport const INFO_TITLE10 = `LÃmite de tamaño de consulta `;\nexport const INFO_TEXT10 = `Existe un lÃmite en el tamaño de las consultas que se pueden enviar. En concreto, puede tener como máximo 1024 cláusulas (expresiones separadas por AND, OR, etc.). También hay un lÃmite de aproximadamente 32 KB en el tamaño de cualquier término individual en una` +\n `consulta. Si la aplicación genera consultas de búsqueda mediante programación, se recomienda que la diseña de manera que no genere consultas de tamaño ilimitado. `;\nexport const INFO_TITLE11 = `Búsqueda clasificada por campos `;\nexport const INFO_TEXT11 = `Puede definir una operación de búsqueda clasificada por campos con la sintaxis fieldName:searchExpression, donde la expresión de búsqueda puede ser una sola palabra, una frase o una expresión más compleja entre paréntesis, opcionalmente con operadores booleanos.` +\n ` Estos son algunos ejemplos: `;\nexport const INFO_TEXT12 = `genre:jazz NOT history `;\nexport const INFO_TEXT13 = `artists:(\"Miles Davis\" \"John Coltrane\") `;\nexport const INFO_TEXT14 = `Asegúrese de colocar varias cadenas entre comillas si quiere que las dos cadenas se evalúen como una sola entidad, como en este caso donde se buscan dos artistas distintos en el campo artists.`;\nexport const INFO_TITLE12 = `Búsqueda aproximada `;\nexport const INFO_TEXT15 = `Una búsqueda aproximada busca coincidencias en términos que tienen una construcción similar. Según la documentación de Lucene, las búsquedas aproximadas se basan en la distancia Levenshtein-Damerau. Las búsquedas aproximadas pueden expandir un término hasta un ` +\n `máximo de 50 términos que satisfagan los criterios de distancia. \n \\nPara realizar una búsqueda aproximada, use el sÃmbolo \"~\" de tilde de la Ñ al final de una sola palabra con un parámetro opcional, un número entre 0 y 2, que especifica la distancia de edición. Por ejemplo, \"blue~\" o \"blue~1\" devolverÃa \"blue\", \"blues\" y \"glue\".\n \\nLa búsqueda aproximada solo puede aplicarse a términos, no a frases, pero se puede anexar la tilde a cada término individualmente en un nombre de varias partes o frase. Por ejemplo, \"Unviersdad~ de~ \"Zragoza~\" coincidirÃa con \"Universidad de Zaragoza\". `;\nexport const INFO_TITLE13 = `Búsqueda por proximidad `;\nexport const INFO_TEXT16 = `Las búsquedas de proximidad se utilizan para buscar términos que están cerca entre sà en un documento. Inserte un sÃmbolo \"~\" de la tilde de la Ñ al final de una frase seguido del número de palabras que crea el lÃmite de proximidad. Por ejemplo, \"hotel airport\"~5` +\n ` encontrará los términos \"hotel\" y \"airport\" a menos de 5 palabras de distancia unos de otros en un documento. `;\nexport const INFO_TITLE14 = `Priorización de términos `;\nexport const INFO_TEXT17 = `\"Priorización de términos\" hace referencia a la valoración de un documento superior si contiene el término prioritario con respecto a los documentos que no contienen el término. Esto difiere de los perfiles de puntuación en los que aumentan ciertos campos, en lugar` +\n ` de términos especÃficos.\n \\nLa priorización de términos podrÃa utilizarse para dar mayor prioridad a determinados términos de búsqueda frente a otros. Por ejemplo, rock^2 electronic impulsará los documentos que contienen el término de búsqueda rock tendrán una clasificación mayor que los del término de búsqueda` +\n ` electronic como resultado del valor de impulso de términos (2). \n \\nPara impulsar un término, use el sÃmbolo de intercalación, \"^\", un sÃmbolo con un factor de impulso (un número) al final del término que quiera buscar. También puede impulsar frases. Cuanto mayor sea el factor de prioridad, más relevante será el término en relación con otros términos` +\n ` de búsqueda.De forma predeterminada, el factor de prioridad es 1. Aunque el factor de impulso debe ser positivo, puede ser inferior a 1(por ejemplo, 0, 20).`;\nexport const INFO_TITLE15 = `Búsqueda de expresiones regulares `;\nexport const INFO_TEXT18 = `Una búsqueda de expresión regular encuentra una coincidencia en función del contenido entre barras diagonales \"/\", como se documentó en la clase RegExp.\n \\nPor ejemplo, para encontrar documentos que contengan \"motel\" o \"hotel\", especifique /[mh]otel/. Las búsquedas mediante expresiones regulares se comparan con las palabras individuales. `;\nexport const INFO_TITLE16 = `Búsqueda con caracteres comodÃn `;\nexport const INFO_TEXT19 = `Puede utilizar la sintaxis generalmente reconocida para búsquedas con caracteres comodÃn únicas (?) o múltiples (*). Tenga en cuenta que el Analizador de consultas de Lucene admite el uso de estos sÃmbolos con un único término y no una frase. \n \\nPor ejemplo, para encontrar documentos que contengan las palabras con el prefijo \"note\", como \"notebook\" o \"notepad\", especifique \"note*\". `;\nexport const INFO_TITLE17 = `Relación de campos `;\nexport const INFO_TEXT191 = `Los campos consultables que puede usar para realizar una búsqueda refinada son los siguientes. \n \\nLa palabra escrita en color verde, que aparece en el siguiente cuadro, indica el literal que se debe incluir dentro de la caja autocompletable para concretar la búsqueda. `;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","export class commonStringsEs {\n static DOWNLOAD_TERMS1 = `Las presentes condiciones generales vincularán a cualquier agente reutilizador por el mero hecho de hacer uso de los documentos sometidos a ellas. Se entiende por agente reutilizador toda persona, fÃsica o jurÃdica que reutilice información del sector público,` +\n ` ya sea para fines comerciales o no comerciales, siempre que dicho uso no constituya una actividad administrativa pública.`;\n static DOWNLOAD_TERMS2 = `Las presentes condiciones generales permiten la reutilización de los documentos sometidos a ellas para fines comerciales y no comerciales. Se entiende por reutilización el uso de documentos que obran en poder de los órganos de la Administración General del Estado` +\n ` y los demás organismos y entidades del sector público estatal referidos en el artÃculo 1.2 del Real Decreto 1495 / 2011, de 24 de octubre, por el que se desarrolla la Ley 37 / 2007, de 16 de noviembre, sobre reutilización de la información del sector público estatal, por personas fÃsicas ` +\n `o jurÃdicas, con fines comerciales o no comerciales, siempre que dicho uso no constituya una actividad administrativa pública. La reutilización autorizada incluye, a modo ilustrativo, actividades como la copia, difusión, modificación, adaptación, extracción, reordenación y combinación de ` +\n `la información.\\n\nEl concepto de documento es el establecido en el apartado 2 del artÃculo 3 de la Ley 37/2007, de 16 de noviembre, sobre reutilización de la información del sector público, por lo que comprende toda información cualquiera que sea su soporte material o electrónico, asà como su forma de expresión` +\n ` gráfica, sonora o en imagen utilizada, incluyendo, en consecuencia, también los datos en sus niveles más desagregados o “en brutoâ€.\\n\nEsta autorización conlleva, asimismo, la cesión gratuita y no exclusiva de los derechos de propiedad intelectual, , de los que sea titular la Autoridad Portuaria de València, en su caso, correspondientes a tales documentos, autorizándose la realización de actividades de reproducción, distribución, comunicación pública o transformación, necesarias para ` +\n `desarrollar la actividad de reutilización autorizada, en cualquier modalidad y bajo cualquier formato, para todo el mundo y por el plazo máximo permitido por la Ley. \\n\nPara la reutilización de documentos de los que la Autoridad Portuaria de València no sea titular de los derechos de propiedad intelectual, se deberá obtener la autorización expresa del legÃtimo titular de dichos derechos. `;\n static DOWNLOAD_TERMS3 = `Son de aplicación las siguientes condiciones generales para la reutilización de los documentos sometidos a ellas: \\n\n1.\tEstá prohibido desnaturalizar el sentido de la información.\n2.\tDebe citarse la fuente de los documentos objeto de la reutilización. Esta cita podrá realizarse de la siguiente manera: \\n`;\n static DOWNLOAD_ITALIC1 = `Nombre o descripción breve del documento.`;\n static DOWNLOAD_ITALIC2 = `Signaturas y/o referencias que permitan la localización del documento. Identificación de la Unidad de Información responsable del documento (Archivo de la Autoridad Portuaria de València o Fototeca de la Autoridad Portuaria de València, según corresponda). `;\n static DOWNLOAD_TERMS7 = `3.\tDebe mencionarse la fecha de la última actualización de los documentos objeto de la reutilización, siempre y cuando estuviera incluida en el documento original.\n4.\tNo se podrá indicar, insinuar o sugerir que la Autoridad Portuaria de València, titular de la información reutilizada, participa, patrocina o apoya la reutilización que se lleve a cabo con ella.\n5.\tDeben conservarse, no alterarse ni suprimirse los metadatos sobre la fecha de actualización y las condiciones de reutilización aplicables incluidos, en su caso, en el documento puesto a disposición para su reutilización.\n6.\tCuando la información, aun siendo facilitada de forma disociada, contuviera elementos suficientes que pudieran permitir la identificación de los interesados en el proceso de reutilización, no se podrá revertir el procedimiento de disociación mediante la adición de nuevos datos obtenidos ` +\n `de otras fuentes.`;\n static DOWNLOAD_BOLD_TEXT4 = `Exclusión de responsabilidad.`;\n static DOWNLOAD_TERMS8 = `La utilización de los conjuntos de datos se realizará por parte de los usuarios o agentes de la reutilización bajo su propia cuenta y riesgo, correspondiéndoles en exclusiva a ellos responder frente a terceros por daños que pudieran derivarse de ella. \\n\nLa Autoridad Portuaria de València no será responsable del uso que de su información hagan los agentes reutilizadores ni tampoco de los daños sufridos o pérdidas económicas que, de forma directa o indirecta, produzcan o puedan producir perjuicios económicos, materiales o sobre datos, ` +\n `provocados por el uso de la información reutilizada.\\n\nLa Autoridad Portuaria de València no garantiza la continuidad en la puesta a disposición de los documentos reutilizables, ni en contenido ni en forma, ni asume responsabilidades por cualquier error u omisión contenido en ellos.`;\n static DOWNLOAD_BOLD_TEXT5 = `Responsabilidad del agente reutilizador.`;\n static DOWNLOAD_TERMS9 = `El agente reutilizador se halla sometido a la normativa aplicable en materia de reutilización de la información del sector público, incluyendo el régimen sancionador previsto en el artÃculo 11 de la Ley 37/2007, de 16 de noviembre, sobre reutilización de la ` +\n `información del sector público.`;\n static DOWNLOAD_BOLD_TEXT3 = `Condiciones generales para la reutilización.`;\n static DOWNLOAD_BOLD_TEXT1 = `Obligatoriedad de las condiciones generales.\\n`;\n static DOWNLOAD_BOLD_TEXT2 = `Autorización de reutilización y cesión no exclusiva de derechos de propiedad intelectual.`;\n\n}\n\n\nexport const DOWNLOAD_TERMS4 = `En lÃnea: `;\nexport const DOWNLOAD_ITALIC3 = `Enlace al documento on - line.`;\nexport const DOWNLOAD_TERMS10 = `Archivo on - line de la Autoridad Portuaria de València.`;\nexport const DOWNLOAD_TERMS5 = `Referencia a un expediente:`;\nexport const DOWNLOAD_TERMS6 = `En lÃnea:`;\nexport const DOWNLOAD_ITALIC4 = `Enlace al expediente on - line.`;\nexport const DOWNLOAD_TERMS11 = `Archivo on - line de la Autoridad Portuaria de València.`;\n\nexport const DOWNLOAD_TERMS_READ = `He leÃdo y acepto las condiciones generales de reutilización de documentos`;\n\nexport const INFO_TITLE = `Sintaxis de consulta`;\nexport const INFO_PPAL = `Con el buscador autocompletable puede escribir consultas de forma más avanzada, por ejemplo, comodines, búsqueda aproximada, búsqueda por proximidad o expresiones regulares.`;\nexport const INFO_TITLE1 = `Fundamentos de sintaxis`;\nexport const INFO_TEXT1 = `Los siguientes fundamentos de sintaxis se aplican a todas las consultas.`;\nexport const INFO_TITLE2 = `Evaluación de operadores en contexto`;\nexport const INFO_TEXT2 = `La selección de ubicación determina si un sÃmbolo se interpreta como un operador o como otro carácter de una cadena. \\n\nPor ejemplo, en esta sintaxis, se usa la tilde (~) para la búsqueda aproximada y la búsqueda por proximidad. Cuando se coloca detrás de una frase entre comillas, ~ invoca la búsqueda por proximidad. Cuando se coloca al final de un término, ~ invoca la búsqueda aproximada. \\n\nDentro de un término, como \"business~analyst\", el carácter no se evalúa como un operador. En este caso, suponiendo que la consulta es de un término o una frase, la búsqueda de texto completo con análisis léxico elimina la tilde ~ y divide el término \"business~analyst\" en dos: business OR analyst.\n\\n El ejemplo anterior es la tilde (~), pero el mismo principio se aplica a todos los operadores. `;\nexport const INFO_TITLE3 = `Codificación de caracteres reservados y no seguros en las direcciones URL`;\nexport const INFO_TEXT3 = `Asegúrese de que todos los caracteres reservados y no seguros están codificados en una dirección URL. Por ejemplo, \"#\" es un carácter no seguro porque es un identificador de delimitador o fragmento en una dirección URL. El carácter debe codificarse con %23` +\n ` si se usa en una dirección URL. \"&\" y \"=\" son ejemplos de caracteres reservados.Consulte RFC1738: Localizadores uniformes de recursos(URL) para más información. \n \\n Los caracteres no seguros son: \" \\` < > # % {} | ^ ~[].Los caracteres reservados son; / ? : @ = + &.`;\nexport const INFO_TITLE4 = `Operadores de precedencia: agrupación y agrupación de campos`;\nexport const INFO_TEXT4 = `Puede usar paréntesis para crear subconsultas, incluidos los operadores dentro de la instrucción entre paréntesis. Por ejemplo, motel+(wifi||luxury) buscará los documentos que contengan el término \"motel\" y \"wifi\" o \"luxury\" (o ambos). \\n\nLa agrupación de campos es parecida, pero establece el ámbito de la agrupación en un único campo. Por ejemplo, hotelAmenities:(gym+(wifi||pool)) busca \"gym\" y \"wifi\", o \"gym\" y \"pool\" en el campo \"hotelAmenities\".`;\nexport const INFO_TITLE5 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT5 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE6 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT6 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE7 = `Operador OR - ||`;\nexport const INFO_TEXT7 = `El operador OR es una barra vertical o el carácter de barra vertical. Por ejemplo: wifi || luxury buscará documentos que contengan \"wifi\" o \"luxury\" o ambos. Como OR es el operador de conjunción predeterminado, podrÃa también dejarlo fuera, de forma que wifi luxury` +\n `es el equivalente de wifi || luxuery.`;\nexport const INFO_TITLE8 = `Operador AND - &&`;\nexport const INFO_TEXT8 = `El operador AND es una Y comercial o un signo más. Por ejemplo: wifi && luxury buscará documentos que contengan \"wifi\" y \"luxury\". El carácter de signo más (+) se usa para los términos requeridos. Por ejemplo, +wifi +luxury estipula que ambos términos deben aparecer` +\n `en algún lugar en el campo de un documento. `;\nexport const INFO_TITLE9 = `Operador NOT NOT - !`;\nexport const INFO_TEXT9 = `El operador NOT es un signo de exclamación o el signo menos. Por ejemplo, wifi !luxury encontrará documentos que contengan el término wifi y no contengan el término luxury.`;\nexport const INFO_TITLE10 = `LÃmite de tamaño de consulta `;\nexport const INFO_TEXT10 = `Existe un lÃmite en el tamaño de las consultas que se pueden enviar. En concreto, puede tener como máximo 1024 cláusulas (expresiones separadas por AND, OR, etc.). También hay un lÃmite de aproximadamente 32 KB en el tamaño de cualquier término individual en una` +\n `consulta. Si la aplicación genera consultas de búsqueda mediante programación, se recomienda que la diseña de manera que no genere consultas de tamaño ilimitado. `;\nexport const INFO_TITLE11 = `Búsqueda clasificada por campos `;\nexport const INFO_TEXT11 = `Puede definir una operación de búsqueda clasificada por campos con la sintaxis fieldName:searchExpression, donde la expresión de búsqueda puede ser una sola palabra, una frase o una expresión más compleja entre paréntesis, opcionalmente con operadores booleanos.` +\n ` Estos son algunos ejemplos: `;\nexport const INFO_TEXT12 = `genre:jazz NOT history `;\nexport const INFO_TEXT13 = `artists:(\"Miles Davis\" \"John Coltrane\") `;\nexport const INFO_TEXT14 = `Asegúrese de colocar varias cadenas entre comillas si quiere que las dos cadenas se evalúen como una sola entidad, como en este caso donde se buscan dos artistas distintos en el campo artists.`;\nexport const INFO_TITLE12 = `Búsqueda aproximada `;\nexport const INFO_TEXT15 = `Una búsqueda aproximada busca coincidencias en términos que tienen una construcción similar. Según la documentación de Lucene, las búsquedas aproximadas se basan en la distancia Levenshtein-Damerau. Las búsquedas aproximadas pueden expandir un término hasta un ` +\n `máximo de 50 términos que satisfagan los criterios de distancia. \n \\nPara realizar una búsqueda aproximada, use el sÃmbolo \"~\" de tilde de la Ñ al final de una sola palabra con un parámetro opcional, un número entre 0 y 2, que especifica la distancia de edición. Por ejemplo, \"blue~\" o \"blue~1\" devolverÃa \"blue\", \"blues\" y \"glue\".\n \\nLa búsqueda aproximada solo puede aplicarse a términos, no a frases, pero se puede anexar la tilde a cada término individualmente en un nombre de varias partes o frase. Por ejemplo, \"Unviersdad~ de~ \"Zragoza~\" coincidirÃa con \"Universidad de Zaragoza\". `;\nexport const INFO_TITLE13 = `Búsqueda por proximidad `;\nexport const INFO_TEXT16 = `Las búsquedas de proximidad se utilizan para buscar términos que están cerca entre sà en un documento. Inserte un sÃmbolo \"~\" de la tilde de la Ñ al final de una frase seguido del número de palabras que crea el lÃmite de proximidad. Por ejemplo, \"hotel airport\"~5` +\n ` encontrará los términos \"hotel\" y \"airport\" a menos de 5 palabras de distancia unos de otros en un documento. `;\nexport const INFO_TITLE14 = `Priorización de términos `;\nexport const INFO_TEXT17 = `\"Priorización de términos\" hace referencia a la valoración de un documento superior si contiene el término prioritario con respecto a los documentos que no contienen el término. Esto difiere de los perfiles de puntuación en los que aumentan ciertos campos, en lugar` +\n ` de términos especÃficos.\n \\nLa priorización de términos podrÃa utilizarse para dar mayor prioridad a determinados términos de búsqueda frente a otros. Por ejemplo, rock^2 electronic impulsará los documentos que contienen el término de búsqueda rock tendrán una clasificación mayor que los del término de búsqueda` +\n ` electronic como resultado del valor de impulso de términos (2). \n \\nPara impulsar un término, use el sÃmbolo de intercalación, \"^\", un sÃmbolo con un factor de impulso (un número) al final del término que quiera buscar. También puede impulsar frases. Cuanto mayor sea el factor de prioridad, más relevante será el término en relación con otros términos` +\n ` de búsqueda.De forma predeterminada, el factor de prioridad es 1. Aunque el factor de impulso debe ser positivo, puede ser inferior a 1(por ejemplo, 0, 20).`;\nexport const INFO_TITLE15 = `Búsqueda de expresiones regulares `;\nexport const INFO_TEXT18 = `Una búsqueda de expresión regular encuentra una coincidencia en función del contenido entre barras diagonales \"/\", como se documentó en la clase RegExp.\n \\nPor ejemplo, para encontrar documentos que contengan \"motel\" o \"hotel\", especifique /[mh]otel/. Las búsquedas mediante expresiones regulares se comparan con las palabras individuales. `;\nexport const INFO_TITLE16 = `Búsqueda con caracteres comodÃn `;\nexport const INFO_TEXT19 = `Puede utilizar la sintaxis generalmente reconocida para búsquedas con caracteres comodÃn únicas (?) o múltiples (*). Tenga en cuenta que el Analizador de consultas de Lucene admite el uso de estos sÃmbolos con un único término y no una frase. \n \\nPor ejemplo, para encontrar documentos que contengan las palabras con el prefijo \"note\", como \"notebook\" o \"notepad\", especifique \"note*\". `;\nexport const INFO_TITLE17 = `Relación de campos `;\nexport const INFO_TEXT191 = `Los campos consultables que puede usar para realizar una búsqueda refinada son los siguientes. \n \\nLa palabra escrita en color verde, que aparece en el siguiente cuadro, indica el literal que se debe incluir dentro de la caja autocompletable para concretar la búsqueda. `;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","export class commonStringsVa {\n static DOWNLOAD_TERMS2 = `Aquestes condicions generals permeten la reutilització dels documents sotmesos a elles per a finalitats comercials i no comercials. S'entén per reutilització l'ús de documents dels quals disposen els òrgans de l'Administració General de l'Estat` +\n ` i els altres organismes i entitats del sector públic estatal referits a l'article 1.2 del Reial Decret 1495/2011, de 24 d'octubre, pel qual es desenvolupa la Llei 37/2007, de 16 de novembre, sobre reutilització de la informació del sector públic estatal, per persones fÃsiques ` +\n `o jurÃdiques, per a fins comercials o no comercials, sempre que aquest ús no constituïsca una activitat administrativa pública. La reutilització autoritzada inclou, a manera il·lustrativa, activitats com la còpia, difusió, modificació, adaptació, extracció, reordenació i combinació de ` +\n `la informació.\\n\nAquest concepte de document és el que estableix l'apartat 2 de l'article 3 de la Llei 37/2007, de 16 de novembre, sobre reutilització de la informació del sector públic, per la qual cosa comprén tota informació, siga quin siga el seu suport material o electrònic, aixà com la seua forma d'expressió` +\n ` grà fica, sonora o en imatge utilitzada, incloses també, en conseqüència, les dades en els nivells més desagregats o \"en brut\".\\n\nAquesta autorització comporta, aixà mateix, la cessió gratuïta i no exclusiva dels drets de propietat intel·lectual, dels quals siga titular l'Autoritat Portuà ria de València, si és el cas, corresponents a tals documents, i se n'autoritza la realització d'activitats de reproducció, distribució, comunicació pública o transformació necessà ries per a ` +\n `desenrotllar l'activitat de reutilització autoritzada, en qualsevol modalitat i en qualsevol format, per a tothom i pel termini mà xim permés per la Llei.\\n\nPer a la reutilització de documents dels quals l'Autoritat Portuà ria de València no siga titular dels drets de propietat intel·lectual, s'haurà d'obtindre l'autorització expressa del legÃtim titular d'aquests drets. `;\n static DOWNLOAD_TERMS1 = `Les presents condicions generals vincularan a qualsevol agent reutilitzador 1 pel mer fet d'usar els documents sotmesos a elles. S'entén per agent reutilitzador tota persona, fÃsica o jurÃdica, que reutilitze informació del sector públic,` +\n ` ja siga per a fins comercials o no comercials, sempre que aquest ús no constituïsca una activitat administrativa pública.`;\n static DOWNLOAD_TERMS3 = `Són aplicables les següents condicions generals per a la reutilització dels documents sotmesos a elles: \\n\n1.\tEstà prohibit desnaturalitzar el sentit de la informació.\n2.\tS'ha de citar la font dels documents objecte de la reutilització. Aquesta cita es podrà fer de la següent manera: \\n`;\n static DOWNLOAD_ITALIC1 = `Nom o descripció breu del document.`;\n static DOWNLOAD_TERMS4 = `En lÃnea: `;\n static DOWNLOAD_ITALIC3 = `Enlace al documento on - line.`;\n static DOWNLOAD_TERMS10 = `Archivo on - line de la Autoridad Portuaria de València.`;\n static DOWNLOAD_TERMS5 = `Referencia a un expediente:`;\n static DOWNLOAD_ITALIC2 = `Signatures i/o referències que permeten la localització del document. Identificació de la Unitat d'Informació responsable del document (Arxiu de l'Autoritat Portuà ria de València o Fototeca de l'Autoritat Portuà ria de València, segons corresponga). `;\n static DOWNLOAD_TERMS6 = `En lÃnea:`;\n static DOWNLOAD_ITALIC4 = `Enlace al expediente on - line.`;\n static DOWNLOAD_TERMS11 = `Archivo on - line de la Autoridad Portuaria de València.`;\n static DOWNLOAD_TERMS7 = `3.\tS'ha d'esmentar la data de l'última actualització dels documents objecte de la reutilització, sempre que estiga inclosa en el document original.\n4.\tNo es podrà indicar, insinuar o suggerir que l'Autoritat Portuà ria de València, titular de la informació reutilitzada, participa, patrocina o recolza la reutilització que s'hi duga a terme amb ella. \n5.\tS'hauran de conservar, sense alterar-se ni suprimir-se, les metadades sobre la data d'actualització i les condicions de reutilització aplicables incloses, si és el cas, en el document posat a disposició per a la seua reutilització.\n6.\tQuan la informació, tot i ser facilitada de forma dissociada, continga elements suficients que puguen permetre la identificació dels interessats en el procés de reutilització, no es podrà revertir el procediment de dissociació mitjançant l'addició de noves dades obtingudes ` +\n `d'altres fonts.`;\n static DOWNLOAD_BOLD_TEXT4 = `Exclusió de responsabilitats.`;\n static DOWNLOAD_TERMS8 = `La utilització dels conjunts de dades es realitzarà per part de les persones usuà ries o agents de la reutilització sota el seu propi compte i risc, corresponent-los a ells la responsabilitat exclusiva de respondre davant de tercers per danys que pogueren derivar-se d'ella. \\n\nL'Autoritat Portuà ria de València no serà responsable de l'ús que de la seua informació facen els agents reutilitzadors ni tampoc dels danys patits o les pèrdues econòmiques que, de manera directa o indirecta, produïsquen o puguen produir perjudicis econòmics, materials o sobre dades, ` +\n `provocats per l'ús de la informació reutilitzada. \\n\nL'Autoritat Portuà ria de València no garanteix la continuïtat en la posada a disposició dels documents reutilitzables, ni en contingut ni en forma, ni assumeix responsabilitats per qualsevol error o omissió que hi continguen. `;\n static DOWNLOAD_BOLD_TEXT5 = `Responsabilitat de l'agent reutilitzador `;\n static DOWNLOAD_TERMS9 = `L'agent reutilitzador es troba sotmés a la normativa aplicable en matèria de reutilització de la informació del sector públic, inclòs el règim sancionador previst en l'article 11 de la Llei 37/2007, de 16 de novembre, sobre reutilització de la ` +\n `informació del sector públic.`;\n static DOWNLOAD_BOLD_TEXT3 = `Condicions generals per a la reutilització.`;\n static DOWNLOAD_BOLD_TEXT1 = `Obligatorietat de les condicions generals.\\n`;\n static DOWNLOAD_BOLD_TEXT2 = `Autorització de reutilització i cessió no exclusiva de drets de propietat intel·lectual.`;\n\n}\n\n\nexport const DOWNLOAD_BOLD_TEXT1 = `Obligatoriedad de las condiciones generales.\\n`;\nexport const DOWNLOAD_BOLD_TEXT2 = `Autorització de reutilització i cessió no exclusiva de drets de propietat intel·lectual.`;\nexport const DOWNLOAD_TERMS_READ = `He leÃdo y acepto las condiciones generales de reutilización de documentos`;\n\nexport const INFO_TITLE = `Sintaxis de consulta`;\nexport const INFO_PPAL = `Con el buscador autocompletable puede escribir consultas de forma más avanzada, por ejemplo, comodines, búsqueda aproximada, búsqueda por proximidad o expresiones regulares.`;\nexport const INFO_TITLE1 = `Fundamentos de sintaxis`;\nexport const INFO_TEXT1 = `Los siguientes fundamentos de sintaxis se aplican a todas las consultas.`;\nexport const INFO_TITLE2 = `Evaluación de operadores en contexto`;\nexport const INFO_TEXT2 = `La selección de ubicación determina si un sÃmbolo se interpreta como un operador o como otro carácter de una cadena. \\n\nPor ejemplo, en esta sintaxis, se usa la tilde (~) para la búsqueda aproximada y la búsqueda por proximidad. Cuando se coloca detrás de una frase entre comillas, ~ invoca la búsqueda por proximidad. Cuando se coloca al final de un término, ~ invoca la búsqueda aproximada. \\n\nDentro de un término, como \"business~analyst\", el carácter no se evalúa como un operador. En este caso, suponiendo que la consulta es de un término o una frase, la búsqueda de texto completo con análisis léxico elimina la tilde ~ y divide el término \"business~analyst\" en dos: business OR analyst.\n\\n El ejemplo anterior es la tilde (~), pero el mismo principio se aplica a todos los operadores. `;\nexport const INFO_TITLE3 = `Codificación de caracteres reservados y no seguros en las direcciones URL`;\nexport const INFO_TEXT3 = `Asegúrese de que todos los caracteres reservados y no seguros están codificados en una dirección URL. Por ejemplo, \"#\" es un carácter no seguro porque es un identificador de delimitador o fragmento en una dirección URL. El carácter debe codificarse con %23` +\n ` si se usa en una dirección URL. \"&\" y \"=\" son ejemplos de caracteres reservados.Consulte RFC1738: Localizadores uniformes de recursos(URL) para más información. \n \\n Los caracteres no seguros son: \" \\` < > # % {} | ^ ~[].Los caracteres reservados son; / ? : @ = + &.`;\nexport const INFO_TITLE4 = `Operadores de precedencia: agrupación y agrupación de campos`;\nexport const INFO_TEXT4 = `Puede usar paréntesis para crear subconsultas, incluidos los operadores dentro de la instrucción entre paréntesis. Por ejemplo, motel+(wifi||luxury) buscará los documentos que contengan el término \"motel\" y \"wifi\" o \"luxury\" (o ambos). \\n\nLa agrupación de campos es parecida, pero establece el ámbito de la agrupación en un único campo. Por ejemplo, hotelAmenities:(gym+(wifi||pool)) busca \"gym\" y \"wifi\", o \"gym\" y \"pool\" en el campo \"hotelAmenities\".`;\nexport const INFO_TITLE5 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT5 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE6 = `Operadores booleanos (AND, OR, NOT)`;\nexport const INFO_TEXT6 = `Especifique siempre operadores booleanos de texto (AND, OR, NOT) todo en mayúsculas. `;\nexport const INFO_TITLE7 = `Operador OR - ||`;\nexport const INFO_TEXT7 = `El operador OR es una barra vertical o el carácter de barra vertical. Por ejemplo: wifi || luxury buscará documentos que contengan \"wifi\" o \"luxury\" o ambos. Como OR es el operador de conjunción predeterminado, podrÃa también dejarlo fuera, de forma que wifi luxury` +\n `es el equivalente de wifi || luxuery.`;\nexport const INFO_TITLE8 = `Operador AND - &&`;\nexport const INFO_TEXT8 = `El operador AND es una Y comercial o un signo más. Por ejemplo: wifi && luxury buscará documentos que contengan \"wifi\" y \"luxury\". El carácter de signo más (+) se usa para los términos requeridos. Por ejemplo, +wifi +luxury estipula que ambos términos deben aparecer` +\n `en algún lugar en el campo de un documento. `;\nexport const INFO_TITLE9 = `Operador NOT NOT - !`;\nexport const INFO_TEXT9 = `El operador NOT es un signo de exclamación o el signo menos. Por ejemplo, wifi !luxury encontrará documentos que contengan el término wifi y no contengan el término luxury.`;\nexport const INFO_TITLE10 = `LÃmite de tamaño de consulta `;\nexport const INFO_TEXT10 = `Existe un lÃmite en el tamaño de las consultas que se pueden enviar. En concreto, puede tener como máximo 1024 cláusulas (expresiones separadas por AND, OR, etc.). También hay un lÃmite de aproximadamente 32 KB en el tamaño de cualquier término individual en una` +\n `consulta. Si la aplicación genera consultas de búsqueda mediante programación, se recomienda que la diseña de manera que no genere consultas de tamaño ilimitado. `;\nexport const INFO_TITLE11 = `Búsqueda clasificada por campos `;\nexport const INFO_TEXT11 = `Puede definir una operación de búsqueda clasificada por campos con la sintaxis fieldName:searchExpression, donde la expresión de búsqueda puede ser una sola palabra, una frase o una expresión más compleja entre paréntesis, opcionalmente con operadores booleanos.` +\n ` Estos son algunos ejemplos: `;\nexport const INFO_TEXT12 = `genre:jazz NOT history `;\nexport const INFO_TEXT13 = `artists:(\"Miles Davis\" \"John Coltrane\") `;\nexport const INFO_TEXT14 = `Asegúrese de colocar varias cadenas entre comillas si quiere que las dos cadenas se evalúen como una sola entidad, como en este caso donde se buscan dos artistas distintos en el campo artists.`;\nexport const INFO_TITLE12 = `Búsqueda aproximada `;\nexport const INFO_TEXT15 = `Una búsqueda aproximada busca coincidencias en términos que tienen una construcción similar. Según la documentación de Lucene, las búsquedas aproximadas se basan en la distancia Levenshtein-Damerau. Las búsquedas aproximadas pueden expandir un término hasta un ` +\n `máximo de 50 términos que satisfagan los criterios de distancia. \n \\nPara realizar una búsqueda aproximada, use el sÃmbolo \"~\" de tilde de la Ñ al final de una sola palabra con un parámetro opcional, un número entre 0 y 2, que especifica la distancia de edición. Por ejemplo, \"blue~\" o \"blue~1\" devolverÃa \"blue\", \"blues\" y \"glue\".\n \\nLa búsqueda aproximada solo puede aplicarse a términos, no a frases, pero se puede anexar la tilde a cada término individualmente en un nombre de varias partes o frase. Por ejemplo, \"Unviersdad~ de~ \"Zragoza~\" coincidirÃa con \"Universidad de Zaragoza\". `;\nexport const INFO_TITLE13 = `Búsqueda por proximidad `;\nexport const INFO_TEXT16 = `Las búsquedas de proximidad se utilizan para buscar términos que están cerca entre sà en un documento. Inserte un sÃmbolo \"~\" de la tilde de la Ñ al final de una frase seguido del número de palabras que crea el lÃmite de proximidad. Por ejemplo, \"hotel airport\"~5` +\n ` encontrará los términos \"hotel\" y \"airport\" a menos de 5 palabras de distancia unos de otros en un documento. `;\nexport const INFO_TITLE14 = `Priorización de términos `;\nexport const INFO_TEXT17 = `\"Priorización de términos\" hace referencia a la valoración de un documento superior si contiene el término prioritario con respecto a los documentos que no contienen el término. Esto difiere de los perfiles de puntuación en los que aumentan ciertos campos, en lugar` +\n ` de términos especÃficos.\n \\nLa priorización de términos podrÃa utilizarse para dar mayor prioridad a determinados términos de búsqueda frente a otros. Por ejemplo, rock^2 electronic impulsará los documentos que contienen el término de búsqueda rock tendrán una clasificación mayor que los del término de búsqueda` +\n ` electronic como resultado del valor de impulso de términos (2). \n \\nPara impulsar un término, use el sÃmbolo de intercalación, \"^\", un sÃmbolo con un factor de impulso (un número) al final del término que quiera buscar. También puede impulsar frases. Cuanto mayor sea el factor de prioridad, más relevante será el término en relación con otros términos` +\n ` de búsqueda.De forma predeterminada, el factor de prioridad es 1. Aunque el factor de impulso debe ser positivo, puede ser inferior a 1(por ejemplo, 0, 20).`;\nexport const INFO_TITLE15 = `Búsqueda de expresiones regulares `;\nexport const INFO_TEXT18 = `Una búsqueda de expresión regular encuentra una coincidencia en función del contenido entre barras diagonales \"/\", como se documentó en la clase RegExp.\n \\nPor ejemplo, para encontrar documentos que contengan \"motel\" o \"hotel\", especifique /[mh]otel/. Las búsquedas mediante expresiones regulares se comparan con las palabras individuales. `;\nexport const INFO_TITLE16 = `Búsqueda con caracteres comodÃn `;\nexport const INFO_TEXT19 = `Puede utilizar la sintaxis generalmente reconocida para búsquedas con caracteres comodÃn únicas (?) o múltiples (*). Tenga en cuenta que el Analizador de consultas de Lucene admite el uso de estos sÃmbolos con un único término y no una frase. \n \\nPor ejemplo, para encontrar documentos que contengan las palabras con el prefijo \"note\", como \"notebook\" o \"notepad\", especifique \"note*\". `;\nexport const INFO_TITLE17 = `Relación de campos `;\nexport const INFO_TEXT191 = `Los campos consultables que puede usar para realizar una búsqueda refinada son los siguientes. \n \\nLa palabra escrita en color verde, que aparece en el siguiente cuadro, indica el literal que se debe incluir dentro de la caja autocompletable para concretar la búsqueda. `;\n","export enum ToastrType {\n Success,\n Info,\n Warning,\n Error\n}\n","import en from \"./en/common.json\";\nimport es from \"./es/common.json\";\nimport va from \"./va/common.json\";\n\nexport const getLanguage = (language: string) => {\n switch (language) {\n case \"es\":\n return es;\n case \"en\":\n return en;\n case \"va\":\n return va;\n }\n}\n\n ","import React from 'react';\nimport { commonStringsEn } from '../../../resources/commonStrings_en'\nimport {commonStringsEs} from '../../../resources/commonStrings'\nimport {commonStringsVa} from '../../../resources/commonStrings_va'\nimport { DefaultButton, PrimaryButton } from 'office-ui-fabric-react/lib/Button';\nimport Dialog from '@material-ui/core/Dialog';\nimport './../../../styles/downloadConfirmationPanel/downloadConfirmationPanel.scss';\nimport { Checkbox } from 'office-ui-fabric-react';\nimport { getLanguage } from '../../../translations/language';\nimport { getLanguageLocalStorage } from '../../utils/languageHelper';\n\ninterface IProps {\n showPanel: boolean;\n onAccept: () => void;\n onCancel: () => void;\n}\n\ninterface IState {\n didConfirm: boolean;\n}\n\nexport class DonwloadConfirmationPanel extends React.Component<IProps, IState>{\n\n constructor(props) {\n super(props);\n this.state = {\n didConfirm: false,\n };\n }\n\n componentWillUnmount() {\n this.setState({\n didConfirm: false,\n });\n\n }\n \n getLanguages = () => {\n switch (getLanguageLocalStorage()) {\n case \"en\":\n return commonStringsEn;\n case \"es\":\n return commonStringsEs;\n case \"va\":\n return commonStringsVa;\n }\n }\n\n render() {\n const stringsLanguages = this.getLanguages();\n return (\n <>\n <Dialog\n open={this.props.showPanel}\n onClose={this.onCancel}\n scroll={'paper'}\n aria-labelledby=\"scroll-dialog-title\"\n aria-describedby=\"scroll-dialog-description\"\n className=\"downloadConfirmationModal\"\n >\n <div className=\"downloadConfirmationModalContainer format\">\n\n <h3 className=\"downloadConfirmationModalTitle\">\n {getLanguage(getLanguageLocalStorage()).SEARCH.MODAL.GENERAL_CONDITIONS} \n </h3>\n <div className=\"downloadConfirmationModalContent\">\n <div>\n <b> {stringsLanguages.DOWNLOAD_BOLD_TEXT1}</b>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS1}</p>\n </div>\n <div>\n <b >{stringsLanguages.DOWNLOAD_BOLD_TEXT2}</b>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS2}</p>\n </div>\n <div>\n <b >{stringsLanguages.DOWNLOAD_BOLD_TEXT3}</b>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS3}</p>\n </div>\n <div>\n <p className=\"styleItalic\">{stringsLanguages.DOWNLOAD_ITALIC1} <p className=\"noItalic\">{stringsLanguages.DOWNLOAD_ITALIC2}</p></p> \n </div> \n <div>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS7}</p>\n </div>\n <div>\n <b>{stringsLanguages.DOWNLOAD_BOLD_TEXT4}</b>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS8}</p>\n </div>\n <div>\n <b >{stringsLanguages.DOWNLOAD_BOLD_TEXT5}</b>\n <p className=\"styleText\">{stringsLanguages.DOWNLOAD_TERMS9}</p>\n </div>\n\n </div>\n <div className=\"downloadConfirmationModalCheckbox\">\n <Checkbox onChange={() => this.onCheckbox()} label={ getLanguage(getLanguageLocalStorage()).SEARCH.MODAL.ACCEPT_CONDITIONS } />\n </div>\n\n <div className=\"downloadConfirmationModalButtons\">\n <DefaultButton onClick={this.onCancel} text={getLanguage(getLanguageLocalStorage()).BUTTONS.CANCEL} className=\"secondaryButton\" />\n <PrimaryButton disabled={!this.state.didConfirm} onClick={() => this.onAccept()} text={getLanguage(getLanguageLocalStorage()).BUTTONS.ACCEPT} className=\"primaryButton\" />\n </div>\n </div>\n </Dialog>\n </>\n );\n }\n\n onAccept = () => {\n this.props.onAccept();\n this.setState({\n didConfirm: false\n });\n\n };\n\n onCancel = () => {\n this.setState({\n didConfirm: false\n });\n this.props.onCancel();\n };\n\n onCheckbox = () => {\n this.setState({\n didConfirm: !this.state.didConfirm\n });\n };\n}\n","import React from 'react';\nimport { IDownloadDocument } from '../../model/downloadList';\nimport '../../styles/downloadList/downloadList.scss';\nimport { FiDownloadCloud, FiX, FiChevronUp } from 'react-icons/fi';\nimport { DonwloadConfirmationPanel } from '../../common/components/downloadConfirmationPanel/downloadConfirmationPanel';\nimport { DownloadDocumentState } from '../../model/downloadDocumentState/DownloadDocumentState';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\nimport { getLanguage } from '../../translations/language';\n\n\ninterface IProps {\n downloadList: IDownloadDocument[];\n downloadingDocumentStatus: DownloadDocumentState;\n language: string;\n\n removeItem: (document: IDownloadDocument) => void;\n downloadDocList: (docRequest: DownloadDocRequest[]) => void;\n clearDownloadList: () => void;\n clearDownloadState: () => void;\n}\n\ninterface IState {\n isPanelOpen: boolean;\n showDownloadPanel: boolean;\n}\n\nexport class DownloadList extends React.Component<IProps, IState>{\n constructor(props: any) {\n super(props);\n this.state = {\n isPanelOpen: false,\n showDownloadPanel: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.downloadingDocumentStatus !== prevProps.downloadingDocumentStatus\n && this.props.downloadingDocumentStatus.currentState === DownloadDocumentStateTypes.COMPLETED) {\n this.props.clearDownloadList();\n this.props.clearDownloadState();\n }\n if (this.props.downloadList !== prevProps.downloadList &&\n this.props.downloadList.length === 0) {\n this.props.clearDownloadState();\n }\n }\n\n render() {\n let panelClass = '';\n let noItemsClass = '';\n const language = this.props.language;\n const downloadStatusClass: string = this._getDownloadStatusClass();\n if (this.state.isPanelOpen) {\n panelClass = 'open';\n }\n if (this.props.downloadList.length === 0) {\n noItemsClass = 'noItems';\n }\n return (\n <div className={`downloadListContainer ${panelClass} ${noItemsClass} ${downloadStatusClass}`}>\n <div className=\"downloadListTitle boxDownload\" onClick={() => this.changePanelShow()}>\n <div className=\"downloadListTitleText\">\n {`${this.props.downloadList.length} ${getLanguage(language).SEARCH.DOWNLOADLIST.X_SELECTED}`}\n </div>\n {this._renderArrow()}\n </div>\n {this._renderDownloadList()}\n </div>\n );\n }\n\n _getDownloadStatusClass = (): string => {\n if (this.state.isPanelOpen) {\n switch (this.props.downloadingDocumentStatus.currentState) {\n case DownloadDocumentStateTypes.INPROGRESS:\n return 'downloading';\n case DownloadDocumentStateTypes.ERROR:\n return 'downloadError';\n case DownloadDocumentStateTypes.COMPLETED:\n return 'downloadCompleted';\n default:\n return 'downloadNotStarted';\n }\n } else {\n return '';\n }\n };\n\n _renderArrow = (): JSX.Element => {\n if (this.props.downloadList.length > 0) {\n return (\n <div className=\"downloadListTitleArrow\">\n <FiChevronUp className=\"arrowIcon\" />\n </div>\n );\n } else {\n if (this.state.isPanelOpen) {\n this.setState({ isPanelOpen: false });\n }\n return (<></>);\n }\n };\n\n _renderDownloadList = (): JSX.Element => {\n return (\n <>\n <DonwloadConfirmationPanel\n onAccept={this.onAcceptDownload}\n onCancel={this.onCancelDownload}\n showPanel={this.state.showDownloadPanel}\n />\n <div className=\"downloadList\">\n {this._createDownloadList().map(itemList => {\n return itemList;\n })}\n </div>\n {this._renderDownloadButton()}\n </>\n );\n };\n\n _renderDownloadButton = (): JSX.Element => {\n const language = this.props.language;\n if (this.props.downloadList.length > 0) {\n return (\n <div className=\"downloadButtonContainer\">\n <div className=\"downloadButton\" onClick={() => this.downloadButtonClick()}> <FiDownloadCloud className=\"downloadCloudIcon\" /> {getLanguage(language).SEARCH.DOWNLOADLIST.DOWNLOAD_SELECTION}</div>\n </div>\n );\n } else {\n return (<></>);\n }\n };\n\n _createDownloadList = (): JSX.Element[] => {\n if (this.props.downloadList) {\n return this.props.downloadList.map(item => {\n return this._createDownloadListItem(item);\n });\n }\n return [];\n };\n\n _createDownloadListItem = (document: IDownloadDocument): JSX.Element => {\n return (\n <div className=\"item\" key={document.id}>\n <div className=\"itemTypeName\">\n <div className=\"itemType\">\n {document.type}\n </div>\n <div className=\"itemName\">\n {document.name}\n </div>\n </div>\n <div className=\"itemRemove\" onClick={() => this.removeDownload(document)}>\n <FiX />\n </div>\n </div>\n );\n };\n\n changePanelShow = () => {\n this.setState({\n isPanelOpen: !this.state.isPanelOpen\n });\n };\n\n removeDownload = (doc: IDownloadDocument) => {\n this.props.removeItem(doc);\n };\n\n downloadButtonClick = () => {\n this.showPanel();\n };\n\n downloadList = () => {\n const requestList: DownloadDocRequest[] = [];\n this.props.downloadList.forEach(doc => {\n const request: DownloadDocRequest = {\n originalId: doc.originalId,\n docUri: doc.pdfUri\n };\n requestList.push(request);\n });\n this.props.downloadDocList(requestList);\n };\n\n downloadDocument = () => {\n this.showPanel();\n };\n\n onAcceptDownload = () => {\n this.downloadList();\n this.hidePanel();\n };\n\n onCancelDownload = () => {\n this.hidePanel();\n };\n\n hidePanel = () => {\n this.setState({\n showDownloadPanel: false\n });\n };\n\n showPanel = () => {\n this.setState({\n showDownloadPanel: true\n });\n };\n}\n","import * as toastr from 'toastr';\nimport { ToastrType} from './ToastrType';\nimport '../../styles/css/toastr.min.css';\nimport './Alerts.scss';\n \nexport default class Alerts { \n static show(message: string, type: ToastrType): void {\n toastr.options.positionClass = 'toast-top-right';\n switch (type) {\n case ToastrType.Success:\n toastr.success(message);\n break;\n case ToastrType.Info:\n toastr.info(message);\n break;\n case ToastrType.Warning:\n toastr.warning(message);\n break;\n case ToastrType.Error:\n default:\n toastr.error(message);\n break;\n }\n }\n}\n","export const methodRequest = {\n\tGET: 'GET',\n\tPOST: 'POST',\n\tPUT: 'PUT',\n\tDELETE: 'DELETE',\n};\n","export const msalAuthConfig = {\n authority: process.env.REACT_APP_MSALAUTHORITY,\n clientId: process.env.REACT_APP_MSALCLIENTID,\n postLogoutRedirectUri: process.env.REACT_APP_URL_REDIRECT\n};\n\nexport const msalCacheConfig = {\n storeAuthStateInCookie: true,\n CacheLocation: 'localStorage'\n};\nexport const msalConfig = {\n auth: msalAuthConfig,\n cache: msalCacheConfig\n};\n","import { UserAgentApplication, AuthenticationParameters, AuthResponse } from 'msal';\nimport { BearerTokenFetchClient, FetchOptions, isUrlAbsolute } from '@pnp/common';\nimport { msalConfig } from './msalConfig';\n\nimport decode from 'jwt-decode';\n\nexport const msalInstance = new UserAgentApplication(msalConfig);\n\n\nexport class PnPFetchClient extends BearerTokenFetchClient {\n constructor(private readonly authContext: UserAgentApplication) {\n super(null);\n }\n public async fetch(url: string, options: FetchOptions = {}): Promise<Response> {\n if (!isUrlAbsolute(url)) {\n throw new Error('You must supply absolute urls to PnPFetchClient.fetch.');\n }\n const token = await this.getToken(this.getResource(url));\n if (token) {\n this.token = token;\n return super.fetch(url, options);\n } else {\n return fetch(url, options);\n }\n }\n\n private async getToken(resource: string): Promise<string> {\n\n const request: AuthenticationParameters = {\n };\n request.scopes = [process.env.REACT_APP_MSALCLIENTID];\n if (resource.indexOf('graph') !== -1) {\n request.scopes = ['user.read'];\n }\n try {\n const response = await this.authContext.acquireTokenSilent(request);\n return response.accessToken;\n } catch (error) {\n return null;\n }\n }\n\n getClaims(response: AuthResponse) {\n return decode(response.accessToken);\n }\n getRoles(claims: any) {\n return claims.hasOwnProperty('roles') ? claims.roles : null;\n }\n\n private requiresInteraction(errorCode: string) {\n if (!errorCode || !errorCode.length) {\n return false;\n }\n return errorCode === 'consent_required' ||\n errorCode === 'interaction_required' ||\n errorCode === 'login_required';\n }\n\n private getResource(url: string): string {\n const parser = document.createElement('a');\n parser.href = url;\n return `${parser.protocol}//${parser.hostname}`;\n }\n}\n","export const routeUrls = {\n search: '/:language/search',\n result: '/:language/search/result',\n homeResult: '/:language/search/result?origin=home',\n detail: `/:language/detalle/:id`,\n detailFile: `/:language/detailFile/:id`,\n resources: '/:language/Recursos',\n advancedSearch: '/:language/advancedSearch',\n login: '/login',\n contacto: '/:language/contacto',\n expired: '/expired',\n ayuda: '',\n webValenciaport: 'https://www.valenciaport.com',\n info: '/:language/info',\n politicaDeCookies: 'https://archivohistoricoblob.valenciaport.com/aditional-info/Cookies.pdf'\n};\n\nexport const routeStrings = {\n search: '/search',\n result: '/search/result',\n homeResult: '/search/result?origin=home',\n detail: `/detalle/:id`,\n detailFile: `/detailFile/:id`,\n resources: '/Recursos',\n advancedSearch: '/advancedSearch',\n login: '/login',\n contacto: '/contacto',\n expired: '/expired',\n ayuda: '',\n webValenciaport: 'https://www.valenciaport.com',\n info: '/info',\n politicaDeCookies: 'https://archivohistoricoblob.valenciaport.com/aditional-info/Cookies.pdf'\n};\n","import { Condition } from './../../model/search/condition';\nimport { SearchResult, Filters, AdvanceSearchResult, Facet, DocGroup, DetailSearchResult, DetailSearchFiles } from '../../model/search';\nimport { IDocumentType } from '../../model/documentTypes/documentType';\nimport { methodRequest } from '../../common/constants/methodRequest';\nimport { PnPFetchClient, msalInstance } from '../../common/msal/msal';\nimport { IDocumentarySeries } from '../../model/documentTypes';\nimport { IDocumentSubType } from '../../model/documentTypes/documentSubTypes';\nimport { SearchFilters, SearchFilter } from '../../model/search/searchFilters';\nimport { DownloadDocRequest } from '../../model/downloadRequest';\nimport { ContactRequest } from '../../model/contact';\nimport history from '../../history';\nimport { routeUrls } from '../../common/constants/routes';\nimport { searchTypeEnum } from '../../model/enum/searchType';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\nimport { getLanguage } from '../../translations/language';\n\n\nconst appJson = 'application/json';\nconst headersCon = {\n 'Content-Type': appJson,\n 'Accept': appJson,\n 'userLanguage': getLanguageLocalStorage()\n};\nconst baseUrl = `${process.env.REACT_APP_API}/api`;\nconst GetPnp = () => {\n const token = sessionStorage.getItem('msal.idtoken') ? `Authorization:${sessionStorage.getItem('msal.idtoken')}` : null;\n const publicUrl = `${baseUrl}/public/search`;\n if (!token) {\n return publicUrl;\n } else {\n return `${baseUrl}/private/search`;\n }\n};\nconst pnp = new PnPFetchClient(msalInstance);\n\nconst searchTypeApi = (searchTypeEnumUrl: searchTypeEnum): string => {\n let url = '';\n if (searchTypeEnumUrl === searchTypeEnum.Simple) {\n url = `${GetPnp()}/documents/simple/${getLanguageLocalStorage()}`;\n } else {\n url = `${GetPnp()}/documents/advanced/${getLanguageLocalStorage()}`;\n }\n return url;\n};\n\nconst GetSuggestAsync = (text: string): Promise<SearchResult[]> => {\n const searchUrl = `${GetPnp()}/documents/suggest/${getLanguageLocalStorage()}`;\n const filter = {\n SearchText: text\n };\n const obj = {\n method: methodRequest.POST,\n headers: headersCon,\n body: JSON.stringify(filter),\n };\n\n const textButton = `${getLanguage(getLanguageLocalStorage()).SEARCH.MORE_RESULTS}`;\n\n return apiCall(searchUrl, obj, (res) => {\n const result = mapToSearchResult(res);\n\n result.push({\n id: '00000',\n originalId: '0000',\n name: textButton,\n thumbnailUri: '',\n description: '',\n pdfUri: '',\n public: true,\n apvDocType: '',\n moreResults: true,\n clasificationType: '',\n hasPhotographs: true,\n hasPlans: true,\n size: 0,\n endDate: '',\n initDate: '',\n location: '',\n apvDocSubType: '',\n tipoDocumentalENI: '',\n caseFiles: [],\n notes: [],\n score: 0,\n total: 0,\n page: 0,\n signature: ''\n });\n\n return result;\n });\n};\n\nconst GetDetailAsync = (id: string): Promise<DetailSearchResult> => {\n const searchUrl = `${GetPnp()}/documents/details/${id}/${getLanguageLocalStorage()}`;\n\n const obj = {\n method: methodRequest.GET,\n headers: headersCon,\n };\n return apiCall(searchUrl, obj, mapToDetailSeachResult);\n};\n\nconst mapToDetailSeachResult = (item): DetailSearchResult => {\n return {\n id: item.id,\n originalId: item.originalId,\n name: item.name,\n thumbnailUri: item.thumbnailUri,\n description: item.description,\n pdfUri: item.pdfUri,\n public: item.public,\n apvDocType: item.apvDocType,\n moreResults: false,\n clasificationType: item.clasificationType,\n initDate: item.initDate,\n endDate: item.endDate,\n hasPhotographs: item.hasPhotographs,\n hasPlans: item.hasPlans,\n size: item.size,\n location: item.location,\n apvDocSubType: item.apvDocSubType,\n tipoDocumentalENI: item.tipoDocumentalENI,\n caseFiles: mapToSearchFiles(item.caseFiles),\n notes: mapNotes(item.notes),\n score: item.score,\n page: item.page,\n total: item.total,\n signature: item.signature\n };\n};\n\nconst mapToSearchFiles = (response): DetailSearchFiles[] => {\n const result: DetailSearchFiles[] = [];\n if (response !== undefined) {\n response.map(item => {\n const searchMap: DetailSearchFiles = {\n id: item.id,\n name: item.name,\n description: item.description,\n thumbnailUri: '',\n docs: [],\n documentalSeries: '',\n endDate: item.endDate,\n initDate: item.initDate,\n location: item.location,\n notes: mapNotes(item.notes),\n type: 'Expediente',\n public: item.public,\n page: item.page,\n total: item.total,\n signature: item.signature\n };\n return result.push(searchMap);\n });\n }\n return result;\n};\n\nconst mapNotes = (response): string[] => {\n const result: string[] = [];\n if (response !== undefined) {\n response.map(item => {\n return result.push(item);\n });\n }\n return result;\n};\n\nconst GetClassificatonChart = (): Promise<IDocumentType[]> => {\n const classificationChartUrl = `${GetPnp()}/classificationChart/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.GET,\n headers: headersCon\n };\n return apiCall(classificationChartUrl, obj, mapToDocumentType);\n};\n\nconst mapToDocumentType = (response): IDocumentType[] => {\n const result: IDocumentType[] = [];\n if (response !== undefined) {\n response.map(item => {\n const searchMap: IDocumentType = {\n code: item.code,\n description: item.description,\n documentSubType: mapToDocumentSubType(item.mainFunctions)\n };\n return result.push(searchMap);\n });\n }\n return result;\n};\n\nconst mapToDocumentSubType = (response): IDocumentSubType[] => {\n const result: IDocumentSubType[] = [];\n if (response !== undefined) {\n response.map(item => {\n const searchMap: IDocumentSubType = {\n code: item.code,\n description: item.description,\n documentarySeries: mapToDocumentarySerie(item.documentariesSeries)\n };\n return result.push(searchMap);\n });\n }\n return result;\n};\n\nconst mapToDocumentarySerie = (response): IDocumentarySeries[] => {\n const result: IDocumentarySeries[] = [];\n if (response !== undefined) {\n response.map(item => {\n const searchMap: IDocumentarySeries = {\n code: item.code,\n description: item.description,\n };\n return result.push(searchMap);\n });\n }\n return result;\n};\n\nconst GetLastLoaded = (): Promise<SearchResult[]> => {\n const searchLastLoadedUrl = `${GetPnp()}/lastDocuments/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.GET,\n headers: headersCon,\n };\n return apiCall(searchLastLoadedUrl, obj, mapToSearchResult);\n};\n\nconst GetFeaturedDocuments = (): Promise<SearchResult[]> => {\n const searchFeaturedDocumentsUrl = `${GetPnp()}/featuredDocuments/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.GET,\n headers: headersCon,\n };\n return apiCall(searchFeaturedDocumentsUrl, obj, mapToSearchResult);\n};\n\nconst GetAdvancedSearch = (filter: Filters, searchTypeEnumUrl: searchTypeEnum): Promise<AdvanceSearchResult> => {\n const advancedSearchoadedUrl = `${searchTypeApi(searchTypeEnumUrl)}`;\n const obj = {\n method: methodRequest.POST,\n headers: headersCon,\n body: JSON.stringify(filter)\n };\n\n return apiCall(advancedSearchoadedUrl, obj, mapToSearchComplexResult);\n};\n\nconst GetClassificationTable = (filter: Filters): Promise<AdvanceSearchResult> => {\n const classificationTableUrl = `${GetPnp()}/documents/classificationtable/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.POST,\n headers: headersCon,\n body: JSON.stringify(filter)\n };\n\n return apiCall(classificationTableUrl, obj, mapToSearchComplexResult);\n};\n\nconst PostDocumentDownload = (docsRequest: DownloadDocRequest[]): Promise<boolean> => {\n const docDownloadUrl = `${GetPnp()}/documents/download/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.POST,\n headers: headersCon,\n body: JSON.stringify(docsRequest)\n };\n\n return apiCall(docDownloadUrl, obj, handleResponse, true);\n};\n\nconst GetSearchFilters = (): Promise<SearchFilters> => {\n const getSearchFiltersUrl = `${GetPnp()}/filters/${getLanguageLocalStorage()}`;\n\n const obj = {\n method: methodRequest.GET,\n headers: headersCon\n };\n\n return apiCall(getSearchFiltersUrl, obj, mapToSearchFilters);\n};\n\nconst handleResponse = (response: any) => {\n if (response.ok) {\n response.json().then((json) => downloadFile(json.url));\n return true;\n } else {\n return false;\n }\n};\n\nconst GetCaseFileDownload = (filesId: string): Promise<boolean> => {\n const docDownloadUrl = `${GetPnp()}/documents/downloadCaseFileDocs/${filesId}/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.GET,\n headers: headersCon\n };\n return apiCall(docDownloadUrl, obj, handleResponse, true);\n};\n\nconst GetDetailFileAsync = (id: string, page: number): Promise<DetailSearchFiles> => {\n const searchUrl = `${GetPnp()}/documents/casefile/${id}/${page}/${getLanguageLocalStorage()}`;\n const obj = {\n method: methodRequest.GET,\n headers: headersCon,\n };\n return apiCall(searchUrl, obj, mapToDetailFileResult);\n};\n\nconst PostContactEmail = (contactRequest: ContactRequest): Promise<boolean> => {\n const contactEmailUrl = `${GetPnp()}/contact/send`;\n const obj = {\n method: methodRequest.POST,\n headers: headersCon,\n body: JSON.stringify(contactRequest)\n };\n return apiCall(contactEmailUrl, obj, (response) => {\n return response.status === 200;\n }, true);\n};\n\nconst mapToDetailFileResult = (item): DetailSearchFiles => {\n return {\n id: item.id,\n name: item.name,\n description: item.description,\n thumbnailUri: item.thumbnailUri,\n docs: mapToSearchResult(item.docs),\n documentalSeries: item.documentalSerie,\n endDate: item.endDate,\n initDate: item.initDate,\n location: item.location,\n notes: mapNotes(item.notes),\n type: 'Expediente',\n public: item.public,\n page: item.page,\n total: item.total,\n signature: item.signature\n };\n};\n\nconst mapToSearchComplexResult = (response): AdvanceSearchResult => {\n const result: AdvanceSearchResult = new AdvanceSearchResult();\n if (response !== null) {\n result.page = response.page;\n result.total = response.total;\n if (response.docs !== undefined) {\n result.docs = mapToSearchResult(response.docs);\n }\n if (response.documentTypeGroupsFacets !== undefined) {\n response.documentTypeGroupsFacets.map((item: DocGroup) => {\n return result.documentTypeGroupsFacets.push(item);\n });\n }\n if (response.caseFiles !== undefined) {\n result.files = mapToSearchFiles(response.caseFiles);\n }\n\n for (const key in response.facets) {\n const lstTemp = response.facets[key];\n const faceLst: Facet[] = [];\n lstTemp.map(item => {\n const facetMap: Facet = {\n count: item.count,\n filter: item.filter,\n displayName: item.displayName\n };\n return faceLst.push(facetMap);\n });\n result.facets[key] = faceLst;\n }\n }\n return result;\n};\n\nconst mapToSearchResult = (response): DetailSearchResult[] => {\n const result: DetailSearchResult[] = [];\n if (response !== undefined) {\n response.map(item => {\n const searchMap: DetailSearchResult = {\n id: item.id,\n originalId: item.originalId,\n name: item.name,\n thumbnailUri: item.thumbnailUri,\n description: item.description,\n pdfUri: item.pdfUri,\n public: item.public,\n apvDocType: item.apvDocType,\n moreResults: false,\n clasificationType: item.clasificationType,\n hasPhotographs: item.hasPhotographs,\n hasPlans: item.hasPlans,\n size: item.size,\n initDate: item.initDate,\n endDate: item.endDate,\n location: item.location,\n apvDocSubType: item.apvDocSubType,\n tipoDocumentalENI: item.tipoDocumentalENI,\n score: item.score,\n caseFiles: mapToSearchFiles(item.caseFiles),\n notes: mapNotes(item.notes),\n page: item.page,\n total: item.total,\n signature: item.signature\n };\n return result.push(searchMap);\n });\n }\n return result;\n};\n\nconst mapToSearchFilters = (response): SearchFilters => {\n const searchFiltersMapped: SearchFilters = new SearchFilters();\n response.forEach(item => {\n const mappedFilter: SearchFilter = {\n field: item.field,\n display: item.display,\n conditions: mapSearchFilterConditions(item.conditions)\n };\n searchFiltersMapped.filters.push(mappedFilter);\n });\n\n return searchFiltersMapped;\n};\n\nconst mapSearchFilterConditions = (conditions: any): Condition[] => {\n const conditionsMapped: Condition[] = [];\n conditions.forEach(condition => {\n conditionsMapped.push({\n id: condition.id,\n value: condition.value,\n });\n });\n return conditionsMapped;\n};\n\nconst apiCall = (urlApi: string, obj: any, mapFunc: any, isDownload = false): any => {\n return pnp.fetch(urlApi, obj).then((response) => {\n if (response.status === 401) {\n history.push(routeUrls.expired);\n return null;\n } else {\n if (isDownload) {\n return mapFunc(response);\n }\n return response.json().then(mapFunc);\n }\n });\n};\n\nconst downloadFile = (urlValue: string) => {\n const a = document.createElement('a');\n document.body.appendChild(a);\n a.style.display = 'none';\n a.href = urlValue;\n a.setAttribute('target', '_blank');\n a.click();\n a.parentNode.removeChild(a);\n};\n\nexport const searchMsalApi = {\n GetSuggestAsync,\n GetLastLoaded,\n GetAdvancedSearch,\n GetDetailAsync,\n PostDocumentDownload,\n GetClassificatonChart,\n GetSearchFilters,\n GetFeaturedDocuments,\n GetDetailFileAsync,\n GetCaseFileDownload,\n PostContactEmail,\n GetClassificationTable\n};\n","import { ToastrType } from './../../common/Alerts/ToastrType';\nimport { actionsDefinition } from '../actionsDef';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport const downloadMultipleDocsAction = (docsRequest: DownloadDocRequest[]) => (dispatch: any) => {\n\n dispatch(downloadDocumentsDispatch(DownloadDocumentStateTypes.INPROGRESS));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOCS_IN_PROGRESS), ToastrType.Info);\n\n searchMsalApi.PostDocumentDownload(docsRequest).then((result) => {\n if (result) {\n dispatch(downloadDocumentsDispatch(DownloadDocumentStateTypes.COMPLETED));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOCS_SUCESSFULLY), ToastrType.Success);\n } else {\n dispatch(downloadDocumentsDispatch(DownloadDocumentStateTypes.ERROR));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOCS_FAILED), ToastrType.Info);\n }\n });\n};\n\nconst downloadDocumentsDispatch = (payloadDis: DownloadDocumentStateTypes) => ({\n type: actionsDefinition.downloadDocument.DOWNLOAD_LIST,\n payload: payloadDis,\n meta: {\n httpEnd: true\n }\n});\n\nexport const clearDocumentDownloadStateAction = () => (dispatch: any) => {\n dispatch(clearDocumentDownloadState(DownloadDocumentStateTypes.NOTSTARTED));\n};\n\nexport const clearDocumentDownloadState = (payloadClear: DownloadDocumentStateTypes) => ({\n type: actionsDefinition.downloadDocument.CLEAR_STATE,\n payload: payloadClear\n});\n","import { connect } from 'react-redux';\nimport { StateReducer } from '../../reducers';\nimport { IDownloadDocument } from '../../model/downloadList';\nimport { removeDownloadAction } from '../../actions/downloadList/removeDownloadAction';\nimport { clearListAction } from '../../actions/downloadList/clearListAction';\nimport { DownloadList } from './downloadList';\nimport { downloadMultipleDocsAction, clearDocumentDownloadStateAction } from '../../actions/downloadDocument/downloadDocument';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\n\nconst mapStateToProps = (state: StateReducer) => ({\n downloadList: state.downloadList,\n downloadingDocumentStatus: state.downloadingDocumentListStatus,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n removeItem: (document: IDownloadDocument) => dispatch(removeDownloadAction(document)),\n downloadDocList: (docsRequest: DownloadDocRequest[]) => dispatch(downloadMultipleDocsAction(docsRequest)),\n clearDownloadList: () => dispatch(clearListAction()),\n clearDownloadState: () => dispatch(clearDocumentDownloadStateAction()),\n});\n\nexport const DownloadListContainer = connect(\n mapStateToProps,\n mapDispatchToProps\n)(DownloadList);\n","import * as React from 'react';\nimport { UserAgentApplication, AuthError } from 'msal';\nimport { msalConfig } from '../msal/msalConfig';\n\nexport const msalInstance = new UserAgentApplication(msalConfig);\n\ninterface IState {\n authenticated: boolean;\n renewIframe: boolean;\n errorMessage: string;\n hasError: boolean;\n roles: string[];\n}\n\nexport function withAuth<TOriginalProps>(\n WrappedComponent: React.ComponentClass<TOriginalProps> | React.FunctionComponent<TOriginalProps>\n): React.ComponentClass<TOriginalProps> {\n return class Auth extends React.Component<TOriginalProps, IState> {\n constructor(props: TOriginalProps) {\n super(props);\n\n this.state = {\n authenticated: false,\n renewIframe: false,\n hasError: false,\n errorMessage: null,\n roles: null,\n };\n }\n\n public componentWillMount(): void {\n msalInstance.handleRedirectCallback(() => { // on success\n this.setState({\n authenticated: true\n });\n }, (authErr: AuthError, accountState: string) => { // on fail\n this.setState({\n hasError: true,\n errorMessage: authErr.errorMessage\n });\n });\n if (msalInstance.isCallback(window.location.hash)) {\n this.setState({\n renewIframe: true\n });\n return;\n }\n if (!msalInstance.getAccount()) {\n msalInstance.loginRedirect({});\n return;\n } else {\n this.setState({\n authenticated: true\n });\n }\n }\n\n public render(): JSX.Element {\n if (this.state.renewIframe) {\n return <div>hidden renew iframe - not visible</div>;\n }\n\n if (this.state.authenticated) {\n return <WrappedComponent {...this.props} />;\n }\n\n if (this.state.hasError) {\n return <></>;\n }\n\n return <> </>;\n }\n\n };\n}\n","import React from 'react';\nimport {\n FacebookShareButton, TwitterShareButton, EmailShareButton,\n FacebookIcon, TwitterIcon, EmailIcon, LinkedinShareButton,\n LinkedinIcon, WhatsappShareButton, WhatsappIcon\n} from 'react-share';\nimport { TeachingBubble, ITeachingBubbleStyles } from 'office-ui-fabric-react';\nimport './../../../styles/socialMedia/socialMediaButtons.scss';\nimport { IoMdCopy } from 'react-icons/io';\nimport { ToastrType } from '../../Alerts/ToastrType';\nimport Alerts from '../../Alerts/Alerts';\nimport { getLanguageLocalStorage } from '../../utils/languageHelper';\nimport { getLanguage } from '../../../translations/language';\n\ninterface IProps {\n url: string;\n text: string;\n showPanel: boolean;\n onCancel: () => void;\n target: HTMLElement;\n closeButtonAriaLabel: string;\n hasCloseIcon: boolean;\n}\ninterface IState {\n didConfirm: boolean;\n}\n\nexport class SocialMediaButtons extends React.Component<IProps, IState>{\n constructor(props) {\n super(props);\n this.state = {\n didConfirm: false,\n };\n }\n\n copyClickboard = () => {\n const text = document.createElement('textarea');\n text.value = this.props.url;\n text.setAttribute('readonly', '');\n document.body.appendChild(text);\n text.select();\n document.execCommand('copy');\n document.body.removeChild(text);\n Alerts.show(getLanguage(getLanguageLocalStorage()).ALERTS.LINK_COPY_CLICKBOARD, ToastrType.Success);\n };\n\n public render() {\n const textButton = getLanguage(getLanguageLocalStorage()).HEADER.SHARE.TOOLTIP.COPY;\n\n const calloutStyles: Partial<ITeachingBubbleStyles> = {\n subComponentStyles: {\n callout: {\n calloutMain: {\n background: '$c--white'\n },\n beak: {\n background: '$c--white'\n },\n }\n }\n };\n\n if (this.props.showPanel) {\n return (\n <TeachingBubble\n target={this.props.target}\n onDismiss={this.props.onCancel}\n styles={calloutStyles}\n calloutProps={{\n className: 'socialShareBubble',\n }}\n >\n <div className=\"ms-TeachingBubbleExample socialShareBubble\">\n <span className=\"targetButtonShared\">\n <FacebookShareButton\n url={this.props.url}\n quote={this.props.text}\n title={`${getLanguage(getLanguageLocalStorage()).HEADER.MAIL}`}\n >\n <FacebookIcon\n size={40}\n iconBgStyle={{ fill: 'transparent' }}\n logoFillColor=\"black\"\n />\n </FacebookShareButton>\n <TwitterShareButton\n url={this.props.url}\n quote={this.props.text}\n title={`${getLanguage(getLanguageLocalStorage()).HEADER.MAIL}`}\n >\n \n <TwitterIcon\n size={40}\n iconBgStyle={{ fill: 'transparent' }}\n logoFillColor=\"black\" />\n </TwitterShareButton>\n <LinkedinShareButton\n url={this.props.url}\n title={`${getLanguage(getLanguageLocalStorage()).HEADER.MAIL}`}\n >\n <LinkedinIcon\n size={40}\n iconBgStyle={{ fill: 'transparent' }}\n logoFillColor=\"black\" />\n </LinkedinShareButton>\n <WhatsappShareButton\n url={this.props.url}\n title={`${getLanguage(getLanguageLocalStorage()).HEADER.MAIL}`}\n >\n <WhatsappIcon\n size={40}\n round\n iconBgStyle={{ fill: 'transparent' }}\n logoFillColor=\"black\" />\n </WhatsappShareButton>\n <EmailShareButton\n subject={`${getLanguage(getLanguageLocalStorage()).HEADER.MAIL}`}\n body={`${this.props.text}`}\n url={this.props.url}\n >\n <EmailIcon\n size={40}\n iconBgStyle={{ fill: 'transparent' }}\n logoFillColor=\"black\" />\n </EmailShareButton>\n <div className=\"SocialMediaShareButton SocialMediaShareButton--copy \">\n <button\n title={textButton}\n className=\"btnActions addButton\"\n onClick={() => this.copyClickboard()}\n >\n <IoMdCopy className=\"buttonCopy\" />\n </button>\n </div>\n </span>\n </div>\n </TeachingBubble >\n );\n } else {\n return (<></>);\n }\n }\n}\n","import React from \"react\";\nimport esFlag from \"../../../styles/img/spa_flag.svg\";\nimport enFlag from \"../../../styles/img/uk_flag.svg\";\nimport vaFlag from \"../../../styles/img/Flag_of_the_Valencian_Community_(2x3).svg\";\nimport { languageIds } from '../../../common/constants/languagesId';\nimport Select from 'react-select';\nimport en from \"../../../translations/en/common.json\";\nimport es from \"../../../translations/es/common.json\";\nimport va from \"../../../translations/va/common.json\";\nimport '../../../styles/languageCombo/languageCombo.scss';\n\ninterface IProps {\n languageSelected: string;\n changeLanguage: (language: string) => void;\n}\nexport class LanguageCombo extends React.Component<IProps> {\n constructor(props: any) {\n super(props);\n }\n\n render() {\n return (\n <div className=\"languageCombo\">\n <Select\n defaultValue={this.getOptions().find(x => x.value === this.props.languageSelected)}\n options={this.getOptions()}\n onChange={this.onChange}\n />\n </div >\n )\n }\n\n getOptions = () => {\n return [\n { value: languageIds.en, label: this.renderEnOption() },\n { value: languageIds.es, label: this.renderEsOption() },\n { value: languageIds.va, label: this.renderVaOption() },\n\n ]\n }\n\n renderEnOption = (): JSX.Element => {\n return (\n <div className=\"optionContainer\">\n <img src={enFlag} className=\"enFlag\" />\n <div className=\"optionText\">{en.LANGUAGE.en}</div>\n </div>\n )\n }\n\n renderEsOption = (): JSX.Element => {\n return (\n <div className=\"optionContainer\">\n <img src={esFlag} className=\"esFlag\" />\n <div className=\"optionText\">{es.LANGUAGE.es}</div>\n </div>\n )\n }\n\n renderVaOption = (): JSX.Element => {\n return (\n <div className=\"optionContainer\">\n <img src={vaFlag} className=\"esFlag\" />\n <div className=\"optionText\">{va.LANGUAGE.va}</div>\n </div>\n )\n }\n\n getSelectedOption = (): any => {\n return this.props.languageSelected === languageIds.en ? { value: languageIds.en, label: this.renderEnOption() } : { value: languageIds.es, label: this.renderEsOption() };\n }\n\n onChange = (event: any) => {\n this.props.changeLanguage(event.value);\n }\n}\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { routeStrings, routeUrls } from '../../common/constants/routes';\nimport { FiVoicemail, FiList, FiSearch, FiMenu, FiX, FiLogOut, FiChevronDown, FiHelpCircle, FiShare2 } from 'react-icons/fi';\nimport { FaRegEnvelope } from 'react-icons/fa';\nimport './../../styles/header/header.scss';\nimport { msalInstance } from '../../common/hoc/auth';\nimport logo from '../../styles/img/APV-logo.svg';\nimport logoSmall from '../../styles/img/APV-logo-small.svg';\nimport logoBanner from '../../styles/img/logo-aslan-blanco.png';\nimport jwt_decode from 'jwt-decode';\nimport { Persona, PersonaSize } from 'office-ui-fabric-react';\nimport { SocialMediaButtons } from '../../common/components/socialMedia/socialMediaButtons';\nimport { LanguageCombo } from '../../common/components/languageCombo/LanguageCombo';\nimport { getLanguage } from \"../../translations/language\";\nimport { getLanguageLocalStorage, saveLanguageLocalStorage } from \"../../common/utils/languageHelper\";\n\n\nexport interface IHeaderProps {\n language: string;\n}\ninterface State {\n expanded: boolean;\n isUserInfoVisible: boolean;\n authenticated: boolean;\n isCalloutVisible: boolean;\n isUserInfoSelected: boolean;\n showSocial: boolean;\n}\nexport class Header extends React.Component<IHeaderProps, State> {\n node: HTMLDivElement;\n msal = 'msal.idtoken';\n private _menuButtonElement: HTMLElement;\n\n constructor(props) {\n super(props);\n this.toggleExpanded = this.toggleExpanded.bind(this);\n this.state = {\n expanded: false,\n isUserInfoVisible: false,\n authenticated: false,\n isCalloutVisible: false,\n isUserInfoSelected: false,\n showSocial: false\n };\n }\n\n toggleExpanded = () => {\n const currentState = this.state.expanded;\n this.setState({ expanded: !currentState });\n };\n\n logOut = () => {\n msalInstance.logout();\n this.setState({ isUserInfoVisible: false });\n };\n\n public initials = () => {\n const token = sessionStorage.getItem(this.msal) ? `Authorization:${sessionStorage.getItem(this.msal)}` : null;\n const user = jwt_decode(token);\n const a: any = user;\n return a.name\n ? a.name.split('')[0].concat(a.name.split('')[a.name.indexOf(' ').concat + 1])\n : '';\n };\n\n infoUser = () => {\n const token = sessionStorage.getItem(this.msal) ? `Authorization:${sessionStorage.getItem(this.msal)}` : null;\n const user = jwt_decode(token);\n const a: any = user;\n const language = this.props.language;\n return (\n <div className=\"userInfoDropdown\">\n <div className=\"userInfoDropdownName\">\n <label className=\"userInfoDropdownNameLabel\">{getLanguage(language).HEADER.INFOUSER.NAME}</label>\n <span className=\"userInfoDropdownNameValue\">{a.name}</span>\n </div>\n <div\n className=\"userInfoDropdownLogout\"\n title={getLanguage(language).HEADER.INFOUSER.LOGOUT}\n onClick={() => { this.logOut(); }}>\n <FiLogOut className=\"logoutIcon\" />\n <span className=\"logoutText\">{getLanguage(language).HEADER.INFOUSER.LOGOUT}</span>\n </div>\n </div>);\n };\n\n getUser = () => {\n const token = sessionStorage.getItem(this.msal) ? `Authorization:${sessionStorage.getItem(this.msal)}` : null;\n if (token) {\n const user = jwt_decode(token);\n const a: any = user;\n return (\n <div className=\"userProfileSpace\">\n <div className={(this.state.isUserInfoSelected ? 'nav-user active' : 'nav-user none')} onClick={() => { this.setState({ isUserInfoVisible: !this.state.isUserInfoVisible }); }}>\n <div className=\"nav-user-photo\" >\n <Persona\n size={PersonaSize.size40}\n primaryText={a.name}\n className=\"employeeName\"\n hidePersonaDetails\n />\n </div>\n <div className=\"user-menu-arrow\">\n <FiChevronDown className={`rotate ${this.state.isUserInfoVisible ? 'up' : ''}`} />\n </div>\n </div>\n {this.state.isUserInfoVisible && this.infoUser()}\n <div className=\"menuButtonContainer\">\n <button className={this.state.expanded ? 'menuButton expanded' : 'menuButton'} onClick={this.toggleExpanded}>\n <FiMenu className=\"menuButtonIcon\" />\n <FiX className=\"closeButtonIcon\" />\n </button>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"userProfileSpace noUser\">\n <div className=\"menuButtonContainer\">\n <button className={this.state.expanded ? 'menuButton expanded' : 'menuButton'} onClick={this.toggleExpanded}>\n <FiMenu className=\"menuButtonIcon\" />\n <FiX className=\"closeButtonIcon\" />\n </button>\n </div>\n </div>);\n }\n };\n\n onCancel = () => {\n this.setState({\n showSocial: false\n });\n };\n\n renderHeaderLanguageCombo = () => {\n return (\n <LanguageCombo\n languageSelected={this.props.language}\n changeLanguage={this.changeLanguage} />\n );\n }\n\n changeLanguage = (language: string) => {\n if (getLanguageLocalStorage() !== language) {\n saveLanguageLocalStorage(language);\n\n if (window.location.pathname.indexOf('/search/result') !== -1) {\n if (window.location.search === '?origin=home') {\n window.location.pathname = '/'.concat(getLanguageLocalStorage().concat(routeStrings.search));\n } else {\n window.location.pathname = '/'.concat(getLanguageLocalStorage().concat(routeStrings.advancedSearch));\n }\n } else if (window.location.pathname.indexOf('/login') !== -1) {\n window.location.pathname = '/'.concat(getLanguageLocalStorage().concat(routeStrings.search));\n } else {\n const pathName = window.location.pathname.split('/');\n pathName[1] = getLanguageLocalStorage()\n var newPathName = '';\n pathName.forEach(x => newPathName = newPathName.concat(x.concat(x ? '/' : '')))\n window.location.pathname = newPathName;\n }\n }\n }\n\n\n public render() {\n const language = this.props.language;\n const textButton = getLanguage(language).HEADER.SHARE.TOOLTIP.SHARE;\n const dirText = 'DIR3: EA0001321';\n\n const BuscarLink =\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.search)} className=\"navLink\" onClick={() => this.setState({})}>\n <FiSearch className=\"navLinkIcon\" /><span className=\"navLinkText\">{getLanguage(language).HEADER.SEARCH}</span>\n </NavLink>;\n const BusquedaAvanzadaLink =\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.advancedSearch)} className=\"navLink\" onClick={() => this.setState({})}>\n <FiVoicemail className=\"navLinkIcon busquedaAvanzadaIcon\" /><span className=\"navLinkText\">{getLanguage(language).HEADER.ADVANCED_SEARCH}</span>\n </NavLink>;\n const RecursosLink =\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.resources)} className=\"navLink\" onClick={() => this.setState({})}>\n <FiList className=\"navLinkIcon\" /><span className=\"navLinkText\">{getLanguage(language).HEADER.CLASSIFICATION}</span>\n </NavLink>;\n const ContactoLink =\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.contacto)} className=\"navLink\" onClick={() => this.setState({})}>\n <FaRegEnvelope className=\"navLinkIcon\" /><span className=\"navLinkText\">{getLanguage(language).HEADER.CONTACT}</span>\n </NavLink>;\n const AyudaLink =\n <a className=\"navLink\" rel=\"noopener noreferrer\" onClick={() => this.setState({})} href={process.env.REACT_APP_PDF + getLanguage(language).PDF_HELP} target=\"_blank\">\n <FiHelpCircle className=\"navLinkIcon\" /><span className=\"navLinkText\">{getLanguage(language).HEADER.HELP}</span>\n </a>;\n\n const HomeLinkLogo =\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.search)} className=\"headerLogoLink\">\n <div className=\"headerLogoContainer containsLogo\">\n <img className=\"APVlogoHeader\" src={logo} alt=\"\" />\n <img className=\"APVlogoHeader-small\" src={logoSmall} alt=\"\" />\n <p className=\"DIR\">{dirText}</p>\n </div>\n </NavLink>;\n const WebPuerto =\n <NavLink exact to={{}} className=\"navLink\">\n <button\n ref={menuButton => (this._menuButtonElement = menuButton)}\n title={textButton}\n onClick={() => { this.setState({ showSocial: !this.state.showSocial }); }}>\n <FiShare2 className=\"\" />\n </button>\n <div className=\"mediaSocial\">\n <SocialMediaButtons\n url={process.env.REACT_APP_URL_REDIRECT}\n text={getLanguage(language).HEADER.LINK}\n showPanel={this.state.showSocial}\n onCancel={() => this.onCancel()}\n target={this._menuButtonElement}\n closeButtonAriaLabel=\"Close\"\n hasCloseIcon={true}\n />\n </div>\n </NavLink>;\n\n return (\n <>\n <div className={this.state.expanded ? \"headerBar expanded\" : \"headerBar\"}>\n <div className=\"headerSpace headerLeftSpace containsLogoMobileMenu\">\n <div className=\"logoTittleContainer\">\n {HomeLinkLogo}\n <div className=\"headerPageTittle\">\n <label className=\"navLinkText tittlePort text\">{getLanguage(language).HEADER.TITLE}</label>\n <label className=\"navLinkText tittlePort text2\">{getLanguage(language).HEADER.ONLINE}</label>\n </div>\n </div>\n </div>\n <div className=\"banner\">\n <div className=\"bannerText\">\n <p>{getLanguage(language).HEADER.ASLAN}</p>\n <p>{getLanguage(language).HEADER.ASLAN_D}</p>\n </div>\n <div className=\"bannerLogo\">\n <img src={logoBanner}></img>\n </div>\n </div>\n {/* {this.renderHeaderLanguageCombo()} */}\n\n <div className={this.state.expanded ? \"mainMenu expandedMenu\" : \"mainMenu\"}>\n {this.renderHeaderLanguageCombo()}\n {BuscarLink}\n {BusquedaAvanzadaLink}\n {RecursosLink}\n {ContactoLink}\n {AyudaLink}\n {WebPuerto}\n </div>\n {this.getUser()}\n\n\n </div>\n <div className=\"bannerPhone\">\n <img src={logoBanner}></img>\n <p>{getLanguage(language).HEADER.ASLAN}</p>\n <p>{getLanguage(language).HEADER.ASLAN_D}</p>\n </div>\n </>\n );\n }\n}\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { Header } from './header';\n\nconst mapStateToProps = (state: StateReducer) => ({\n language: state.language,\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n \n});\n\nexport const HeaderContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(Header);\n\n","import React from 'react';\nimport { routeUrls } from '../../common/constants/routes';\nimport './../../styles/footer/footer.scss';\nimport Cookies from 'universal-cookie';\nimport { getLanguage } from '../../translations/language';\n\nexport interface FooterProps {\n language: string;\n}\nexport interface State {\n cookies: Cookies;\n rejectedCookie: boolean;\n}\n\nexport class Footer extends React.Component<FooterProps, State> {\n node: HTMLDivElement;\n\n constructor(props) {\n super(props);\n\n this.state = {\n cookies: new Cookies(),\n rejectedCookie: false\n //rejectedCookie: this.state.cookies.get('cookiePolicy') != undefined\n };\n\n this.setState({rejectedCookie: this.state.cookies.get('cookiePolicy') != undefined});\n\n }\n\n onRejectCookiePanel = () => {\n this.state.cookies.remove('cookiePolicy');\n this.setState({rejectedCookie: true});\n };\n\n componentWillMount() {\n\n }\n public render() {\n const language = this.props.language;\n const politicaLink =\n <a className=\"\" rel=\"noopener noreferrer\" onClick={() => this.setState({})} href={process.env.REACT_APP_PDF + getLanguage(language).PDF_PRIVACY} target=\"_blank\">\n <span>{getLanguage(language).FOOTER.POLICY}</span>\n </a>;\n const AvisoLink =\n <a className=\"\" rel=\"noopener noreferrer\" onClick={() => this.setState({})} href={process.env.REACT_APP_PDF + getLanguage(language).PDF_ADVERTISEMENT} target=\"_blank\" >\n <span> | {getLanguage(language).FOOTER.LEGAL}</span>\n </a>;\n const CookiesLink =\n <a className=\"\" rel=\"noopener noreferrer\" onClick={() => this.setState({})} href={process.env.REACT_APP_PDF + getLanguage(language).PDF_COOKIES} target=\"_blank\" >\n <span> | {getLanguage(language).FOOTER.COOKIES} </span>\n </a>;\n const RechazarCookiesLink =\n <a className=\"rejectCookies\" onClick={this.onRejectCookiePanel} target=\"_blank\" >\n <span> | {getLanguage(language).FOOTER.REFUSED_COOKIES} </span>\n </a>;\n return (\n\n <footer className=\"footer\">\n <div className=\"footerSection2\">\n <div className=\"container\">\n <div className=\"footerSection2Grid\">\n <div className=\"footerSection2Left\">\n <span className=\"footerText\">{getLanguage(language).FOOTER.RESERVED_RIGHTS}</span>\n </div>\n <div className=\"footerSection2Right\">\n <div className=\"footerMenu\">\n {politicaLink}\n {AvisoLink}\n {CookiesLink}\n </div>\n </div>\n </div>\n </div>\n </div>\n </footer>\n );\n }\n}\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { Footer } from './footer';\n\nconst mapStateToProps = (state: StateReducer) => ({\n language: state.language,\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n \n});\n\nexport const FooterContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(Footer);\n\n","import * as React from 'react';\nimport { DownloadListContainer } from './downloadList/downloadListContainer';\nimport Cookies from 'universal-cookie';\nimport { HeaderContainer } from './header/headerContainer';\nimport { FooterContainer } from './footer/footerContainer';\n\nexport interface LayoutProps {\n children?: React.ReactNode;\n}\nexport interface State {\n cookies: Cookies;\n}\nexport class Layout extends React.Component<LayoutProps, State> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n cookies: new Cookies()\n };\n }\n\n onAcceptCookiePanel = () => {\n this.state.cookies.set('cookiePolicy', 'accepted');\n };\n\n public render() {\n return (\n <div className=\"AppLayout\">\n <div className=\"pageContainer\">\n <div>\n <HeaderContainer />\n </div>\n <div className=\"mainContent\">\n {this.props.children}\n </div> \n <div>\n <FooterContainer />\n </div>\n <DownloadListContainer />\n </div>\n </div>);\n }\n}\n","import React from 'react';\nimport { Layout } from '../layout';\n\nexport function LayoutStyler(Comp: React.ComponentClass<any>): React.ComponentClass<any> {\n class Styler extends React.Component<any>{\n\n public render() {\n return (\n <Layout>\n <Comp {...this.props} />\n </Layout>\n );\n }\n }\n return Styler;\n}\n\nexport default LayoutStyler;\n","import { IDownloadDocument } from '../../model/downloadList';\nimport { actionsDefinition } from '../actionsDef';\n\nexport const addDownloadAction = (document: IDownloadDocument) => (dispatch: any) => {\n dispatch(addDownload(document));\n};\n\nconst addDownload = (payloadAdd: IDownloadDocument) => ({\n type: actionsDefinition.downloadList.ADD_ITEM,\n payload: payloadAdd\n});\n","export interface IDownloadDocument {\n name: string;\n id: string;\n originalId: string;\n type: string;\n pdfUri: string;\n}\n\nexport const createEmptyIDownloadDocument = (): IDownloadDocument => {\n return {\n name: '',\n id: '',\n originalId: '',\n type: '',\n pdfUri: ''\n };\n};\n\nexport const createIDownloadDocumentListMock = (): IDownloadDocument[] => {\n const mock: IDownloadDocument[] = [];\n for (let i = 0; i < 4; i++) {\n mock.push({\n id: `id-${i}`,\n name: `name-${i}`,\n originalId: `originalId-${i}`,\n type: 'type',\n pdfUri: 'pdfUri'\n });\n }\n return mock;\n};\n","import { DownloadDocumentStateTypes } from './DownloadDocumentStateType';\n\nexport interface SingleDocumentDownloadState {\n docId: string,\n downloadState: DownloadDocumentStateTypes\n}\n\nexport const createEmptySingleDocumentDownloadState = (): SingleDocumentDownloadState => {\n return {\n docId: '',\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n};\n","import { DownloadDocumentStateTypes } from './../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { SingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\n\nexport function getCurrentCaseFileFromStateList(id: string, caseFileList: SingleDocumentDownloadState[]): SingleDocumentDownloadState {\n return caseFileList.find(x => x.docId === id);\n}\n\nexport function getCurrentDocFromStateList(id: string, docList: SingleDocumentDownloadState[]): SingleDocumentDownloadState {\n return docList.find(x => x.docId === id);\n}\n\nexport function getFileDownloadStateClass(item: SingleDocumentDownloadState, isDoc: boolean): string {\n if (item) {\n switch (item.downloadState) {\n case DownloadDocumentStateTypes.NOTSTARTED:\n return 'notStarted';\n case DownloadDocumentStateTypes.ERROR:\n return 'downloadError';\n case DownloadDocumentStateTypes.INPROGRESS:\n return 'downloadInProgress';\n case DownloadDocumentStateTypes.COMPLETED:\n return 'downloadCompleted';\n default:\n return '';\n }\n } else {\n return '';\n }\n}\n","import React from 'react';\nimport imageNotAvailable from '../../../../src/styles/img/imageNotAvailable.svg';\n\ninterface IProps {\n imgSrc: string;\n className?: string;\n onClick?: () => void;\n}\n\nexport class ImageComponent extends React.Component<IProps>{\n\n render() {\n return (\n <img className={this.props.className} src={this.props.imgSrc} onError={this.onError} onClick={this.props.onClick} alt=\"\" />\n );\n }\n\n onError = (event: any) => {\n event.target.onerror = null;\n event.target.src = imageNotAvailable;\n event.target.style.background = '#FFFFFF';\n };\n}\n","import React from 'react';\nimport { NavLink } from 'react-router-dom';\nimport { routeStrings } from '../../constants/routes';\nimport logoCodigo from '../../../styles/img/APV-logo-codigo.png';\nimport logoSmall from '../../../styles/img/APV-logo-small.svg';\nimport { getLanguageLocalStorage } from '../../utils/languageHelper';\n\nexport class HeaderLogo extends React.Component {\n constructor(props) {\n super(props);\n }\n\n public render() {\n return (<div className=\"detailHeader headerBar\">\n <div className=\"detailHeader headerBar\">\n <div className=\"headerSpace headerLeftSpace\">\n <div className=\"logoTittleContainer\">\n <NavLink to={'/' + getLanguageLocalStorage().concat(routeStrings.search)} className=\"headerLogoLink\">\n <div className=\"headerLogoContainer containsLogo\">\n <img className=\"APVlogoHeader\" src={logoCodigo} alt=\"\" />\n <img className=\"APVlogoHeader-small\" src={logoSmall} alt=\"\" />\n </div>\n </NavLink>\n <div className=\"headerPageTittle\">\n <label className=\"navLinkText tittlePort text\">Autoridad Portuaria de València</label>\n <label className=\"navLinkText tittlePort text2\">Archivo on-line</label>\n </div>\n </div>\n </div>\n </div>\n </div>);\n }\n}\n","import React from 'react';\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport './../../styles/detailDoc/detailDoc.scss';\nimport { DetailSearchResult } from '../../model/search';\nimport { FiDownloadCloud, FiShare2 } from 'react-icons/fi';\nimport { RouteComponentProps, NavLink } from 'react-router-dom';\nimport moment from 'moment';\nimport { SocialMediaButtons } from '../../common/components/socialMedia/socialMediaButtons';\nimport { DonwloadConfirmationPanel } from '../../common/components/downloadConfirmationPanel/downloadConfirmationPanel';\nimport stroke from '../../styles/img/stroke.svg';\nimport { SingleDocumentDownloadState, createEmptySingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport { getCurrentDocFromStateList, getFileDownloadStateClass } from '../../common/utils/caseFileAndDocDownloadStateUtils';\nimport { ImageComponent } from '../../common/components/ImageComponent/ImageComponent';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\nimport { HeaderLogo } from '../../common/components/headerLogo/headerLogo';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\n\nexport interface IDetailDocProps extends RouteComponentProps {\n detail: DetailSearchResult;\n isDataLoaded: boolean;\n downloadDocStateList: SingleDocumentDownloadState[];\n idDoc?: string;\n\n getDetail: (id: string) => void;\n downloadDoc: (docRequest: DownloadDocRequest) => void;\n addToDocDownloadStateList: (docId: string) => void;\n clearDocDownloadStateList: (docId: string) => void;\n language: string;\n}\n\nexport interface IDetailDocState {\n currentDocState: SingleDocumentDownloadState;\n showDownloadPanel: boolean;\n showSocial: boolean;\n}\n\nexport class DetailDocComponent extends React.Component<IDetailDocProps, IDetailDocState> {\n private _menuButtonElement: HTMLElement;\n constructor(props: any) {\n super(props);\n this.state = {\n showDownloadPanel: false,\n showSocial: false,\n currentDocState: createEmptySingleDocumentDownloadState(),\n };\n }\n\n componentDidMount() {\n let detail;\n if (this.props.idDoc) {\n detail = this.props.idDoc;\n } else {\n detail = this.props.match.params['id'];\n }\n this.props.getDetail(detail);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.detail !== prevProps.detail) {\n let currentDoc = getCurrentDocFromStateList(this.props.detail.id, this.props.downloadDocStateList);\n if (!currentDoc) {\n currentDoc = createEmptySingleDocumentDownloadState();\n this.props.addToDocDownloadStateList(this.props.detail.id);\n }\n this.setState({\n currentDocState: currentDoc,\n });\n }\n if (this.props.downloadDocStateList !== prevProps.downloadDocStateList) {\n const currentDoc = getCurrentDocFromStateList(this.props.detail.id, this.props.downloadDocStateList);\n if (currentDoc) {\n this.setState({\n currentDocState: currentDoc\n }, () => {\n if (this.state.currentDocState.downloadState === DownloadDocumentStateTypes.COMPLETED) {\n this.props.clearDocDownloadStateList(this.props.detail.id);\n }\n });\n } else {\n this.props.addToDocDownloadStateList(this.props.detail.id);\n }\n }\n }\n\n downloadDocument = () => {\n this.setState({\n showDownloadPanel: true\n });\n };\n\n thumbnail = () => {\n const image = this.props.detail.public ? this.props.detail.thumbnailUri : 'notFound.png';\n return (<>\n <div className=\"detailDocumentGridImagePaperClip\">\n <img className=\"stroke\" src={stroke} alt=\"\"></img>\n </div>\n <div className=\"cajaImageContainer \" >\n <ImageComponent imgSrc={image} />\n </div>\n </>);\n };\n\n dateTitle = () => {\n const language = this.props.language;\n if (this.props.detail.initDate || this.props.detail.endDate) {\n return (<div className=\"metaDataContainerBlock metaDataContainerDescription boxDate\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DATE}</h3>\n </div>);\n } else { return (null); }\n };\n\n typeTitle = () => {\n const language = this.props.language;\n if (this.props.detail.tipoDocumentalENI || this.props.detail.apvDocType || this.props.detail.apvDocSubType) {\n return (<h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.TYPE}</h3>);\n } else { return (null); }\n };\n\n initialDate = () => {\n const language = this.props.language;\n if (this.props.detail.initDate) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.INITIAL_DATE}\n <div className=\"metaDataContainerElement element\">\n {moment(this.props.detail.initDate).utc().format('DD/MM/YYYY')}\n </div>\n </div>\n );\n } else { return (null); }\n };\n\n dueDate = () => {\n const language = this.props.language;\n if (this.props.detail.endDate) {\n return (\n <div className=\"cajaTipo \">{getLanguage(language).DETAIL_DOC.DATE_END}\n <div className=\"metaDataContainerElement element\">\n {moment(this.props.detail.endDate).utc().format('DD/MM/YYYY')}\n </div>\n </div>);\n } else { return (null); }\n };\n\n signatura = () => {\n const language = this.props.language;\n if (this.props.detail.signature) {\n const signatureText = getLanguage(language).DETAIL_DOC.SIGNATURE_TOPOGRAPHIC;\n return (\n <div className=\"cajaTipo\">\n <div className=\"signaturaCaja\">\n <div className=\"signatura\">{getLanguage(language).DETAIL_DOC.SIGNATURE}</div>\n <div className=\"signatureText\">{signatureText}</div>\n </div>\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detail.signature}</div>\n </div>\n );\n } else { return (null); }\n };\n\n description = () => {\n const language = this.props.language;\n let description = null;\n if (this.props.detail.description && this.props.detail.description.trim()) {\n description = (\n <>\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DESCRIPTION}</h3>\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detail.description}</div>\n </>\n );\n }\n if (description) { \n return description;\n } else {\n return (\n <>\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DESCRIPTION}</h3>\n <div className=\"metaDataContainerElement element noContent textWhite\"> {getLanguage(language).DETAIL_DOC.NO_DESCRIPTION}</div>\n </>\n );\n }\n };\n\n subType = () => {\n const language = this.props.language;\n if (this.props.detail.apvDocSubType) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.SUBTYPE_DOC_APV}\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detail.apvDocSubType}</div>\n </div>);\n } else { return (null); }\n };\n\n notes = () => {\n const language = this.props.language;\n if (this.props.detail.notes && this.props.detail.notes.filter(x => x.trim()).length > 0) {\n return (<>\n <div className=\"metaDataContainerElement element textWhite\">\n {this.props.detail.notes.map(note => {\n return (\n <>\n {note}\n <br/>\n </>\n )\n })}\n </div>\n </>);\n } else {\n return (<div className=\"metaDataContainerElement element noContent\">{getLanguage(language).DETAIL_DOC.DOC_VOID}</div>);\n }\n };\n\n header = () => {\n if (this.props.idDoc) {\n return null;\n } else {\n return (<HeaderLogo />);\n }\n };\n\n downLoadButton = () => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.DOWNLOAD;\n if (this.props.idDoc || !this.props.detail.public) {\n return null;\n } else {\n return (\n <button\n title= {textButton}\n className=\"btnActions downloadButton\"\n onClick={() => this.downloadDocument()}>\n <FiDownloadCloud />\n </button >);\n }\n };\n\n public privateDoc = () => {\n const language = this.props.language;\n if (!this.props.detail.public) {\n return (\n <>\n <div className=\"noPublicDetail\">{getLanguage(language).DETAIL_DOC.NO_PUBLIC}</div>\n </>\n );\n } else {\n return (null);\n }\n };\n\n typeAPV = () => {\n const language = this.props.language;\n if (this.props.detail.apvDocType) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.TYPE_DOC_APV}\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detail.apvDocType}</div>\n </div>\n );\n } else {\n return null;\n }\n };\n\n idDocument = () => {\n if (this.props.detail.originalId) {\n return (<>\n <div className=\"metaDataContainerElement element titleMovile\">\n {this.props.detail.originalId}\n </div>\n </>);\n } else {\n return null;\n }\n };\n\n typeENI = () => {\n const language = this.props.language;\n if (this.props.detail.tipoDocumentalENI) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.TYPE_DOC_ENI}\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detail.tipoDocumentalENI}</div>\n </div>\n );\n } else {\n return null;\n }\n };\n \n concatCitaText = (name: string): string => {\n const language = this.props.language;\n const citaText = getLanguage(language).DETAIL_DOC.DOC_QUOTE_TEXT;\n let concatedName = ''\n if(name.endsWith('.')){\n concatedName = name.concat(citaText);\n }else{\n concatedName = name.concat('.').concat(citaText);\n }\n return concatedName;\n }\n\n public render() {\n const language = this.props.language;\n const textButton = getLanguage(language).HEADER.SHARE.TOOLTIP.SHARE;\n if (this.props.isDataLoaded) {\n const downloadStateClass: string = getFileDownloadStateClass(this.state.currentDocState, true);\n const citaText = getLanguage(language).DETAIL_DOC.DOC_QUOTE_TEXT;\n return (\n <div className={`mainContainer detailDocContainer ${downloadStateClass}`}>\n {this.header()}\n <div className=\"container\">\n <div className=\"documentContainer\">\n <div className=\"documentSheet\">\n <div className=\"documentTitle\">\n <h1>{this.props.detail.name}</h1>\n </div>\n <div className=\"detailDocumentGrid\" dir=\"ltr\">\n <div className=\"detailDocumentGridImage\">\n {this.thumbnail()}\n </div>\n <div className=\"detailDocumentGridInfo\">\n <div className=\"ButtonContainerShared\">\n {this.downLoadButton()}\n <button\n ref={menuButton => (this._menuButtonElement = menuButton)}\n title={textButton}\n className=\"btnActions shareButton\"\n onClick={() => { this.setState({ showSocial: !this.state.showSocial }); }}>\n <FiShare2 />\n </button>\n {this.privateDoc()}\n </div>\n <div className=\"metaDataContainer\">\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DOC_TITLE}</h3>\n <div className=\"metaDataContainerElement\">\n {this.idDocument()}\n </div>\n </div>\n {this.dateTitle()}\n <div>\n {this.initialDate()}\n {this.dueDate()}\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n {this.typeTitle()}\n <div className=\"metaDataContainerElement\">\n {this.typeAPV()}\n {this.typeENI()}\n {this.subType()}\n </div>\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n {this.description()}\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DOC_NOTES}</h3>\n {this.notes()}\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DOC_REFERENCES}</h3>\n <div className=\"metaDataContainerElement\">\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.DOC_QUOTE}\n <div className=\"metaDataContainerElement element\">{this.concatCitaText(this.props.detail.name)}</div>\n {this.signatura()}\n </div>\n </div>\n </div>\n <DonwloadConfirmationPanel\n showPanel={this.state.showDownloadPanel}\n onAccept={() => this.onAcceptDownload()}\n onCancel={() => this.onCancelDownload()}\n />\n <div className=\"mediaSocial\">{this.share()}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n return (<></>);\n }\n }\n\n share = () => {\n const baseUrl = `${process.env.REACT_APP_URL_REDIRECT}`;\n return (\n <SocialMediaButtons\n url={`${baseUrl}/${getLanguageLocalStorage()}/detalle/${this.props.detail.id}`}\n text={`${this.props.detail.name}`}\n showPanel={this.state.showSocial}\n onCancel={() => this.onCancel()}\n target={this._menuButtonElement}\n closeButtonAriaLabel=\"Close\"\n hasCloseIcon={true}\n />\n );\n };\n\n onCancel = () => {\n this.setState({\n showSocial: false\n });\n };\n\n onAcceptDownload = () => {\n const request: DownloadDocRequest = {\n originalId: this.props.detail.originalId,\n docUri: this.props.detail.pdfUri\n };\n this.props.downloadDoc(request);\n this.hidePanel();\n };\n\n onCancelDownload = () => {\n this.hidePanel();\n };\n\n hidePanel = () => {\n this.setState({\n showDownloadPanel: false\n });\n };\n}\n\n","import { actionsDefinition } from '../actionsDef';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { SingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { ToastrType } from '../../common/Alerts/ToastrType';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport const downloadDocumentAction = (docRequest: DownloadDocRequest) => (dispatch: any) => {\n const inProgressDoc: SingleDocumentDownloadState = {\n docId: docRequest.docUri,\n downloadState: DownloadDocumentStateTypes.INPROGRESS\n };\n\n dispatch(downloadDocumentDispatch(inProgressDoc));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOC_IN_PROGRESS), ToastrType.Info);\n\n searchMsalApi.PostDocumentDownload([docRequest]).then((result) => {\n if (result) {\n const completedDoc: SingleDocumentDownloadState = {\n docId: docRequest.docUri,\n downloadState: DownloadDocumentStateTypes.COMPLETED\n };\n dispatch(downloadDocumentDispatch(completedDoc));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOCS_SUCESSFULLY), ToastrType.Success);\n } else {\n const errorDoc: SingleDocumentDownloadState = {\n docId: docRequest.docUri,\n downloadState: DownloadDocumentStateTypes.ERROR\n };\n dispatch(downloadDocumentDispatch(errorDoc));\n Alerts.show((getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOC_FAILED), ToastrType.Info);\n }\n });\n};\n\nconst downloadDocumentDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleDocument.DOWNLOAD_ONE,\n payload: payloadDoc,\n meta: {\n httpEnd: true\n }\n});\n\nexport const addDocumentToStateListAction = (docIdParam: string) => (dispatch: any) => {\n const newDoc: SingleDocumentDownloadState = {\n docId: docIdParam,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n dispatch(addDocumentToStateListDispatch(newDoc));\n};\n\nconst addDocumentToStateListDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleDocument.ADD_DOC,\n payload: payloadDoc\n});\n\nexport const clearDocumentStateFromListAction = (docIdParam: string) => (dispatch: any) => {\n const clearDoc: SingleDocumentDownloadState = {\n docId: docIdParam,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n dispatch(clearDocumentStateFromListDispatch(clearDoc));\n};\n\nconst clearDocumentStateFromListDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleDocument.CLEAR_SINGLE_STATE,\n payload: payloadDoc\n});\n\nexport const clearAllDocumentStateListAction = () => (dispatch: any) => {\n dispatch(clearAllDocumentStateListDispatch());\n};\n\nconst clearAllDocumentStateListDispatch = () => ({\n type: actionsDefinition.downloadSingleDocument.CLEAR_STATE\n});\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { DetailDocComponent } from './detailDoc';\nimport { getDetailAction } from '../../actions/detailDoc/getDetailAction';\nimport { downloadDocumentAction, addDocumentToStateListAction, clearDocumentStateFromListAction } from '../../actions/downloadDocument/downloadSingleDocument';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\n\n\ninterface CustomProps {\n idDoc?: string;\n}\n\nconst mapStateToProps = (state: StateReducer, customProps: CustomProps) => ({\n detail: state.detail.detailSearchResult,\n isDataLoaded: state.detail.isDataLoaded,\n downloadDocStateList: state.singleDocumentDownloadStateList,\n idDoc: customProps.idDoc,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getDetail: (id: string) => dispatch(getDetailAction(id)),\n downloadDoc: (docRequest: DownloadDocRequest) => dispatch(downloadDocumentAction(docRequest)),\n addToDocDownloadStateList: (docId: string) => dispatch(addDocumentToStateListAction(docId)),\n clearDocDownloadStateList: (docId: string) => dispatch(clearDocumentStateFromListAction(docId)),\n});\n\nexport const DetailDocContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(DetailDocComponent);\n","import { actionsDefinition } from '../actionsDef';\nimport { DetailSearchResult } from '../../model/search';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\nexport const getDetailAction = (id: string) => (dispatch: any) => {\n searchMsalApi.GetDetailAsync(id).then((result) => {\n dispatch(loadDetailCompleted(result));\n });\n\n const loadDetailCompleted = (result: DetailSearchResult) => ({\n type: actionsDefinition.detailDoc.LOAD_DETAIL,\n payload: result,\n meta: {\n httpEnd: true\n }\n });\n};\n","import React from 'react';\nimport { Modal } from 'office-ui-fabric-react/lib/Modal';\nimport { DetailDocContainer } from '../detailDoc/detailDocContainer';\nimport { FiX } from 'react-icons/fi';\nimport { TiArrowBackOutline } from 'react-icons/ti';\nimport './../../styles/detailDoc/detailDocModal.scss';\n\ninterface IProps {\n showModal: boolean;\n onCancel: () => void;\n idDoc: string;\n arrivedFromFileModal?: boolean;\n showFileModal?: () => void;\n hideFileModal?: () => void;\n}\n\nexport class DetailDocModal extends React.Component<IProps>{\n\n renderCloseModalButton = () => {\n if (this.props.arrivedFromFileModal) {\n return (\n <div className=\"buttonContainer\"><TiArrowBackOutline className=\"button back\" onClick={this.props.onCancel} /></div>\n );\n } else {\n return (\n <div className=\"buttonContainer\"><FiX className=\"button close\" onClick={this.props.onCancel} /></div>\n );\n }\n };\n\n render() {\n return (\n <Modal\n titleAriaId={''}\n isOpen={this.props.showModal}\n onDismiss={this.props.onCancel}\n className=\"detailDocModal detail\"\n >\n <div >\n {this.renderCloseModalButton()}\n <DetailDocContainer\n idDoc={this.props.idDoc}\n />\n </div>\n </Modal>\n );\n }\n\n onCancel = () => {\n this.props.onCancel();\n };\n}\n","import * as React from 'react';\nimport { DetailSearchResult } from '../../model/search';\nimport '../../styles/mainSearch/mainSearch.scss';\nimport { FiDownloadCloud, FiShare2, FiPlusCircle, FiMinusCircle } from 'react-icons/fi';\nimport { IDownloadDocument, createEmptyIDownloadDocument } from '../../model/downloadList';\nimport { DonwloadConfirmationPanel } from '../../common/components/downloadConfirmationPanel/downloadConfirmationPanel';\nimport { SocialMediaButtons } from '../../common/components/socialMedia/socialMediaButtons';\nimport { SingleDocumentDownloadState, createEmptySingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { getCurrentDocFromStateList, getFileDownloadStateClass } from '../../common/utils/caseFileAndDocDownloadStateUtils';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\nimport moment from 'moment';\nimport { DetailDocModal } from '../detailDoc/detailDocModal';\nimport imageNotAvailable from '../../styles/img/imageNotAvailable.svg';\nimport imageNotAvailableEn from '../../styles/img/imageNotAvailableEn.svg';\nimport imageNotAvailableVa from '../../styles/img/imageNotAvailableVa.svg';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport interface ISearchItemProps {\n downloadDocStateList: SingleDocumentDownloadState[];\n documentList: IDownloadDocument[];\n search: DetailSearchResult;\n showImage: boolean;\n isPublic: boolean;\n canAddToList: boolean;\n hideDownloadButton?: boolean;\n arrivedFromFileModal?: boolean;\n showFileModal?: () => void;\n hideFileModal?: () => void;\n language: string;\n\n addToList: (doc: IDownloadDocument) => void;\n removeFromList: (doc: IDownloadDocument) => void;\n downloadDoc: (docRequest: DownloadDocRequest) => void;\n addToDocDownloadStateList: (docId: string) => void;\n clearDocDownloadStateList: (docId: string) => void;\n}\n\nexport interface ISearchItemState {\n currentDocState: SingleDocumentDownloadState;\n isDocInList: boolean;\n showViewObservations: boolean;\n showDownloadPanel: boolean;\n showSocial: boolean;\n showModal: boolean;\n thumbnailUrl: string;\n}\n\nexport class SearchItemComponent extends React.Component<ISearchItemProps, ISearchItemState> {\n private _menuButtonElement: HTMLElement;\n constructor(props: any) {\n super(props);\n this.state = {\n isDocInList: false,\n showViewObservations: false,\n showDownloadPanel: false,\n showSocial: false,\n showModal: false,\n currentDocState: createEmptySingleDocumentDownloadState(),\n thumbnailUrl: this.props.search.thumbnailUri,\n };\n }\n\n componentDidMount() {\n const language = this.props.language;\n let currentDoc = getCurrentDocFromStateList(this.props.search.id, this.props.downloadDocStateList);\n if (!currentDoc) {\n currentDoc = createEmptySingleDocumentDownloadState();\n this.props.addToDocDownloadStateList(this.props.search.id);\n }\n this.setState({\n isDocInList: this.checkDocumentInDownloadList(),\n currentDocState: currentDoc,\n thumbnailUrl: this.props.search.thumbnailUri\n });\n if (!this.props.search.public) {\n if (language === 'es') {\n this.setState({\n thumbnailUrl: imageNotAvailable\n });\n }\n if (language === 'en') {\n this.setState({\n thumbnailUrl: imageNotAvailableEn\n });\n }\n if (language === 'va') {\n this.setState({\n thumbnailUrl: imageNotAvailableVa\n });\n }\n }\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.documentList !== prevProps.documentList) {\n this.setState({\n isDocInList: this.checkDocumentInDownloadList()\n });\n }\n if (this.props.downloadDocStateList !== prevProps.downloadDocStateList) {\n const currentDoc = getCurrentDocFromStateList(this.props.search.id, this.props.downloadDocStateList);\n if (currentDoc) {\n this.setState({\n currentDocState: currentDoc\n }, () => {\n if (this.state.currentDocState.downloadState === DownloadDocumentStateTypes.COMPLETED) {\n this.props.clearDocDownloadStateList(this.props.search.id);\n }\n });\n } else {\n this.props.addToDocDownloadStateList(this.props.search.id);\n }\n }\n }\n\n public ellipsizeTextBox = (id) => {\n const el = document.getElementById(id);\n const wordArray = el.innerHTML.split(' ');\n while (el.scrollHeight > el.offsetHeight) {\n wordArray.pop();\n el.innerHTML = wordArray.join(' ').concat('...');\n }\n };\n\n public description = () => {\n let description = null;\n if (this.props.search.description) {\n const descriptionText = this.props.search.description.split(' ');\n let initDescriptionText = 0;\n let endDescriptionText = '';\n let maxLenghtReached = false;\n for (const word of descriptionText) {\n const currentWord = word;\n initDescriptionText += currentWord.length;\n if (initDescriptionText <= 120) {\n endDescriptionText = endDescriptionText.concat(currentWord).concat(' ');\n } else {\n if (!maxLenghtReached) {\n endDescriptionText = endDescriptionText.concat('...');\n maxLenghtReached = true;\n }\n }\n }\n description = (\n <div className=\"textDescription\">\n {endDescriptionText}\n </div>\n );\n }\n return description;\n };\n\n public name = () => {\n let name = null;\n if (this.props.search.name) {\n const nameText = this.props.search.name.split(' ');\n let initNameText = 0;\n let endNameText = '';\n let maxLenghtReached = false;\n for (const word of nameText) {\n const currentWord = word;\n initNameText += currentWord.length;\n if (initNameText <= 50) {\n endNameText = endNameText.concat(currentWord).concat(' ');\n } else {\n if (!maxLenghtReached) {\n endNameText = endNameText.concat('...');\n maxLenghtReached = true;\n }\n }\n }\n name = (\n <div className=\"cajaTitle title\">\n <div onClick={() => this.openDetailModal()} className=\"cursor title\">\n {endNameText}\n </div>\n </div>\n );\n }\n return name;\n };\n\n public subType = () => {\n let subType = null;\n if (this.props.search.apvDocSubType) {\n const subTypeText = this.props.search.apvDocSubType.split(' ');\n let initsubTypeTextText = 0;\n let endsubTypeTextText = '';\n let maxLenghtReached = false;\n for (const word of subTypeText) {\n const currentWord = word;\n initsubTypeTextText += currentWord.length;\n if (initsubTypeTextText <= 90) {\n endsubTypeTextText = endsubTypeTextText.concat(currentWord).concat(' ');\n } else {\n if (!maxLenghtReached) {\n endsubTypeTextText = endsubTypeTextText.concat('...');\n maxLenghtReached = true;\n }\n }\n }\n subType = (\n <div className=\"\">\n {endsubTypeTextText}\n </div>\n );\n }\n return subType;\n };\n\n public privateDoc = () => {\n const language = this.props.language;\n if (!this.props.search.public) {\n return (\n <>\n <div className=\"noPublic\">{getLanguage(language).DETAIL_DOC.NO_PUBLIC}</div>\n </>\n );\n } else {\n return (null);\n }\n };\n\n downloadButton = () => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.DOWNLOAD;\n if (this.props.hideDownloadButton) {\n return null;\n } else {\n return (\n <button\n title={textButton}\n className=\"btnActions downloadButton\"\n onClick={() => this.downloadDocument()}>\n <FiDownloadCloud />\n </button>\n );\n }\n };\n\n handleImgError = (e) => {\n e.onerror = '';\n e.target.src = imageNotAvailable;\n e.target.style.background = '#FFFFFF';\n this.setState({\n thumbnailUrl: imageNotAvailable\n });\n };\n\n renderButtonsNoPublic = () => {\n const addToList: any = (!this.props.canAddToList) ?\n <>\n {this.renderDownloadListButton()}\n </> : null;\n if (this.props.search.public) {\n return (\n <div className=\"cajaButtons left\">\n {this.downloadButton()}\n {addToList}\n </div>\n );\n } else { return null; }\n };\n\n public render() {\n const language = this.props.language;\n const thumbnail: any = (this.props.showImage) ?\n <div className=\"cajaImageContainer\" >\n <div className=\"cajaImageLink cursor\" style={{ backgroundImage: `url(${this.state.thumbnailUrl})` }} onClick={() => this.openDetailModal()}>\n <img className=\"cajaImage\" src={this.state.thumbnailUrl} onError={this.handleImgError} alt=\"\" />\n </div>\n </div> : null;\n const docInListClass: string = this.state.isDocInList ? 'added' : '';\n const downloadStateClass: string = getFileDownloadStateClass(this.state.currentDocState, true);\n const tipoAPV = this.props.search.apvDocType && this.props.search.apvDocSubType != ' ' ? (\n <div className=\"\">{this.props.search.apvDocType}</div>\n ) : <div className=\"textSubtype\"> {getLanguage(language).DETAIL_DOC.NO_TYPE_DOC_APV} </div>;\n const subtipoAPV = this.props.search.apvDocSubType ? (\n <div className=\"\">{this.props.search.apvDocSubType}</div>\n ) : null;\n const initDate = this.props.search.initDate ? (\n <div className=\"date\">\n {moment(this.props.search.initDate).utc().format('DD/MM/YYYY')}</div>\n ) : null;\n const idOriginal = this.props.search.originalId ? (\n <div className=\"sizeIdOriginal titleMovile\">\n {this.props.search.originalId}</div>\n ) : null;\n const endDate = this.props.search.endDate ? (\n <>\n <div className=\"cajaTaxo padding\">-</div>\n <div className=\"date\">\n {moment(this.props.search.endDate).utc().format('DD/MM/YYYY')}\n </div>\n </>\n ) : null;\n const noDate = !this.props.search.endDate && !this.props.search.initDate ? (\n <>\n <div className=\"date\">\n {getLanguage(language).DETAIL_DOC.DOC_NO_DATE}\n </div>\n </>\n ) : null;\n const noDescription = !this.props.search.description || !this.props.search.description.trim() ? (\n <>\n <div className=\"textDescription\">\n {getLanguage(language).DETAIL_DOC.NO_DESCRIPTION}\n </div>\n </>\n ) : null;\n const noSubtypeAPV = !this.props.search.apvDocSubType && this.props.search.apvDocSubType != ' ' ? (\n <>\n <div className=\"textSubtype\">\n {getLanguage(language).DETAIL_DOC.NO_SUBTYPE_DOC_APV}\n </div>\n </>\n ) : null;\n const textButton = getLanguage(language).HEADER.SHARE.TOOLTIP.SHARE;\n\n return (\n <>\n <div className={`caja ${docInListClass} ${downloadStateClass}`}>\n {this.privateDoc()}\n {thumbnail}\n <div className=\"cajaContent\">\n {this.name()}\n {this.description()}\n {noDescription}\n <div className=\"cajaTitle titleType\">\n {tipoAPV}\n {subtipoAPV}\n {noSubtypeAPV}\n </div>\n <div className=\"cajaTaxo\">\n {initDate}\n {endDate}\n {noDate}\n </div>\n <div className=\"cajaTitle\">\n {idOriginal}\n </div>\n </div>\n <div className=\"cajaButtonContainer border\" >\n {this.renderButtonsNoPublic()}\n <div className=\"cajaButtons right\">\n <button\n ref={menuButton => (this._menuButtonElement = menuButton)}\n title={textButton}\n className=\"btnActions shareButton\"\n onClick={() => { this.setState({ showSocial: !this.state.showSocial }); }}>\n <FiShare2 />\n </button>\n </div>\n </div>\n </div >\n <DonwloadConfirmationPanel\n showPanel={this.state.showDownloadPanel}\n onAccept={() => this.onAcceptDownload()}\n onCancel={() => this.onCancelDownload()}\n />\n <DetailDocModal\n showModal={this.state.showModal}\n onCancel={() => this.onCloseModal()}\n idDoc={this.props.search.id}\n arrivedFromFileModal={this.props.arrivedFromFileModal}\n showFileModal={this.props.showFileModal}\n hideFileModal={this.props.hideFileModal}\n />\n <div className=\"mediaSocial\">{this.share()}</div>\n </>\n );\n }\n\n renderDownloadListButton = (): JSX.Element => {\n if (this.state.isDocInList) {\n return this.renderRemoveFromListButton();\n } else {\n return this.renderAddToListButton();\n }\n };\n\n renderRemoveFromListButton = (): JSX.Element => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.REMOVE;\n return (\n <button\n title={textButton}\n className=\"btnActions addButton\"\n onClick={() => this.removeDocFromList()}>\n <FiMinusCircle />\n </button>\n );\n };\n\n share = () => {\n const baseUrl = `${process.env.REACT_APP_URL_REDIRECT}`;\n return (\n <SocialMediaButtons\n url={`${baseUrl}/${getLanguageLocalStorage()}/detalle/${this.props.search.id}`}\n text={`${this.props.search.name}`}\n showPanel={this.state.showSocial}\n onCancel={() => this.onCancel()}\n target={this._menuButtonElement}\n closeButtonAriaLabel=\"Close\"\n hasCloseIcon={true}\n />\n );\n };\n\n renderAddToListButton = (): JSX.Element => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.ADD;\n\n return (\n <button\n title={textButton}\n className=\"btnActions addButton\"\n onClick={() => this.addDocToList()}>\n <FiPlusCircle />\n </button>\n );\n };\n\n removeDocFromList = () => {\n const docToRemove: IDownloadDocument = createEmptyIDownloadDocument();\n docToRemove.id = this.props.search.id;\n this.props.removeFromList(docToRemove);\n };\n\n addDocToList = () => {\n const docToAdd: IDownloadDocument = {\n id: this.props.search.id,\n originalId: this.props.search.originalId,\n type: this.props.search.apvDocType,\n name: this.props.search.name,\n pdfUri: this.props.search.pdfUri\n };\n this.props.addToList(docToAdd);\n };\n\n checkDocumentInDownloadList = (): boolean => {\n const docFound = this.props.documentList.find(x => x.id === this.props.search.id);\n if (docFound) {\n return true;\n } else {\n return false;\n }\n };\n\n openDetailModal = () => {\n this.setState({\n showModal: true\n });\n if (this.props.arrivedFromFileModal && this.props.hideFileModal) {\n this.props.hideFileModal();\n }\n };\n\n onCloseModal = () => {\n this.setState({\n showModal: false\n });\n if (this.props.arrivedFromFileModal && this.props.showFileModal) {\n this.props.showFileModal();\n }\n };\n\n downloadDocument = () => {\n this.setState({\n showDownloadPanel: true\n });\n };\n\n onAcceptDownload = () => {\n const request: DownloadDocRequest = {\n originalId: this.props.search.originalId,\n docUri: this.props.search.pdfUri\n };\n this.props.downloadDoc(request);\n this.hidePanel();\n };\n\n onCancelDownload = () => {\n this.hidePanel();\n };\n\n onCancel = () => {\n this.setState({\n showSocial: false\n });\n };\n\n hidePanel = () => {\n this.setState({\n showDownloadPanel: false\n });\n };\n}\n","import { connect } from 'react-redux';\nimport { StateReducer } from '../../reducers';\nimport { IDownloadDocument } from '../../model/downloadList';\nimport { removeDownloadAction } from '../../actions/downloadList/removeDownloadAction';\nimport { addDownloadAction } from '../../actions/downloadList/addDownloadAction';\nimport { DetailSearchResult } from '../../model/search';\nimport { SearchItemComponent } from './searchItem';\nimport { downloadDocumentAction, addDocumentToStateListAction, clearDocumentStateFromListAction } from '../../actions/downloadDocument/downloadSingleDocument';\nimport { DownloadDocRequest } from '../../model/downloadRequest/downloadDocRequest';\n\ninterface CustomProps {\n search: DetailSearchResult;\n showImage: boolean;\n isPublic: boolean;\n canAddToList: boolean;\n hideDownloadButton?: boolean;\n arrivedFromFileModal?: boolean;\n showFileModal?: () => void;\n hideFileModal?: () => void;\n}\n\nconst mapStateToProps = (state: StateReducer, customProps: CustomProps) => ({\n downloadDocStateList: state.singleDocumentDownloadStateList,\n documentList: state.downloadList,\n search: customProps.search,\n showImage: customProps.showImage,\n isPublic: customProps.isPublic,\n canAddToList: customProps.canAddToList,\n hideDownloadButton: customProps.hideDownloadButton,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n addToList: (doc: IDownloadDocument) => dispatch(addDownloadAction(doc)),\n removeFromList: (doc: IDownloadDocument) => dispatch(removeDownloadAction(doc)),\n downloadDoc: (docRequest: DownloadDocRequest) => dispatch(downloadDocumentAction(docRequest)),\n addToDocDownloadStateList: (docId: string) => dispatch(addDocumentToStateListAction(docId)),\n clearDocDownloadStateList: (docId: string) => dispatch(clearDocumentStateFromListAction(docId)),\n});\n\nexport const SearchItemContainer = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(SearchItemComponent);\n","import * as React from 'react';\nimport { DetailSearchResult } from '../../../model/search';\nimport './../../../styles/mainSearch/mainSearch.scss';\nimport { SearchItemContainer } from '../../../components/searchItem/searchItemContainer';\n\nexport interface IDocumentResultListProps {\n showImage: boolean;\n documentsResults: DetailSearchResult[];\n addToList?: boolean;\n showList?: boolean;\n hideDownloadButton?: boolean;\n arrivedFromFileModal?: boolean;\n showFileModal?: () => void;\n hideFileModal?: () => void;\n}\n\nexport class DocumentResultListComponent extends React.Component<IDocumentResultListProps, any> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n };\n }\n\n public changeIcon = () => {\n if (this.state.showViewObservations) {\n this.setState({\n showViewObservations: false\n });\n }\n };\n\n public render() {\n const showListClass = this.props.showList ? 'showList' : 'lastDocumentsGrid';\n return (\n <div className={`info ${showListClass} `} dir=\"ltr\">\n {this.props.documentsResults.map((item: DetailSearchResult) => {\n return (\n <div className=\"gridElement\" key={item.id}>\n <SearchItemContainer\n search={item}\n showImage={this.props.showImage}\n isPublic={item.public}\n canAddToList={this.props.addToList}\n hideDownloadButton={this.props.hideDownloadButton}\n arrivedFromFileModal={this.props.arrivedFromFileModal}\n showFileModal={this.props.showFileModal}\n hideFileModal={this.props.hideFileModal}\n />\n </div>);\n })\n }\n </div>\n );\n }\n}\n","import React from 'react';\nimport { Typeahead } from 'react-bootstrap-typeahead';\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport { DetailSearchResult } from '../../model/search/SearchResult';\nimport './../../styles/mainSearch/mainSearch.scss';\nimport { DocumentResultListComponent } from '../../common/components/documentResulList/documentResultList';\nimport { FiFile, FiInfo } from 'react-icons/fi';\nimport ReactAI from 'react-appinsights';\nimport { RouteComponentProps } from 'react-router';\nimport { routeStrings } from '../../common/constants/routes';\nimport { searchTypeEnum } from '../../model/enum/searchType';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport interface IMainSearchProps {\n options: DetailSearchResult[];\n lastLoaded: DetailSearchResult[];\n language: string;\n getSearch: (searchText: string) => void;\n getLastLoaded: () => void;\n getFeaturedDocuments: () => void;\n setFilter: (searchText: string, isMoreResults: boolean) => void;\n detail: DetailSearchResult;\n clearAdvancedSearchResult: () => void;\n featuredDocuments: DetailSearchResult[];\n simpleSearch: searchTypeEnum;\n lastSearch: string;\n saveCurrentSearch: (searchText: string) => void;\n}\n\nexport interface IMainSearchState {\n clearSuggestions: DetailSearchResult[];\n optionsSelected: DetailSearchResult[];\n showCookiePanel: boolean;\n typeahead: any\n}\n\nexport class MainSearchComponent extends React.Component<IMainSearchProps & RouteComponentProps, IMainSearchState> {\n grid: any;\n results: DetailSearchResult[];\n\n constructor(props: any) {\n super(props);\n this.state = {\n clearSuggestions: [],\n optionsSelected: [],\n showCookiePanel: true,\n typeahead: null\n };\n }\n\n componentDidMount() {\n if (this.props.lastSearch !== '') {\n const input = this.state.typeahead.getInstance();\n input._updateText(this.props.lastSearch);\n input.focus();\n }\n\n this.props.getFeaturedDocuments();\n const cookie = localStorage.getItem('cookiePolicy');\n if (cookie === 'accepted') {\n this.setState({\n showCookiePanel: false\n });\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.options !== prevProps.options) {\n this.setState({\n clearSuggestions: this.props.options\n });\n }\n }\n\n public itemChanged = () => {\n this.grid.updateLayout();\n };\n\n private readonly renderMenuItemChildren = (option: DetailSearchResult): JSX.Element => {\n if (!option.moreResults) {\n return (\n <div className=\"typeaheadSuggestion\">\n <div className=\"typeaheadSuggestionIcon\"><FiFile /></div>\n <div className=\"typeaheadSuggestionText\">\n <span>{option.name}</span>\n </div>\n </div>\n );\n }\n return (\n <div className=\"typeaheadSuggestion\">\n <div className=\"typeaheadMoreResultsText\">\n <span>{option.name}</span>\n </div>\n </div>\n );\n };\n\n private readonly handleInputChange = (searchText: string) => {\n if (searchText.length > 1) {\n this.props.getSearch(searchText);\n }\n this.setState({\n clearSuggestions: []\n });\n };\n\n private readonly handleOnChange = (options: DetailSearchResult[]): any => {\n if (options.length !== 0) {\n const option = options[0];\n const text: string = (document.getElementsByName('find')[0] as HTMLTextAreaElement).value;\n this.props.saveCurrentSearch(text);\n if (option.moreResults) {\n this.props.setFilter(text, true);\n this.props.history.push('/'.concat(getLanguageLocalStorage().concat(routeStrings.homeResult)));\n } else {\n this.props.setFilter(options[0].originalId, false);\n this.props.history.push('/'.concat(getLanguageLocalStorage().concat(routeStrings.homeResult)));\n }\n }\n };\n\n private filterByCallback(option: any, text: string): any {\n return (\n option\n );\n }\n\n public render() {\n const language = this.props.language;\n return (\n <div className=\"mainContainer\">\n <div className=\"searchFormSection\">\n <div className=\"container\">\n <div className=\"searchFormTitle\">\n <h1 className=\"mainTitle\">{getLanguage(language).SEARCH.TITLE}</h1>\n <a className=\"buttonInfo\" rel=\"noopener noreferrer\" onClick={() => this.setState({})} href={process.env.REACT_APP_PDF + getLanguage(language).SINTAX_HELP} target=\"_blank\">\n <FiInfo className=\"info buttonIcon\" />\n </a>\n </div>\n <div className=\"typeaheadContainer\">\n <Typeahead\n emptyLabel=\"\"\n labelKey=\"name\"\n inputProps={{ name: 'find' }}\n filterBy={this.filterByCallback}\n placeholder={getLanguage(language).SEARCH.TITLE}\n options={this.state.clearSuggestions}\n onInputChange={this.handleInputChange}\n renderMenuItemChildren={this.renderMenuItemChildren}\n onChange={this.handleOnChange}\n ref={(ref) => this.state = { ...this.state, typeahead: ref }}\n className=\"typehead\"\n />\n </div>\n </div>\n </div>\n <div className=\"recentDocumentsSection\">\n <div className=\"container\">\n <h2 className=\"titleLastDocuments\"> {getLanguage(language).SEARCH.FEATURED_DOCUMENTS}</h2>\n <DocumentResultListComponent\n showImage={true}\n documentsResults={this.props.featuredDocuments}\n />\n </div>\n </div>\n </div>\n );\n }\n}\nexport const SearchPage = ReactAI.withTracking(MainSearchComponent);\n","import { actionsDefinition } from '../actionsDef';\nimport { SearchResult, Filters } from '../../model/search';\nimport { getFilterByName } from '../../common/utils/apiUtils';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { searchTypeEnum } from '../../model/enum/searchType';\n\n\nexport const loadSearchAction = (searchText: string) => (dispatch: any) => {\n searchMsalApi.GetSuggestAsync(searchText).then((result) => {\n dispatch(loadAreaCompleted(result));\n });\n\n const loadAreaCompleted = (result: SearchResult[]) => ({\n type: actionsDefinition.searchResults.LOAD_SEARCH,\n payload: result,\n meta: {\n httpEnd: true\n }\n });\n};\n\nexport const sendToResultAction = (searchText: string, isMoreResults: boolean, searchTypeValue: searchTypeEnum) => (dispatch: any) => {\n const filters = getFilterByName(searchText, isMoreResults);\n dispatch(loadResultCompletedSimple(searchTypeValue));\n dispatch(loadResultCompleted(filters));\n};\n\nexport const sendAdvancedSearchFiltersAction = (filters: Filters, searchTypeValue: searchTypeEnum) => (dispatch: any) => {\n dispatch(loadResultCompletedAdvanced(searchTypeValue));\n dispatch(loadResultCompleted(filters));\n};\n\nconst loadResultCompleted = (filters: Filters) => ({\n type: actionsDefinition.searchResults.LOAD_RESULT,\n payload: filters\n});\n\nconst loadResultCompletedSimple = (searchTypeValue: searchTypeEnum) => ({\n type: actionsDefinition.searchResults.LOAD_RESULT_SIMPLE,\n payload: searchTypeValue\n});\n\nconst loadResultCompletedAdvanced = (searchTypeValue: searchTypeEnum) => ({\n type: actionsDefinition.searchResults.LOAD_RESULT_ADVANCED,\n payload: searchTypeValue\n});\n\n","export enum orderTypeEnum {\n Ascending = 'asc',\n Descending = 'desc'\n}\n","import { FilterExpression, Connects, ConnectRequest, GroupRequest, OperatorType, LogicOperatorType, Filters } from '../../model/search';\n\nconst appJson = 'application/json';\n\nexport const HeaderWithoutTokenFormData = {\n Accept: appJson,\n};\n\nexport const headerWithoutToken = {\n 'Content-Type': appJson,\n Accept: appJson,\n};\n\nexport async function asyncForEach(array, callback) {\n for (let index = 0; index < array.length; index++) {\n await callback(array[index], index, array);\n }\n}\n\nexport function getFilterByName(searchText: string, isMoreResults: boolean): Filters {\n const operator = isMoreResults ? OperatorType.Co : OperatorType.Eq;\n const exp = new FilterExpression('simpleField', operator, isMoreResults ? searchText : 'originalId:'.concat(searchText));\n const connect = new Connects(exp, LogicOperatorType.and);\n const cond = new ConnectRequest();\n const group = new GroupRequest();\n cond.connect = LogicOperatorType.and;\n cond.condition.push(connect);\n group.group.push(cond);\n const filterRequest = new Filters();\n filterRequest.filters = group;\n\n return filterRequest;\n}\n\nexport function concatPdfToFileName(fileName: string): string {\n return fileName.concat('.pdf');\n}\n","import { actionsDefinition } from '../actionsDef';\nimport { SearchResult } from '../../model/search';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\n\nexport const loadLastLoaded = () => (dispatch: any) => {\n searchMsalApi.GetLastLoaded().then((result) => {\n dispatch(loadAreaCompleted(result));\n });\n};\n\nconst loadAreaCompleted = (result: SearchResult[]) => ({\n type: actionsDefinition.searchResults.LOAD_LAST_LOADED,\n payload: result,\n meta: {\n httpEnd: true\n }\n});\n","import { actionsDefinition } from '../actionsDef';\nimport { SearchResult } from '../../model/search';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\n\nexport const loadFeaturedDocuments = () => (dispatch: any) => {\n let featuredResult;\n searchMsalApi.GetFeaturedDocuments().then((result) => {\n featuredResult = result;\n if (featuredResult !== undefined) {\n dispatch(loadAreaCompleted(featuredResult));\n } else {\n searchMsalApi.GetLastLoaded().then((resultLastLoaded) => {\n dispatch(loadLastReesults(resultLastLoaded));\n });\n }\n });\n};\n\nconst loadAreaCompleted = (result: SearchResult[]) => ({\n type: actionsDefinition.searchResults.LOAD_FEATURED_DOCUMENTS,\n payload: result,\n meta: {\n httpEnd: true\n }\n});\n\nconst loadLastReesults = (result: SearchResult[]) => ({\n type: actionsDefinition.searchResults.LOAD_LAST_LOADED,\n payload: result,\n meta: {\n httpEnd: true\n }\n});\n\n","import { actionsDefinition } from '../actionsDef';\n\nexport const clearAdvancedSearchResultAction = () => (dispatch: any) => {\n\n dispatch(clearAdvancedSearchResultActionCompleted());\n};\n\nconst clearAdvancedSearchResultActionCompleted = () => ({\n type: actionsDefinition.mainSearch.CLEAR_ADVANCED_RESULT,\n\n});\n","import { actionsDefinition } from '../actionsDef';\n\nexport const saveCurrentSearchAction = (searchText: string) => (dispatch: any) => {\n dispatch(saveCurrentSearchCompleted(searchText));\n};\n\nconst saveCurrentSearchCompleted = (result: string) => ({\n type: actionsDefinition.searchResults.SAVE_CURRENT_SEARCH,\n payload: result,\n meta: {\n httpEnd: true\n }\n});\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { MainSearchComponent } from './mainSearch';\nimport { loadSearchAction, sendToResultAction } from './../../actions/mainSearch/loadSearchAction';\nimport { loadLastLoaded } from './../../actions/mainSearch/loadLastLoaded';\nimport { loadFeaturedDocuments } from './../../actions/mainSearch/loadFeaturedDocuments';\nimport { clearAdvancedSearchResultAction } from './../../actions/mainSearch/clearAdvancedSearchResultAction';\nimport { searchTypeEnum } from '../../model/enum/searchType';\nimport { saveCurrentSearchAction } from '../../actions/mainSearch/saveCurrentSearchAction';\n\nconst mapStateToProps = (state: StateReducer) => ({\n options: state.searchResult,\n lastLoaded: state.lastLoaded,\n featuredDocuments: state.featuredDocuments,\n lastSearch: state.lastSearch,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getSearch: (searchText: string) => dispatch(loadSearchAction(searchText)),\n getLastLoaded: () => dispatch(loadLastLoaded()),\n getFeaturedDocuments: () => dispatch(loadFeaturedDocuments()),\n setFilter: (searchText: string, isMoreResults: boolean) => dispatch(sendToResultAction(searchText, isMoreResults, searchTypeEnum.Simple)),\n clearAdvancedSearchResult: () => dispatch(clearAdvancedSearchResultAction()),\n saveCurrentSearch: (searchText: string) => dispatch(saveCurrentSearchAction(searchText)),\n});\n\nexport const MainSearchContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(MainSearchComponent);\n","import { actionsDefinition } from '../actionsDef';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { SingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { ToastrType } from '../../common/Alerts/ToastrType';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport const downloadCaseFileAction = (caseFileIdParam: string) => (dispatch: any) => {\n const inProgressCaseFile: SingleDocumentDownloadState = {\n docId: caseFileIdParam,\n downloadState: DownloadDocumentStateTypes.INPROGRESS\n };\n\n dispatch(downloadCaseFileDispatch(inProgressCaseFile));\n Alerts.show(getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOC_IN_PROGRESS , ToastrType.Info);\n\n searchMsalApi.GetCaseFileDownload(caseFileIdParam).then((result) => {\n if (result) {\n const completedDoc: SingleDocumentDownloadState = {\n docId: caseFileIdParam,\n downloadState: DownloadDocumentStateTypes.COMPLETED\n };\n dispatch(downloadCaseFileDispatch(completedDoc));\n Alerts.show(getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOCS_SUCESSFULLY , ToastrType.Success);\n } else {\n const errorDoc: SingleDocumentDownloadState = {\n docId: caseFileIdParam,\n downloadState: DownloadDocumentStateTypes.ERROR\n };\n dispatch(downloadCaseFileDispatch(errorDoc));\n Alerts.show(getLanguage(getLanguageLocalStorage()).ALERTS.DOWNLOAD_DOC_FILE_FAILED, ToastrType.Error);\n }\n });\n};\n\nconst downloadCaseFileDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleCaseFile.DOWNLOAD_ONE,\n payload: payloadDoc,\n meta: {\n httpEnd: true\n }\n});\n\nexport const addCaseFileToStateListAction = (docIdParam: string) => (dispatch: any) => {\n const newDoc: SingleDocumentDownloadState = {\n docId: docIdParam,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n dispatch(addCaseFileToStateListDispatch(newDoc));\n};\n\nconst addCaseFileToStateListDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleCaseFile.ADD_CASEFILE,\n payload: payloadDoc\n});\n\nexport const clearCaseFileStateFromListAction = (docIdParam: string) => (dispatch: any) => {\n const clearDoc: SingleDocumentDownloadState = {\n docId: docIdParam,\n downloadState: DownloadDocumentStateTypes.NOTSTARTED\n };\n dispatch(clearCaseFileStateFromListDispatch(clearDoc));\n};\n\nconst clearCaseFileStateFromListDispatch = (payloadDoc: SingleDocumentDownloadState) => ({\n type: actionsDefinition.downloadSingleCaseFile.CLEAR_SINGLE_STATE,\n payload: payloadDoc\n});\n\nexport const clearAllCaseFileStateListAction = () => (dispatch: any) => {\n dispatch(clearAllCaseFileStateListDispatch());\n};\n\nconst clearAllCaseFileStateListDispatch = () => ({\n type: actionsDefinition.downloadSingleCaseFile.CLEAR_STATE\n});\n","import * as React from 'react';\nimport './../../../styles/pager/pagerComponent.scss';\nimport { PrimaryButton } from 'office-ui-fabric-react';\nimport { FiChevronLeft, FiChevronRight } from 'react-icons/fi';\nimport { getLanguage } from '../../../translations/language';\n\nexport interface IPagerComponentProps {\n changePaging: (i: number, pageBlock: number) => void;\n pageNumber: number;\n pageBlock: number;\n totalItems: number;\n language: string;\n}\n\nexport interface IPagerComponentState {\n currentPage: number;\n currentPageBlock: number;\n}\n\nexport class PagerComponent extends React.Component<IPagerComponentProps, IPagerComponentState> {\n \n\n constructor(props: any) {\n super(props);\n this.state = {\n currentPage: 0,\n currentPageBlock: 0\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.pageNumber !== prevProps.pageNumber) {\n this.setState({\n currentPage: this.props.pageNumber\n });\n }\n if (this.props.pageBlock !== prevProps.pageBlock) {\n this.setState({\n currentPageBlock: this.props.pageBlock\n });\n }\n }\n\n public render() {\n const pagin: any[] = [];\n if (this.props.totalItems > 18) {\n pagin.push(this.getPaging());\n }\n return (\n <div>\n {pagin}\n </div>\n );\n }\n\n private getPaging(): any {\n let pageNumber = this.props.totalItems / 18;\n let blockCount = pageNumber / 5;\n const blockPages: any[] = [];\n if (this.props.totalItems % 18 > 0) {\n pageNumber = Math.trunc(pageNumber) + 1;\n }\n if (blockCount % 5 > 0) {\n blockCount = Math.trunc(blockCount) + 1;\n }\n\n let currentPage = 1;\n for (let i = 0; i < blockCount; i++) {\n blockPages[i] = [];\n for (let x = 1; x <= 5; x++) {\n if (currentPage <= pageNumber) {\n const buttonPage = currentPage;\n const active = buttonPage - 1 === this.props.pageNumber ? 'active' : '';\n blockPages[i][x] = (<PrimaryButton\n key={buttonPage}\n data-automation-id=\"test\"\n text={String(buttonPage)}\n onClick={() => this.props.changePaging(buttonPage - 1, i)}\n allowDisabledFocus={true}\n className={`pagerElement ${active}`}\n />);\n currentPage++;\n }\n }\n }\n\n return (\n <div key={pageNumber} className=\"paginationContainer\">\n {this.renderPrevPageButton()}\n {this.getPageBlock(blockPages[this.state.currentPageBlock])}\n {this.renderNextPageButton()}\n </div>\n );\n }\n\n getPageBlock = (blockPage: []) => {\n const pages = [];\n blockPage.forEach((page) => {\n pages.push(page);\n });\n return pages;\n };\n\n nextPage = () => {\n const calculation = (this.state.currentPageBlock + 1) * 5;\n const totalPages = Math.trunc(this.calculateTotalPages()) + 1;\n const calculatedPage = calculation < totalPages ? calculation : totalPages;\n this.setState({\n currentPage: calculatedPage,\n currentPageBlock: this.state.currentPageBlock + 1\n }, () => { this.props.changePaging(this.state.currentPage, this.state.currentPageBlock); });\n };\n\n prevPage = () => {\n const calculation = (this.state.currentPageBlock) * 5 - 1;\n const calculatedPage = calculation > 0 ? calculation : 0;\n this.setState({\n currentPage: calculatedPage,\n currentPageBlock: this.state.currentPageBlock - 1\n }, () => { this.props.changePaging(this.state.currentPage, this.state.currentPageBlock); });\n };\n\n renderPrevPageButton = () => {\n const language = this.props.language;\n if (this.state.currentPageBlock === 0) {\n return <></>;\n } else {\n return (<div className=\"pagerPrevNext pagerPrev\" onClick={() => this.prevPage()} > <FiChevronLeft /> {getLanguage(language).PAGINATION.PREVIOUS}</div>);\n }\n };\n\n renderNextPageButton = () => {\n const language = this.props.language; \n const totalPages = Math.trunc(this.calculateTotalPages()) + 1;\n if (this.state.currentPageBlock >= this.calculateTotalPageBlocks() - 1 && this.state.currentPageBlock >= 0 && this.props.pageNumber + 5 >= totalPages) {\n return <></>;\n } else {\n return (<div className=\"pagerPrevNext pagerNext\" onClick={() => this.nextPage()} >{getLanguage(language).PAGINATION.NEXT} <FiChevronRight /> </div>);\n }\n };\n\n calculateTotalPages = (): number => {\n return (\n (this.props.totalItems / 18) - 1\n );\n };\n\n calculateTotalPageBlocks = (): number => {\n const pageNumber = this.props.totalItems / 18;\n let blockCount = pageNumber / 5;\n if (blockCount % 5 > 0) {\n blockCount = Math.trunc(blockCount) + 1;\n }\n return blockCount;\n };\n}\n","import React from 'react';\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport './../../styles/detailDoc/detailDoc.scss';\nimport { DetailSearchFiles, AdvanceSearchResult, Filters } from '../../model/search';\nimport { FiDownloadCloud, FiShare2 } from 'react-icons/fi';\nimport { RouteComponentProps, NavLink } from 'react-router-dom';\nimport { SocialMediaButtons } from '../../common/components/socialMedia/socialMediaButtons';\nimport { DocumentResultListComponent } from '../../common/components/documentResulList/documentResultList';\nimport { DonwloadConfirmationPanel } from '../../common/components/downloadConfirmationPanel/downloadConfirmationPanel';\nimport { SingleDocumentDownloadState, createEmptySingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport { getCurrentCaseFileFromStateList, getFileDownloadStateClass } from '../../common/utils/caseFileAndDocDownloadStateUtils';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport stroke from '../../styles/img/stroke.svg';\nimport moment from 'moment';\nimport logo from '../../styles/img/APV-logo.svg';\nimport logoSmall from '../../styles/img/APV-logo-small.svg';\nimport { routeUrls } from '../../common/constants/routes';\nimport { ImageComponent } from '../../common/components/ImageComponent/ImageComponent';\nimport { PagerComponent } from '../../common/components/pager/pagerComponent';\nimport { HeaderLogo } from '../../common/components/headerLogo/headerLogo';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\n\nexport interface IDetailFileProps extends RouteComponentProps {\n advSearchResult: AdvanceSearchResult;\n detailFile: DetailSearchFiles;\n caseFileId?: string;\n showFileModal?: () => void;\n hideFileModal?: () => void;\n isDataLoaded: boolean;\n caseFileDownloadList: SingleDocumentDownloadState[];\n getDetail: (id: string, page: number) => void;\n downloadFile: (fileId: string) => void;\n addCaseFileToStateListAction: (fileId: string) => void;\n clearCaseFileFromStateListAction: (fileId: string) => void;\n filtersRequest: Filters;\n language: string;\n}\n\nexport interface IDetailFileState {\n showDownloadPanel: boolean;\n showSocial: boolean;\n currentCaseFile: SingleDocumentDownloadState;\n filtersRequest: Filters;\n filterPage: number;\n pageBlock: number;\n page: number;\n}\n\nexport class DetailFileComponent extends React.Component<IDetailFileProps, IDetailFileState> {\n private _menuButtonElement: HTMLElement;\n constructor(props: any) {\n super(props);\n this.state = {\n showDownloadPanel: false,\n showSocial: false,\n currentCaseFile: createEmptySingleDocumentDownloadState(),\n filterPage: 0,\n filtersRequest: this.props.filtersRequest,\n pageBlock: 0,\n page: 0\n };\n }\n\n componentDidMount() {\n let detail;\n let page;\n if (this.props.caseFileId) {\n detail = this.props.caseFileId;\n page = this.state.page;\n } else {\n detail = this.props.match.params['id'];\n page = this.props.match.params['page'];\n }\n if (!page) {\n page = 0;\n }\n this.props.getDetail(detail, page);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.detailFile !== prevProps.detailFile) {\n let currentCaseFileRes = getCurrentCaseFileFromStateList(this.props.detailFile.id, this.props.caseFileDownloadList);\n if (!currentCaseFileRes) {\n currentCaseFileRes = createEmptySingleDocumentDownloadState();\n this.props.addCaseFileToStateListAction(this.props.detailFile.id);\n }\n this.setState({\n currentCaseFile: currentCaseFileRes,\n });\n }\n if (this.props.caseFileDownloadList !== prevProps.caseFileDownloadList) {\n const currentCaseFileList = getCurrentCaseFileFromStateList(this.props.detailFile.id, this.props.caseFileDownloadList);\n if (currentCaseFileList) {\n this.setState({\n currentCaseFile: currentCaseFileList\n }, () => {\n if (this.state.currentCaseFile.downloadState === DownloadDocumentStateTypes.COMPLETED) {\n this.props.clearCaseFileFromStateListAction(this.props.detailFile.id);\n }\n });\n } else {\n this.props.addCaseFileToStateListAction(this.props.detailFile.id);\n }\n }\n }\n\n downloadFile = () => {\n this.setState({\n showDownloadPanel: true\n });\n };\n\n thumbnail = () => {\n const image = this.props.detailFile.public ? this.props.detailFile.thumbnailUri : 'notFound.png';\n return (<>\n <div className=\"detailDocumentGridImagePaperClip\">\n <img className=\"stroke\" src={stroke} alt=\"\" ></img>\n </div>\n <div className=\"cajaImageContainer \" >\n <ImageComponent imgSrc={image} />\n </div>\n </>);\n };\n\n dateTitle = () => {\n const language = this.props.language;\n if (this.props.detailFile.initDate || this.props.detailFile.endDate) {\n return (\n <div className=\"metaDataContainerBlock metaDataContainerDescription boxDate\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DATE}</h3>\n </div>);\n } else { return (null); }\n };\n\n initialDate = () => {\n const language = this.props.language;\n if (this.props.detailFile.initDate) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.INITIAL_DATE}\n <div className=\"metaDataContainerElement element\">\n {moment(this.props.detailFile.initDate).utc().format('DD/MM/YYYY')}\n </div>\n </div>\n );\n } else { return (null); }\n };\n\n dueDate = () => {\n const language = this.props.language;\n if (this.props.detailFile.endDate) {\n return (\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.DATE_END}\n <div className=\"metaDataContainerElement element\">\n {moment(this.props.detailFile.endDate).utc().format('DD/MM/YYYY')}\n </div>\n </div>);\n } else { return (null); }\n };\n\n signatura = () => {\n const language = this.props.language;\n if (this.props.detailFile.signature) {\n const signatureText = getLanguage(language).DETAIL_DOC.SIGNATURE_TOPOGRAPHIC;\n return (\n <div className=\"cajaTipo\">\n <div className=\"signaturaCaja\">\n <div className=\"signatura\">{getLanguage(language).DETAIL_DOC.SIGNATURE}</div>\n <div className=\"signatureText\">{signatureText}</div>\n </div>\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detailFile.signature}</div>\n </div>\n );\n } else { return (null); }\n };\n\n description = () => {\n const language = this.props.language;\n let description = null;\n if (this.props.detailFile.description && this.props.detailFile.description.trim()) {\n description = (\n <>\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DESCRIPTION}</h3>\n <div className=\"metaDataContainerElement element textWhite\">{this.props.detailFile.description}</div>\n </>\n );\n }\n if (description) {\n return description;\n } else {\n return (\n <>\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DESCRIPTION}</h3>\n <div className=\"metaDataContainerElement element noContent textWhite\">{getLanguage(language).DETAIL_DOC.NO_DESCRIPTION_FILE}</div>\n </>\n );\n }\n };\n\n notes = () => {\n const language = this.props.language;\n if (this.props.detailFile.notes && this.props.detailFile.notes.filter(x => x.trim()).length > 0) {\n return (\n <div className=\"metaDataContainerElement element textWhite\">\n {this.props.detailFile.notes.map(note => {\n return (\n <>\n {note}\n <br />\n </>\n )\n })}\n </div>\n );\n } else { return (<div className=\"metaDataContainerElement element noContent\">{getLanguage(language).DETAIL_DOC.FILE_VOID}</div>); }\n };\n\n header = () => {\n if (this.props.caseFileId) {\n return null;\n } else {\n return (<HeaderLogo />);\n }\n };\n\n downloadButton = () => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.DOWNLOAD;\n if (this.props.caseFileId || !this.props.detailFile.public) {\n return null;\n } else {\n return (\n <button\n title={textButton}\n className=\"btnActions downloadButton\"\n onClick={() => this.downloadFile()}>\n <FiDownloadCloud />\n </button>\n );\n }\n };\n\n idFile = () => {\n if (this.props.detailFile.id) {\n return (<>\n <div className=\"metaDataContainerElement element titleMovile\">\n {this.props.detailFile.id}\n </div>\n </>);\n } else {\n return null;\n }\n };\n\n public privateDoc = () => {\n const language = this.props.language;\n if (!this.props.detailFile.public) {\n return (\n <>\n <div className=\"noPublicDetail\">{getLanguage(language).DETAIL_DOC.NO_PUBLIC}</div>\n </>\n );\n } else {\n return (null);\n }\n };\n\n concatCitaText = (name: string): string => {\n const language = this.props.language;\n const citaText = getLanguage(language).DETAIL_DOC.DOC_QUOTE_TEXT;\n let concatedName = ''\n if (name.endsWith('.')) {\n concatedName = name.concat(citaText);\n } else {\n concatedName = name.concat('.').concat(citaText);\n }\n return concatedName;\n }\n\n public render() {\n const language = this.props.language;\n const textButton = getLanguage(language).HEADER.SHARE.TOOLTIP.SHARE;\n\n if (this.props.isDataLoaded) {\n const downloadStateClass: string = getFileDownloadStateClass(this.state.currentCaseFile, false);\n return (\n <div className={`mainContainer detailFileContainer ${downloadStateClass}`}>\n {this.header()}\n <div className=\"container\">\n <div className=\"documentContainer listDetailFirst\">\n <div className=\"documentSheet\">\n <div className=\"documentTitle\">\n <h1>{this.props.detailFile.name}</h1>\n </div>\n <div className=\"detailDocumentGrid\" dir=\"ltr\">\n <div className=\"detailDocumentGridImage\">{this.thumbnail()}</div>\n <div className=\"detailDocumentGridInfo\">\n <div className=\"ButtonContainerShared\">\n {this.downloadButton()}\n <button\n ref={menuButton => (this._menuButtonElement = menuButton)}\n title={textButton}\n className=\"btnActions shareButton\"\n onClick={() => { this.setState({ showSocial: !this.state.showSocial }); }}>\n <FiShare2 />\n </button>\n {this.privateDoc()}\n </div>\n <div className=\"metaDataContainer\">\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).RESULTS.FILES.FILE_m} </h3>\n <div className=\"metaDataContainerElement\">\n {this.idFile()}\n </div>\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).SEARCH.FILTER.DOCUMENTARY_SERIES}</h3>\n <div className=\"metaDataContainerElement element textWhite\">\n {this.props.detailFile.documentalSeries.split('CCF-')[1]}\n </div>\n </div>\n {this.dateTitle()}\n <div>\n {this.initialDate()}\n {this.dueDate()}\n </div>\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n {this.description()}\n </div>\n {/* <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DOC_NOTES} </h3>\n {this.notes()}\n </div> */}\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <h3 className=\"metaDataContainerTitle\">{getLanguage(language).DETAIL_DOC.DOC_REFERENCES}</h3>\n <div className=\"metaDataContainerElement\">\n <div className=\"cajaTipo\">{getLanguage(language).DETAIL_DOC.DOC_QUOTE}\n <div className=\"metaDataContainerElement element textWhite\">{this.concatCitaText(this.props.detailFile.name)}</div>\n </div>\n {this.signatura()}\n </div>\n </div>\n </div>\n <DonwloadConfirmationPanel\n showPanel={this.state.showDownloadPanel}\n onAccept={() => this.onAcceptDownload()}\n onCancel={() => this.onCancelDownload()}\n />\n <div className=\"mediaSocial\">{this.share()}</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div className=\"container listDetailFile\">\n <div className=\"relatedDocumentsContainer listDetailFile\">\n <div className=\"relatedDocuments\">\n <div className=\"documentTitle tittle styleTitleRelatedDocs\">\n <h3>{getLanguage(language).DETAIL_DOC.DOCS_RELATED_FILE}</h3>\n </div>\n <div className=\"listDetail listDetailFile\">\n <DocumentResultListComponent\n showImage={false}\n documentsResults={this.props.detailFile.docs}\n addToList={true}\n hideDownloadButton={true}\n arrivedFromFileModal={true}\n showFileModal={this.props.showFileModal}\n hideFileModal={this.props.hideFileModal}\n />\n <PagerComponent\n changePaging={this.onPageChange}\n pageNumber={this.state.page}\n pageBlock={this.state.pageBlock}\n totalItems={this.props.detailFile.total}\n language={this.props.language}\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n return (<></>);\n }\n }\n\n onPageChange = (pageNum: number, pageBlockParam: number): any => {\n this.setState({\n page: pageNum,\n pageBlock: pageBlockParam,\n }, () => this.props.getDetail(this.props.caseFileId, this.state.page));\n };\n\n share = () => {\n const baseUrl = `${process.env.REACT_APP_URL_REDIRECT}`;\n return (\n <SocialMediaButtons\n url={`${baseUrl}/${getLanguageLocalStorage()}/detailFile/${this.props.detailFile.id}`}\n text={`${this.props.detailFile.name}`}\n showPanel={this.state.showSocial}\n onCancel={() => this.onCancel()}\n target={this._menuButtonElement}\n closeButtonAriaLabel=\"Close\"\n hasCloseIcon={true}\n />\n );\n };\n\n onAcceptDownload = () => {\n this.props.downloadFile(this.props.detailFile.id);\n this.hidePanel();\n };\n\n onCancelDownload = () => {\n this.hidePanel();\n };\n\n hidePanel = () => {\n this.setState({\n showDownloadPanel: false\n });\n };\n\n onCancel = () => {\n this.setState({\n showSocial: false\n });\n };\n}\n\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { downloadCaseFileAction, addCaseFileToStateListAction, clearCaseFileStateFromListAction } from '../../actions/dowloadFile/downloadFile';\nimport { DetailFileComponent } from './detailFile';\nimport { getDetailFileAction } from '../../actions/detailFile/getDetailFileAction';\n\ninterface CustomProps {\n caseFileId?: string;\n showFileModal?: boolean;\n hideFileModal?: boolean;\n}\n\nconst mapStateToProps = (state: StateReducer, customProps: CustomProps) => ({\n isDataLoaded: state.detailFile.isDataLoaded,\n detailFile: state.detailFile.detailFileResult,\n caseFileDownloadList: state.singleCaseFileDownloadStateList,\n caseFileId: customProps.caseFileId,\n filtersRequest: state.filtersRequest,\n advSearchResult: state.advSearchResult,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getDetail: (id: string, page: number) => dispatch(getDetailFileAction(id, page)),\n downloadFile: (fileId: string) => dispatch(downloadCaseFileAction(fileId)),\n addCaseFileToStateListAction: (fileId: string) => dispatch(addCaseFileToStateListAction(fileId)),\n clearCaseFileFromStateListAction: (fileId: string) => dispatch(clearCaseFileStateFromListAction(fileId)),\n});\n\nexport const DetailFileContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(DetailFileComponent);\n","import { actionsDefinition } from '../actionsDef';\nimport { DetailSearchFiles } from '../../model/search';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\nexport const getDetailFileAction = (id: string, page: number) => (dispatch: any) => {\n searchMsalApi.GetDetailFileAsync(id, page).then((result) => {\n dispatch(loadDetailCompleted(result));\n });\n\n const loadDetailCompleted = (result: DetailSearchFiles) => ({\n type: actionsDefinition.detailFile.LOAD_DETAIL_FILE,\n payload: result,\n meta: {\n httpEnd: true\n }\n });\n};\n","import React from 'react';\nimport { Modal } from 'office-ui-fabric-react/lib/Modal';\nimport { DetailFileContainer } from './detailFileContainer';\nimport { FiX } from 'react-icons/fi';\nimport './../../styles/detailDoc/detailDocModal.scss';\n\ninterface IProps {\n showModal: boolean;\n onCancel: () => void;\n idCaseFile: string;\n page: number;\n}\n\ninterface IState {\n showFileModal: boolean;\n}\n\n\nexport class DetailFileModal extends React.Component<IProps, IState>{\n constructor(props) {\n super(props);\n this.state = {\n showFileModal: false,\n };\n }\n\n hideSelf = () => {\n this.setState({\n showFileModal: true\n });\n };\n\n showSelf = () => {\n this.setState({\n showFileModal: false\n });\n };\n\n render() {\n const hiddenDocClass: string = this.state.showFileModal ? 'Hidden' : '';\n\n return (\n <Modal\n titleAriaId={''}\n isOpen={this.props.showModal}\n onDismiss={this.props.onCancel}\n className={`detailDocModal ${hiddenDocClass}`}\n >\n <div className=\"caseFileModalContainer\">\n <div onClick={this.props.onCancel} className=\"buttonContainer\"><FiX className=\"button close\" /></div>\n <DetailFileContainer\n page={this.props.page}\n caseFileId={this.props.idCaseFile}\n showFileModal={this.showSelf}\n hideFileModal={this.hideSelf}\n />\n </div>\n </Modal >\n );\n }\n}\n","import * as React from 'react';\nimport { SearchResult, DetailSearchFiles } from '../../model/search';\nimport '../../styles/mainSearch/mainSearch.scss';\nimport { FiDownloadCloud, FiShare2 } from 'react-icons/fi';\nimport { IDownloadDocument } from '../../model/downloadList';\nimport { DonwloadConfirmationPanel } from '../../common/components/downloadConfirmationPanel/downloadConfirmationPanel';\nimport { SocialMediaButtons } from '../../common/components/socialMedia/socialMediaButtons';\nimport { createEmptySingleDocumentDownloadState, SingleDocumentDownloadState } from '../../model/downloadDocumentState/SingleDocumentDownloadState';\nimport { getCurrentCaseFileFromStateList, getFileDownloadStateClass } from '../../common/utils/caseFileAndDocDownloadStateUtils';\nimport { DownloadDocumentStateTypes } from '../../model/downloadDocumentState/DownloadDocumentStateType';\nimport { DetailFileModal } from '../../components/detailFile/detailFileModal';\nimport moment from 'moment';\nimport { ImageComponent } from '../../common/components/ImageComponent/ImageComponent';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport interface ISearchFilesProps {\n showImage: boolean;\n language: string;\n\n filesList: SearchResult[];\n searchFile: DetailSearchFiles;\n caseFileDownloadList: SingleDocumentDownloadState[];\n\n addToList: (doc: IDownloadDocument) => void;\n removeFromList: (doc: IDownloadDocument) => void;\n downloadFile: (fileId: string) => void;\n addCaseFileToStateListAction: (fileId: string) => void;\n clearCaseFileFromStateListAction: (fileId: string) => void;\n}\n\nexport interface ISearchFilesState {\n isDocInList: boolean;\n showViewObservations: boolean;\n showDownloadPanel: boolean;\n showModal: boolean;\n showSocial: boolean;\n currentCaseFile: SingleDocumentDownloadState;\n}\n\nexport class SearchFilesComponent extends React.Component<ISearchFilesProps, ISearchFilesState> {\n private _menuButtonElement: HTMLElement;\n constructor(props: any) {\n super(props);\n this.state = {\n isDocInList: false,\n showViewObservations: false,\n showDownloadPanel: false,\n showModal: false,\n showSocial: false,\n currentCaseFile: createEmptySingleDocumentDownloadState(),\n };\n }\n\n componentDidMount() {\n let currentCaseFileRes = getCurrentCaseFileFromStateList(this.props.searchFile.id, this.props.caseFileDownloadList);\n if (!currentCaseFileRes) {\n currentCaseFileRes = createEmptySingleDocumentDownloadState();\n this.props.addCaseFileToStateListAction(this.props.searchFile.id);\n }\n this.setState({\n currentCaseFile: currentCaseFileRes,\n });\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.caseFileDownloadList !== prevProps.caseFileDownloadList) {\n const currentCaseFileList = getCurrentCaseFileFromStateList(this.props.searchFile.id, this.props.caseFileDownloadList);\n if (currentCaseFileList) {\n this.setState({\n currentCaseFile: currentCaseFileList\n }, () => {\n if (this.state.currentCaseFile.downloadState === DownloadDocumentStateTypes.COMPLETED) {\n this.props.clearCaseFileFromStateListAction(this.props.searchFile.id);\n }\n });\n } else {\n this.props.addCaseFileToStateListAction(this.props.searchFile.id);\n }\n }\n }\n\n public ellipsizeTextBox = (id) => {\n const el = document.getElementById(id);\n const wordArray = el.innerHTML.split(' ');\n while (el.scrollHeight > el.offsetHeight) {\n wordArray.pop();\n el.innerHTML = wordArray.join(' ').concat('...');\n }\n };\n\n public description = () => {\n let description = null;\n if (this.props.searchFile.description) {\n const descriptionText = this.props.searchFile.description.split(' ');\n let initDescriptionText = 0;\n let endDescriptionText = '';\n let maxLenghtReached = false;\n for (const word of descriptionText) {\n const currentWord = word;\n initDescriptionText += currentWord.length;\n if (initDescriptionText <= 170) {\n endDescriptionText = endDescriptionText.concat(currentWord).concat(' ');\n } else {\n if (!maxLenghtReached) {\n endDescriptionText = endDescriptionText.concat('...');\n maxLenghtReached = true;\n }\n }\n }\n description = (\n <div className=\"textDescription\">\n {endDescriptionText}\n </div>\n );\n }\n return description;\n };\n\n public name = () => {\n let name = null;\n if (this.props.searchFile.name) {\n const nameText = this.props.searchFile.name.split(' ');\n let initNameText = 0;\n let endNameText = '';\n let maxLenghtReached = false;\n for (const word of nameText) {\n const currentWord = word;\n initNameText += currentWord.length;\n if (initNameText <= 50) {\n endNameText = endNameText.concat(currentWord).concat(' ');\n } else {\n if (!maxLenghtReached) {\n endNameText = endNameText.concat('...');\n maxLenghtReached = true;\n }\n }\n }\n name = (\n <div className=\"cajaTitle title\">\n <div onClick={this.showModal} className=\"cursor\">\n {endNameText}\n </div>\n </div>\n );\n }\n return name;\n };\n\n public privateDoc = () => {\n const language = this.props.language;\n if (!this.props.searchFile.public) {\n return (\n <>\n <div className=\"noPublic\">{getLanguage(language).DETAIL_DOC.NO_PUBLIC}</div>\n </>\n );\n } else {\n return (null);\n }\n };\n\n renderButtonsNoPublic = () => {\n const language = this.props.language;\n const textButton = getLanguage(language).SEARCH.TOOLTIP.DOWNLOAD;\n if (this.props.searchFile.public) {\n return (\n <div className=\"cajaButtons left\">\n <button\n title={textButton}\n className=\"btnActions downloadButton\"\n onClick={() => this.downloadFile()}>\n <FiDownloadCloud />\n </button>\n </div>\n );\n } else { return null; }\n };\n\n\n public render() {\n const thumbnail: any = (this.props.showImage) ?\n <div className=\"cajaImageContainer\">\n <div className=\"cajaImageLink cursor\" onClick={this.showModal} style={{ backgroundImage: `url(${this.props.searchFile.thumbnailUri})` }}>\n <ImageComponent className=\"cajaImage\" imgSrc={this.props.searchFile.thumbnailUri} />\n </div>\n </div> : null;\n const language = this.props.language;\n\n const docInListClass: string = this.state.isDocInList ? 'added' : '';\n const downloadStateClass: string = getFileDownloadStateClass(this.state.currentCaseFile, false);\n const initDate = this.props.searchFile.initDate ? (\n <div className=\"date\">\n {moment(this.props.searchFile.initDate).utc().format('DD/MM/YYYY')}</div>\n\n ) : null;\n const idOriginal = this.props.searchFile.id ? (\n <div className=\"sizeIdOriginal titleMovile\">\n {this.props.searchFile.id}</div>\n ) : null;\n const endDate = this.props.searchFile.endDate ? (\n <>\n <div className=\"cajaTaxo padding\">-</div>\n <div className=\"date\">\n {moment(this.props.searchFile.endDate).utc().format('DD/MM/YYYY')}\n </div>\n </>\n ) : null;\n const noDate = !this.props.searchFile.endDate && !this.props.searchFile.initDate ? (\n <>\n <div className=\"date\">\n {getLanguage(language).DETAIL_DOC.DOC_NO_DATE}\n </div>\n </>\n ) : null;\n const textButton = getLanguage(language).HEADER.SHARE.TOOLTIP.SHARE;\n\n\n return (\n <>\n <div className={`caja ${docInListClass} ${downloadStateClass}`}>\n {this.privateDoc()}\n {thumbnail}\n <div className=\"cajaContent\">\n {this.name()}\n {this.description()}\n <div className=\"cajaTaxo\">\n {initDate}\n {endDate}\n {noDate}\n </div>\n <div className=\"cajaTitle\">\n {idOriginal}\n </div>\n </div>\n <div className=\"cajaButtonContainer border\" >\n {this.renderButtonsNoPublic()}\n <div className=\"cajaButtons right\">\n <button\n ref={menuButton => (this._menuButtonElement = menuButton)}\n title={textButton}\n className=\"btnActions shareButton\"\n onClick={() => { this.setState({ showSocial: !this.state.showSocial }); }}>\n <FiShare2 />\n </button>\n </div>\n </div>\n </div>\n <DonwloadConfirmationPanel\n showPanel={this.state.showDownloadPanel}\n onAccept={() => this.onAcceptDownload()}\n onCancel={() => this.onCancelDownload()}\n />\n <DetailFileModal\n idCaseFile={this.props.searchFile.id}\n page={this.props.searchFile.page}\n onCancel={this.onCancelModal}\n showModal={this.state.showModal}\n />\n <div className=\"mediaSocial\">{this.share()}</div>\n </>\n );\n }\n\n share = () => {\n const baseUrl = `${process.env.REACT_APP_URL_REDIRECT}`;\n return (\n <SocialMediaButtons\n url={`${baseUrl}/${getLanguageLocalStorage()}/detailFile/${this.props.searchFile.id}`}\n text={`${this.props.searchFile.name}`}\n showPanel={this.state.showSocial}\n onCancel={() => this.onCancel()}\n target={this._menuButtonElement}\n closeButtonAriaLabel=\"Close\"\n hasCloseIcon={true}\n />\n );\n };\n\n downloadFile = () => {\n this.setState({\n showDownloadPanel: true\n });\n };\n\n onAcceptDownload = () => {\n this.props.downloadFile(this.props.searchFile.id);\n this.hidePanel();\n };\n\n onCancelDownload = () => {\n this.hidePanel();\n };\n\n onCancel = () => {\n this.setState({\n showSocial: false\n });\n };\n\n showModal = () => {\n this.setState({\n showModal: true\n });\n };\n\n onCancelModal = () => {\n this.setState({\n showModal: false\n });\n };\n\n hidePanel = () => {\n this.setState({\n showDownloadPanel: false\n });\n };\n}\n","import { connect } from 'react-redux';\nimport { StateReducer } from '../../reducers';\nimport { IDownloadDocument } from '../../model/downloadList';\nimport { removeDownloadAction } from '../../actions/downloadList/removeDownloadAction';\nimport { addDownloadAction } from '../../actions/downloadList/addDownloadAction';\nimport { DetailSearchFiles } from '../../model/search';\nimport { SearchFilesComponent } from './searchFiles';\nimport { downloadCaseFileAction, addCaseFileToStateListAction, clearCaseFileStateFromListAction } from '../../actions/dowloadFile/downloadFile';\n\ninterface CustomProps {\n searchFile: DetailSearchFiles;\n showImage: boolean;\n}\n\nconst mapStateToProps = (state: StateReducer, customProps: CustomProps) => ({\n searchFile: customProps.searchFile,\n showImage: customProps.showImage,\n filesList: state.filesList,\n caseFileDownloadList: state.singleCaseFileDownloadStateList,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n addToList: (doc: IDownloadDocument) => dispatch(addDownloadAction(doc)),\n removeFromList: (doc: IDownloadDocument) => dispatch(removeDownloadAction(doc)),\n downloadFile: (fileId: string) => dispatch(downloadCaseFileAction(fileId)),\n addCaseFileToStateListAction: (fileId: string) => dispatch(addCaseFileToStateListAction(fileId)),\n clearCaseFileFromStateListAction: (fileId: string) => dispatch(clearCaseFileStateFromListAction(fileId)),\n});\n\nexport const SearchFilesContainer = connect(\n mapStateToProps,\n mapDispatchToProps,\n)(SearchFilesComponent);\n","import * as React from 'react';\nimport { DetailSearchFiles } from '../../../model/search';\nimport './../../../styles/mainSearch/mainSearch.scss';\nimport { SearchFilesContainer } from '../../../components/searchFiles/searchFilesContainer';\n\nexport interface IFilesResultListProps {\n showImage: boolean;\n filesResults: DetailSearchFiles[];\n showList: boolean;\n}\n\nexport class FilesResultListComponent extends React.Component<IFilesResultListProps, any> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n };\n }\n\n componentDidUpdate() {\n\n }\n\n\n public render() {\n const showListClass = this.props.showList ? 'showList' : 'lastDocumentsGrid';\n return (\n <div className={`info ${showListClass} `} dir=\"ltr\">\n {this.props.filesResults.map((item: DetailSearchFiles) => {\n return (\n <div className=\"gridElement\" key={item.id}>\n <SearchFilesContainer\n searchFile={item}\n showImage={this.props.showImage}\n />\n </div>);\n })\n }\n </div>\n );\n }\n}\n","import React from 'react';\nimport { FiGrid, FiList } from 'react-icons/fi';\nimport { getLanguage } from '../../../translations/language';\nimport { getLanguageLocalStorage } from '../languageHelper';\n\nexport const renderList = (showList: boolean, onClickParam: () => void): JSX.Element => {\n const showListClass = showList ? 'showList' : '';\n if (showList === true) {\n return (\n <div className=\"resultsViewModeToggle resultsViewModeGrid\" onClick={() => onClickParam()}>\n <FiGrid className={`buttonFilter ${showListClass} navLinkIcon`} />\n <span className=\"navLinkText\">{ getLanguage(getLanguageLocalStorage()).RESULTS.DOCS.GRID_VIEW }</span>\n </div>\n );\n } else {\n return (\n <div className=\"resultsViewModeToggle resultsViewModeList\" onClick={() => onClickParam()}>\n <FiList className={`buttonFilter ${showListClass} navLinkIcon`} />\n <span className=\"navLinkText\">{ getLanguage(getLanguageLocalStorage()).RESULTS.DOCS.LIST_VIEW }</span>\n </div>\n );\n }\n};\n","import React from 'react';\nimport { Toggle } from 'office-ui-fabric-react';\nimport { getLanguage } from '../../../translations/language';\nimport { getLanguageLocalStorage } from '../languageHelper';\n\nexport const renderShowImages = (files: boolean, showList: boolean, showImages: boolean, onChangeParam: (checked: boolean) => void) => {\n if (files !== true && showList !== true) {\n return (\n <div className=\"resultsHeaderToggle imagesToggle\">\n <Toggle\n checked={showImages}\n onChange={(ev: React.MouseEvent<HTMLElement>, checked: boolean) => {\n onChangeParam(checked);\n }}\n style={{ backgroundColor: showImages ? '#88B04B' : '#f6f6f6' }}\n />\n <span className=\"navLinkText text\">{getLanguage(getLanguageLocalStorage()).BUTTONS.IMG}</span>\n </div >);\n } else {\n return (<div></div>);\n }\n};\n","import React from 'react';\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport { AdvanceSearchResult, Facet } from '../../model/search/SearchResult';\nimport { Filters, FilterExpression, OperatorType, LogicOperatorType, Connects, ConnectRequest, GroupRequest } from '../../model/search';\nimport { DocumentResultListComponent } from '../../common/components/documentResulList/documentResultList';\nimport { FilesResultListComponent } from '../../common/components/filesResultsList/filesResultList';\nimport { ActionButton } from 'office-ui-fabric-react';\nimport './../../styles/mainResult/mainResult.scss';\nimport { PagerComponent } from '../../common/components/pager/pagerComponent';\nimport { Toggle } from 'office-ui-fabric-react/lib/index';\nimport { FiFilter, FiList, FiGrid, FiX, FiCalendar } from 'react-icons/fi';\nimport DatePicker from 'react-date-picker';\nimport cloneDeep from 'lodash.clonedeep';\nimport { searchTypeEnum } from '../../model/enum/searchType';\nimport { orderTypeEnum } from '../../model/enum/orderType';\nimport { renderList } from '../../common/utils/componentUtils/renderList';\nimport { renderShowImages } from '../../common/utils/componentUtils/renderShowImages';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport interface IMainSearchProps {\n filtersRequest: Filters;\n advSearchResult: AdvanceSearchResult;\n getAdvancedSearch: (filtersRequest: Filters, simpleSearch: searchTypeEnum) => void;\n clearSearchResult: () => void;\n simpleSearch: searchTypeEnum;\n advancedSearch: searchTypeEnum;\n language: string;\n}\nexport interface IMainSearchState {\n filtersRequest: Filters;\n initFiltersRequest?: GroupRequest;\n files: boolean;\n mainGroupRequest: ConnectRequest,\n secondMainGroupRequest: ConnectRequest;\n dateGroupRequest: ConnectRequest,\n facetGroupRequest: ConnectRequest,\n showFilter: boolean;\n showList: boolean;\n list: boolean;\n showImages: boolean;\n initDate: Date;\n endDate: Date;\n pageBlock: number;\n\n}\nexport class MainResultComponent extends React.Component<IMainSearchProps, IMainSearchState> {\n constructor(props: any) {\n super(props);\n this.searchByDocType = this.searchByDocType.bind(this);\n this.cleanFilters = this.cleanFilters.bind(this);\n this.searchByFacets = this.searchByFacets.bind(this);\n this.onPageChange = this.onPageChange.bind(this);\n this.state = {\n filtersRequest: this.props.filtersRequest,\n initFiltersRequest: undefined,\n mainGroupRequest: undefined,\n secondMainGroupRequest: undefined,\n dateGroupRequest: undefined,\n facetGroupRequest: undefined,\n files: false,\n showFilter: false,\n showList: false,\n list: false,\n showImages: false,\n initDate: null,\n endDate: null,\n pageBlock: 0,\n };\n }\n\n handleCheck(e) {\n alert(e.target);\n }\n\n componentWillUnmount() {\n this.props.clearSearchResult();\n }\n\n componentDidMount() {\n this.props.getAdvancedSearch(this.props.filtersRequest, this.props.simpleSearch);\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.initFiltersRequest === undefined) {\n this.setState({\n initFiltersRequest: cloneDeep(this.props.filtersRequest.filters)\n });\n }\n if (!this.state.mainGroupRequest) {\n let mainGroup = this.props.filtersRequest.filters.group[0];\n if (!mainGroup) {\n mainGroup = new ConnectRequest();\n }\n mainGroup.connect = LogicOperatorType.and;\n this.setState({\n mainGroupRequest: mainGroup\n });\n }\n if (!this.state.secondMainGroupRequest) {\n let secondGroup = this.props.filtersRequest.filters.group[1];\n if (!secondGroup) {\n secondGroup = new ConnectRequest();\n }\n secondGroup.connect = LogicOperatorType.and;\n this.setState({\n secondMainGroupRequest: secondGroup\n });\n }\n if (!this.state.dateGroupRequest) {\n this.setState({\n dateGroupRequest: new ConnectRequest()\n });\n }\n if (!this.state.facetGroupRequest) {\n this.setState({\n facetGroupRequest: new ConnectRequest()\n });\n }\n\n if (this.state.filtersRequest !== prevState.filtersRequest) {\n this.props.getAdvancedSearch(this.state.filtersRequest, this.props.simpleSearch);\n }\n }\n\n private cleanFilters() {\n const tempFilter: Filters = new Filters();\n tempFilter.filters = cloneDeep(this.state.initFiltersRequest);\n tempFilter.page = 0;\n this.setState({\n initDate: null,\n endDate: null,\n dateGroupRequest: new ConnectRequest(),\n facetGroupRequest: new ConnectRequest(),\n filtersRequest: cloneDeep(tempFilter),\n pageBlock: 0\n });\n }\n\n private searchData(exp: FilterExpression) {\n const facetGroup: ConnectRequest = cloneDeep(this.state.facetGroupRequest);\n const connect = new Connects(exp, LogicOperatorType.and);\n facetGroup.condition.push(connect);\n facetGroup.connect = LogicOperatorType.and;\n this.setState({\n facetGroupRequest: facetGroup\n }, () => this.modifyFilters());\n }\n\n private readonly onDateChange = (date: Date, isInit: boolean) => {\n const formatedDate = date.toISOString();\n let exp: FilterExpression = null;\n if (isInit) {\n exp = new FilterExpression('initDate', OperatorType.Ge, formatedDate);\n } else {\n exp = new FilterExpression('initDate', OperatorType.Le, formatedDate);\n }\n const dateGroup: ConnectRequest = cloneDeep(this.state.dateGroupRequest);\n dateGroup.connect = LogicOperatorType.and;\n const connect = new Connects(exp, LogicOperatorType.and);\n if (dateGroup.condition.length > 0) {\n const operator = isInit ? OperatorType.Ge : OperatorType.Le;\n const dateCondition = dateGroup.condition.find(x => x.exp.field === exp.field && x.exp.operator === operator);\n if (dateCondition) {\n dateCondition.exp.value = exp.value;\n dateCondition.connect = LogicOperatorType.and;\n } else {\n dateGroup.condition.push(connect);\n }\n } else {\n dateGroup.condition.push(connect);\n }\n this.setState({\n dateGroupRequest: dateGroup\n }, () => this.modifyFilters());\n };\n\n private searchByDocType(filter: string) {\n const exp: FilterExpression = new FilterExpression('tipoDocumentalAPV', OperatorType.Eq, filter);\n this.searchData(exp);\n }\n\n private searchByFacets(isBoolean: boolean, filter: string, key: string) {\n if (isBoolean) {\n filter = filter.toLowerCase();\n }\n const exp: FilterExpression = new FilterExpression(key, OperatorType.Eq, filter);\n this.searchData(exp);\n }\n\n modifyFilters = () => {\n const filters: Filters = cloneDeep(this.state.filtersRequest);\n filters.page = 0;\n let groupIndex = 0;\n if (this.state.mainGroupRequest.condition.length > 0) {\n filters.filters.group[groupIndex] = this.state.mainGroupRequest;\n groupIndex++;\n }\n if (this.state.secondMainGroupRequest.condition.length > 0) {\n filters.filters.group[groupIndex] = this.state.secondMainGroupRequest;\n groupIndex++;\n }\n if (this.state.dateGroupRequest.condition.length > 0) {\n filters.filters.group[groupIndex] = this.state.dateGroupRequest;\n groupIndex++;\n }\n if (this.state.facetGroupRequest.condition.length > 0) {\n filters.filters.group[groupIndex] = this.state.facetGroupRequest;\n }\n this.setState({\n filtersRequest: filters\n });\n };\n\n public render() {\n const facetsArray: any[] = [];\n const graphicFacet: JSX.Element[] = [];\n const initDatePicker: JSX.Element = this.renderInitDatePicker();\n const endDatePicker: JSX.Element = this.renderEndDatePicker();\n const language = this.props.language;\n\n for (const key in this.props.advSearchResult.facets) {\n if (this.getExcludedKeys().indexOf(key) === -1) {\n facetsArray.push(this.getFacets(key, this.props.advSearchResult.facets[key]));\n } else {\n graphicFacet.push(this.getFacets(key, this.props.advSearchResult.facets[key]));\n }\n }\n\n const facetDocs = this.FacetList(this.props.advSearchResult.documentTypeGroupsFacets, 'tipoDocumentalAPV');\n const showFilterClass = this.state.showFilter ? 'showFilters' : '';\n\n return (\n <div className=\"mainContainer\">\n <div className=\"filterToggle\">\n <button className={`buttonFilter ${showFilterClass} `} onClick={() => this.showMenuFilters()}><FiFilter className=\"funnelIcon\" /><FiX className=\"closeIcon\" /></button>\n </div>\n <div className=\"resultDocumentsSection\">\n <div>\n <div className={`contentWithSidebar ${showFilterClass} `}>\n <div className=\"filterContainer \">\n <h3 className=\"titleFacets\">{getLanguage(language).SEARCH.FILTER.FILTER_DOCS}</h3>\n <div className=\"facets date\">\n <label className=\"infoResult\">{getLanguage(language).SEARCH.FILTER.FILTER_DATE}</label>\n <div className=\"initDateContainer dateWidth\">\n {initDatePicker}\n <div className=\"initDateContainerLabel\">{getLanguage(language).SEARCH.FILTER.INITIAL_DATE}</div>\n </div>\n <div className=\"endDateContainer dateWidth\">\n {endDatePicker}\n <div className=\"initDateContainerLabel\">{getLanguage(language).SEARCH.FILTER.END_DATE}</div>\n </div>\n </div>\n <div className=\"facets\">\n <label className=\"infoResult\">{getLanguage(language).SEARCH.FILTER.DOCS_TYPE}</label>\n {facetDocs}\n </div>\n {facetsArray}\n <div className=\"facets graphics\">\n <label className=\"infoResult\">{getLanguage(language).SEARCH.FILTER.OTHER_GRAPHIC}</label>\n {graphicFacet}\n </div>\n <ActionButton\n data-automation-id=\"RefreshBtn\"\n iconProps={{ iconName: 'Refresh' }}\n allowDisabledFocus={true}\n onClick={this.cleanFilters}\n className=\"BtnRefresh\"\n >\n {getLanguage(language).SEARCH.FILTER.CLEAN_FILTERS}\n </ActionButton>\n </div>\n <div className=\"resultContainer\">\n <div className=\"container\">\n {this.renderFilesResultsOrMessage()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n private readonly toggleImages = () => {\n if (this.state.showList !== true) {\n return (renderShowImages(this.state.files, this.state.showFilter, this.state.showImages, this.changeShowImages));\n } else { return (<div></div>); }\n };\n\n changeShowImages = (checked: boolean) => {\n this.setState({ showImages: checked });\n };\n\n private readonly renderFilesResultsOrMessage = () => {\n const language = this.props.language;\n if (this.props.advSearchResult.docs.length > 0) {\n return this.renderFilesResults();\n } else {\n return (\n <div className=\"resultsHeaderText\">\n <h2 className=\"titleResultDocuments\"> {getLanguage(language).RESULTS.NOT_FOUND}</h2>\n <label className=\"resultsInfo\">{getLanguage(language).RESULTS.PLEASE_TRY}</label>\n </div>\n );\n }\n };\n\n private readonly renderFilesResults = () => {\n const language = this.props.language\n const renderListComponent = renderList(this.state.showList, this.showList);\n if (this.state.files === true) {\n return (\n <div>\n <div className=\"resultsHeader\">\n <div className=\"resultsHeaderText\">\n <label className=\"resultsInfo\">{getLanguage(language).RESULTS.FILES.SEARCH_RESULTS_DOCS} </label>\n <h2 className=\"titleResultDocuments\">{getLanguage(language).RESULTS.FILES.RESULTS_FILES} </h2>\n </div>\n <div className=\"resultsViewModeOptions\">\n {renderListComponent}\n </div>\n <div className=\"resultsHeaderToggles\">\n <div className=\"resultsHeaderToggle documentFileToggle\">\n <Toggle\n checked={this.state.files}\n onChange={(ev: React.MouseEvent<HTMLElement>, checked: boolean) => {\n this.setState({ files: checked });\n }}\n style={{ backgroundColor: '#88B04B' }}\n />\n <span className=\"titleFacets\">{getLanguage(language).RESULTS.DOCS.RESULTS_DOCS}</span>\n </div>\n </div>\n </div>\n <FilesResultListComponent\n showImage={false}\n filesResults={this.props.advSearchResult.files}\n showList={this.state.showList}\n />\n </div>\n );\n } else {\n return (\n <div>\n <div className=\"resultsHeader\">\n <div className=\"resultsHeaderText\">\n <label className=\"resultsInfo\"> {this.props.advSearchResult.docs.length} {getLanguage(language).RESULTS.X_RESULTS_MIDDLE} {this.props.advSearchResult.total} {getLanguage(language).RESULTS.X_RESULTS}</label>\n <h2 className=\"titleResultDocuments\">{getLanguage(language).RESULTS.DOCS.RESULTS_DOCS}</h2>\n </div>\n <div className=\"resultsViewModeOptions\">\n {renderListComponent}\n </div>\n <div className=\"resultsHeaderToggles\">\n <div className=\"resultsHeaderToggle documentFileToggle\">\n <Toggle\n checked={this.state.files}\n onChange={(ev: React.MouseEvent<HTMLElement>, checked: boolean) => {\n this.setState({ files: checked });\n }}\n style={{ backgroundColor: '#f6f6f6' }}\n />\n <span className=\"titleFacets\">{getLanguage(language).RESULTS.DOCS.SEE_FILES}</span>\n </div>\n {this.toggleImages()}\n </div>\n </div>\n <DocumentResultListComponent\n showImage={this.state.showImages}\n documentsResults={this.props.advSearchResult.docs}\n showList={this.state.showList}\n />\n <PagerComponent\n changePaging={this.onPageChange}\n pageNumber={this.state.filtersRequest.page}\n pageBlock={this.state.pageBlock}\n totalItems={this.props.advSearchResult.total}\n language={this.props.language}\n />\n </div>\n );\n }\n };\n\n private readonly showMenuFilters = () => {\n this.setState({\n showFilter: !this.state.showFilter\n });\n };\n\n private readonly showList = () => {\n this.setState({\n showList: !this.state.showList,\n showImages: false\n });\n };\n\n private onPageChange(pageNum: number, pageBlockParam: number): any {\n this.setState({\n filtersRequest: {\n ...this.state.filtersRequest,\n page: pageNum\n },\n pageBlock: pageBlockParam\n }, () => this.props.getAdvancedSearch(this.state.filtersRequest, this.props.simpleSearch));\n }\n\n private getFacets(facetKey: string, facets: Facet[]): any {\n const title: string = this.getFacetTitle(facetKey);\n const facetHTML = this.FacetList(facets, facetKey);\n return (<div key={facetKey} className=\"facets\">\n <label className=\"infoResult\">{title}</label>\n {facetHTML}\n </div>);\n }\n\n private getFacetTitle(key: string): string {\n let title;\n const language = this.props.language;\n switch (key) {\n case 'tipoDocumentalEni':\n title = getLanguage(language).SEARCH.FILTER.ENY_DOCUMENTARY;\n break;\n case 'clasificationType':\n title = getLanguage(language).SEARCH.FILTER.CLASIFICATION_TYPE;\n break;\n case 'caseFiles/caseFileId':\n title = getLanguage(language).RESULTS.FILES.FILE;\n break;\n case 'hasPhotographs':\n title = getLanguage(language).SEARCH.FILTER.CONTAINS_PHOTO;\n break;\n case 'hasPlans':\n title = getLanguage(language).SEARCH.FILTER.CONTAINS_PLANS;\n break;\n case 'hasOthers':\n title = getLanguage(language).SEARCH.FILTER.OTHER;\n break;\n case 'caseFiles/documentalSerie':\n title = getLanguage(language).SEARCH.FILTER.DOCUMENTARY_SERIES;\n break;\n }\n return title;\n }\n\n private getIsBoolean(key: string): boolean {\n switch (key) {\n case 'hasPhotographs':\n case 'hasPlans':\n case 'hasOthers':\n return true;\n default:\n return false;\n }\n }\n\n private FacetList(facets: any, key: string): any {\n const listItems = facets.map((facet, facetIndexFirst) => {\n if (facet.types !== undefined && facet.types.length > 0) {\n const details = facet.types.map((currentFacet, facetIndex) => {\n if (currentFacet.subTypes !== undefined && currentFacet.subTypes.length > 0) {\n const subtypeDetails = currentFacet.subTypes.map((cSubType) =>\n <li className=\"facetElement\" key={cSubType.displayName.toString()}>\n <div className=\"facetTitle\" onClick={() => this.searchByDocType(cSubType.filter)} >\n <span className=\"facetText\">{cSubType.displayName}</span>\n <span className=\"facetCounter\">{cSubType.count}</span>\n </div>\n </li>\n );\n return <li key={facetIndex} className=\"facetElement\">\n <div className=\"facetTitle\" onClick={() => this.searchByDocType(currentFacet.filter)}>\n <span className=\"facetText\">{currentFacet.displayName}</span>\n <span className=\"facetCounter\">{currentFacet.count}</span>\n </div>\n <ul className=\"subIndex\">{subtypeDetails}</ul>\n </li>;\n } else {\n return <li className=\"facetElement\" key={currentFacet.displayName.toString()}>\n <div className=\"facetTitle\" onClick={() => this.searchByDocType(currentFacet.filter)} >\n <span className=\"facetText\">{currentFacet.displayName}</span>\n <span className=\"facetCounter\">{currentFacet.count}</span>\n </div>\n </li>;\n }\n });\n return (<li className=\"subIndex\">{details}</li>);\n } else {\n return <li className=\"facetElement\" key={facet.displayName}>\n <div className=\"facetTitle\" onClick={() => this.searchByFacets(this.getIsBoolean(key), facet.filter, key)}>\n <span className=\"facetText\">{this.formatDisplayName(facet.displayName)}</span>\n <span className=\"facetCounter\">{facet.count}</span>\n </div>\n </li>;\n }\n });\n return <ul>{listItems}</ul>;\n }\n\n private readonly formatDisplayName = (displayName: string): string => {\n const language = this.props.language\n switch (displayName) {\n case 'False':\n return getLanguage(language).NO_CONTENT;\n case 'True':\n return getLanguage(language).CONTENT;\n default:\n if (displayName.startsWith('CCF-')) {\n return displayName.split('CCF-')[1];\n }\n return displayName;\n }\n };\n\n private readonly getExcludedKeys = (): string[] => {\n return [\n 'hasPhotographs',\n 'hasPlans',\n 'hasOthers'\n ];\n };\n\n private readonly renderInitDatePicker = (): JSX.Element => {\n return (\n <DatePicker\n value={this.state.initDate}\n onChange={this.onInitDatePickerChange}\n locale={this.getLocale()}\n clearIcon={null}\n calendarIcon={<FiCalendar />}\n className=\"dateWidth\"\n />\n );\n };\n\n private readonly renderEndDatePicker = (): JSX.Element => {\n return (\n <DatePicker\n value={this.state.endDate}\n onChange={this.onEndDatePickerChange}\n locale={this.getLocale()}\n clearIcon={null}\n calendarIcon={<FiCalendar />}\n className=\"dateWidth\"\n />\n );\n };\n\n getLocale = (): string => {\n switch (getLanguageLocalStorage()) {\n case 'es':\n return 'es-ES';\n case 'en':\n return 'en-UK';\n case 'va':\n return 'ca-ES';\n }\n }\n\n private readonly onInitDatePickerChange = (date: Date) => {\n if (date && date < this.state.endDate) {\n this.setState({\n initDate: date\n }, () => {\n const initDate: Date = cloneDeep(this.state.initDate);\n const newDate = new Date(initDate.setDate(initDate.getDate() - 1));\n this.onDateChange(newDate, true);\n });\n }\n };\n\n private readonly onEndDatePickerChange = (date: Date) => {\n if (this.state.initDate) {\n if (date && date > this.state.initDate) {\n this.updateEndDate(date);\n }\n } else {\n this.updateEndDate(date);\n }\n };\n\n private readonly updateEndDate = (date: Date) => {\n this.setState({\n endDate: date\n }, () => {\n const endDate: Date = cloneDeep(this.state.endDate);\n const newDate = new Date(endDate.setDate(endDate.getDate() + 1));\n this.onDateChange(newDate, false);\n });\n };\n}\n","import { actionsDefinition } from '../actionsDef';\nimport { AdvanceSearchResult } from '../../model/search';\n\nexport const clearSearchResultAction = () => (dispatch: any) => {\n dispatch(clearSearchResultActionCompleted());\n};\n\nconst clearSearchResultActionCompleted = () => ({\n type: actionsDefinition.classificationChart.CLEAR_SEARCH_RESULTS,\n payload: new AdvanceSearchResult()\n});\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { MainResultComponent } from './mainResult';\nimport { loadResultLoadedAction } from './../../actions/mainSearch/loadResultLoadedAction';\nimport { Filters } from '../../model/search';\nimport { clearSearchResultAction } from '../../actions/classificationChart/clearSearchResultAction';\nimport { searchTypeEnum } from '../../model/enum/searchType';\n\nconst mapStateToProps = (state: StateReducer) => ({\n filtersRequest: state.filtersRequest,\n advSearchResult: state.advSearchResult,\n simpleSearch: state.simpleSearch,\n language: state.language,\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getAdvancedSearch: (filtersRequest: Filters, searchTypeEnumUrl: searchTypeEnum) => dispatch(loadResultLoadedAction(filtersRequest, searchTypeEnumUrl)),\n clearSearchResult: () => dispatch(clearSearchResultAction())\n});\n\nexport const MainResultContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(MainResultComponent);\n\n","import { actionsDefinition } from '../actionsDef';\nimport { Filters, AdvanceSearchResult } from '../../model/search';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { searchTypeEnum } from '../../model/enum/searchType';\n\n\nexport const loadResultLoadedAction = (filtersRequest: Filters, searchTypeEnumUrl: searchTypeEnum) => (dispatch: any) => {\n\n searchMsalApi.GetAdvancedSearch(filtersRequest, searchTypeEnumUrl).then((result) => {\n dispatch(loadResultLoadedCompleted(result));\n });\n\n const loadResultLoadedCompleted = (result: AdvanceSearchResult) => ({\n type: actionsDefinition.searchResults.LOAD_RESULT_LOADED,\n payload: result,\n meta: {\n httpEnd: true\n }\n });\n};\n","export interface ContactRequest{\n sender: string;\n subject: string;\n body: string;\n}\n\nexport const createEmptyContactRequest = (): ContactRequest => {\n return {\n sender: '',\n subject: '',\n body:''\n };\n};\n","import { ContactRequest, createEmptyContactRequest } from '../../model/contact';\nimport React from 'react';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { ToastrType } from '../../common/Alerts/ToastrType';\nimport { FiPhone, FiAtSign } from 'react-icons/fi';\nimport './../../styles/contact/contact.scss';\nimport './../../styles/detailDoc/detailDoc.scss';\nimport { routeStrings } from '../../common/constants/routes';\nimport { RouteComponentProps } from 'react-router';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\ninterface IProps {\n sendContact: (contactRequest: ContactRequest) => void;\n language: string;\n}\n\ninterface IState {\n contactRequest: ContactRequest;\n formErrors: { email: string, subject: string, body: string };\n captchaChecked: boolean;\n policyChecked: boolean;\n}\n\nexport class Contact extends React.Component<IProps & RouteComponentProps, IState>{\n constructor(props) {\n super(props);\n this.state = {\n contactRequest: createEmptyContactRequest(),\n formErrors: { email: '', subject: '', body: '' },\n captchaChecked: false,\n policyChecked: false\n };\n }\n\n render() {\n const language = this.props.language;\n const emailError = this.state.formErrors.email ? <p className=\"inputError\">{this.state.formErrors.email}</p> : null;\n const subjectError = this.state.formErrors.subject ? <p className=\"inputError\">{this.state.formErrors.subject}</p> : null;\n const bodyError = this.state.formErrors.body ? <p className=\"inputError\">{this.state.formErrors.body}</p> : null;\n return (\n <div className=\"advancedSearch\">\n <div className=\"headerTitleContainer\">\n <h1 className=\"headerTitle headerTitleContact\">{getLanguage(language).CONTACT.TITLE }</h1>\n </div>\n <div className=\"contactContent\">\n <div className=\"container\"> \n <div className=\"contactInfoContainer\">\n <div className=\"contactInfo\">\n <div className=\"contactInfoElementContainer\">\n <div className=\"contactInfoElement contactInfoPhone\">\n <h3 className=\"contactInfoTitle\">{getLanguage(language).CONTACT.SUBTITLE}</h3>\n <a className=\"contactInfoLink autoridadPortuariaValencia\" href=\"tel:963939500\">\n <div className=\"contactInfoContent\">\n <FiPhone className=\"contactInfoContentIcon\"></FiPhone><span className=\"contactInfoContentText\">963 939 500</span>\n </div>\n <div className=\"extensions\">\n <span className=\"contactInfoContentText ext\">ext. 3132</span>\n <span className=\"contactInfoContentText\">ext. 3017</span>\n </div>\n </a>\n </div>\n </div>\n <p className=\"contactInfoText pad\">{getLanguage(language).CONTACT.SERVICE_HOURS}</p>\n <p className=\"contactInfoText pad\">{getLanguage(language).CONTACT.SERVICE_HOURS_EXT}</p>\n <a href=\"mailto:archivo@valenciaport.com\" >\n <div className=\"contactInfoContent\">\n < FiAtSign className=\"contactInfoContentIcon\"></ FiAtSign><span className=\"contactInfoContentText\"> {getLanguage(language).CONTACT.MAIL}</span>\n </div>\n </a>\n </div>\n </div> \n </div>\n </div>\n </div>\n );\n }\n\n handleEmailInputChange = (event: any) => {\n const currentText = event.target.value;\n const language = this.props.language;\n if (currentText) {\n const regex = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\n if (regex.test(currentText)) {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n sender: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n email: ''\n }\n });\n } else {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n sender: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n email: getLanguage(language).ERRORS.CONTACT_ERROR_FORMAT_MAIL\n }\n });\n }\n } else {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n sender: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n email: getLanguage(language).ERRORS.CONTACT_ERROR_VOID_MAIL\n }\n });\n }\n };\n\n handleSubjectInputChange = (event: any) => {\n const currentText = event.target.value;\n const language = this.props.language;\n if (currentText) {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n subject: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n subject: ''\n }\n });\n } else {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n subject: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n subject: getLanguage(language).ERRORS.CONTACT_ERROR_VOID_SUBJECT\n }\n });\n }\n };\n\n handleBodyInputChange = (event: any) => {\n const currentText = event.target.value;\n const language = this.props.language;\n if (currentText) {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n body: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n body: ''\n }\n });\n } else {\n this.setState({\n contactRequest: {\n ...this.state.contactRequest,\n body: currentText\n },\n formErrors: {\n ...this.state.formErrors,\n body: getLanguage(language).ERRORS.CONTACT_ERROR_VOID_BODY\n }\n });\n }\n };\n\n handleinputPolicyChange = () => {\n this.setState({\n policyChecked: true\n });\n };\n\n handleContactClick = () => {\n const regex = new RegExp(/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/);\n const language = this.props.language;\n if (this.state.contactRequest.body && this.state.contactRequest.subject && this.state.contactRequest.body && regex.test(this.state.contactRequest.sender)) {\n this.props.sendContact(this.state.contactRequest);\n this.setState({\n contactRequest: createEmptyContactRequest(),\n formErrors: { email: '', subject: '', body: '' },\n });\n this.props.history.push(getLanguageLocalStorage().concat(routeStrings.search));\n } else {\n Alerts.show( getLanguage(language).ERRORS.CONTACT_SEND_REQUEST, ToastrType.Error);\n }\n };\n\n handleCaptchaChange = () => {\n this.setState({\n captchaChecked: true\n });\n };\n}\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { ContactRequest } from '../../model/contact';\nimport { Contact } from './Contact';\nimport { sendContactAction } from '../../actions/contact/sendContactAction';\n\nconst mapStateToProps = (state: StateReducer) => ({\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n sendContact: (contactRequest: ContactRequest) => dispatch(sendContactAction(contactRequest)),\n});\n\nexport const ContactContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(Contact);\n","import { ContactRequest } from './../../model/contact/ContactRequest';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { ToastrType } from '../../common/Alerts/ToastrType';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport const sendContactAction = (contactRequest: ContactRequest) => () => {\n searchMsalApi.PostContactEmail(contactRequest).then((response) => {\n if (response) {\n Alerts.show((getLanguage(getLanguageLocalStorage()).ERRORS.CONTACT_SEND_REQUEST_OK), ToastrType.Info);\n } else {\n Alerts.show((getLanguage(getLanguageLocalStorage()).ERRORS.CONTACT_SEND_REQUEST), ToastrType.Info);\n }\n });\n};\n","import * as React from 'react';\nimport './../../../styles/mainSearch/mainSearch.scss';\nimport { IDocumentarySeries } from '../../../model/documentTypes';\nimport { FiFolder } from 'react-icons/fi';\n\nexport interface IFacetLastComponentComponentProps {\n item: IDocumentarySeries;\n active: boolean;\n isLastSelected: boolean;\n onClick: (lastComponentId: string) => void;\n filters: (filter: string) => void;\n onClickLast: (active: boolean) => void;\n}\n\nexport class FacetLastComponent extends React.Component<IFacetLastComponentComponentProps> {\n\n private readonly onClick = (code: string) => {\n this.props.filters(code);\n this.props.onClick(code);\n this.props.onClickLast(true);\n };\n\n public render() {\n const active = this.props.active && this.props.isLastSelected ? 'active' : '';\n\n return (\n <li className=\"facetListElement\">\n <div className={`facetListClickable ${active}`} onClick={() => this.onClick(this.props.item.code)}>\n <div className=\"facetListElementIcon\"><FiFolder /></div>\n <div className=\"facetListElementText\">{this.props.item.description}</div>\n </div>\n </li>\n );\n }\n}\n","import * as React from 'react';\nimport { IDocumentSubType } from '../../../model/documentTypes/documentSubTypes';\nimport './../../../styles/mainSearch/mainSearch.scss';\nimport { IDocumentarySeries } from '../../../model/documentTypes';\nimport { FacetLastComponent } from '../facets/facetLastComponent';\nimport { FiFolderPlus } from 'react-icons/fi';\n\nexport interface IFacetSecondComponentProps {\n item: IDocumentSubType;\n active: boolean;\n secondComponentId: string;\n lastComponentId: string;\n isLastSelected: boolean;\n filters: (filter: string) => void;\n onClick: (secondComponentId: string, lastComponentId: string) => void;\n onClickLast: (active: boolean) => void;\n}\n\nexport interface IFacetSecondComponentState {\n secondBox: boolean;\n}\n\nexport class FacetSecondComponent extends React.Component<IFacetSecondComponentProps, IFacetSecondComponentState> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n secondBox: false\n };\n }\n\n private readonly renderLastBox = (): JSX.Element[] => {\n const elements: JSX.Element[] = [];\n if (this.state.secondBox) {\n if (this.props.item.documentarySeries !== undefined) {\n this.props.item.documentarySeries.forEach((item: IDocumentarySeries, facetLast) => {\n elements.push(\n <FacetLastComponent\n key={facetLast}\n onClick={this.onLastComponentClick}\n filters={this.props.filters}\n item={item}\n active={this.props.lastComponentId === item.code}\n onClickLast={this.props.onClickLast}\n isLastSelected={this.props.isLastSelected}\n />\n );\n });\n }\n\n }\n return elements;\n };\n\n private readonly ChangeStateSecondBox = () => {\n if (this.props.item.documentarySeries !== undefined) {\n this.setState({\n secondBox: !this.state.secondBox,\n });\n }\n this.props.onClick(this.props.item.code, this.props.lastComponentId);\n this.props.onClickLast(false);\n };\n\n public render() {\n const active = this.props.active && this.props.isLastSelected ? 'active' : '';\n\n return (\n <li className=\"facetListElement\">\n <div className={`facetListClickable ${active} `} onClick={() => this.ChangeStateSecondBox()}>\n <div className=\"facetListElementIcon\"><FiFolderPlus /></div>\n <div className=\"facetListElementText\">{this.props.item.description}</div>\n </div>\n <ul className=\"facetListElementInsideList\">{this.renderLastBox().map(item => { return item; })}</ul>\n </li>\n );\n }\n\n onLastComponentClick = (lastComponentId: string) => {\n this.props.onClick(this.props.item.code, lastComponentId);\n this.props.onClickLast(false);\n };\n}\n","import * as React from 'react';\nimport { IDocumentType } from '../../../model/documentTypes';\nimport { IDocumentSubType } from '../../../model/documentTypes/documentSubTypes';\nimport './../../../styles/mainSearch/mainSearch.scss';\nimport { FacetSecondComponent } from '../facets/facetSecondComponent';\nimport { FiFolderPlus } from 'react-icons/fi';\n\nexport interface IFacetComponentProps {\n item: IDocumentType;\n active: boolean;\n firstComponentId: string;\n secondComponentId: string;\n lastComponentId: string;\n isLastSelected: boolean;\n filters: (filter: string) => void;\n onClick: (firstComponentId: string, secondComponentId: string, lastComponentId: string) => void;\n onClickLast: (active: boolean) => void;\n}\n\nexport interface IFacetComponentState {\n firstBox: boolean;\n}\n\nexport class FacetComponent extends React.Component<IFacetComponentProps, IFacetComponentState> {\n\n constructor(props: any) {\n super(props);\n this.state = {\n firstBox: false\n };\n }\n\n componentDidUpdate() {\n\n }\n\n private readonly renderSecondBox = (): JSX.Element[] => {\n const elements: JSX.Element[] = [];\n if (this.state.firstBox && this.props.active) {\n this.props.item.documentSubType.forEach((item: IDocumentSubType, facetSecond) => {\n if (item.documentarySeries !== undefined && item.documentarySeries.length > 0) {\n elements.push(\n < FacetSecondComponent\n key={facetSecond}\n item={item}\n filters={this.props.filters}\n onClick={(secondComponentId: string, lastComponentId: string) => {\n this.onSecondComponentClick(secondComponentId, lastComponentId);\n }}\n active={this.props.secondComponentId === item.code}\n lastComponentId={this.props.lastComponentId}\n secondComponentId={this.props.secondComponentId}\n onClickLast={this.props.onClickLast}\n isLastSelected={this.props.isLastSelected}\n />\n );\n }\n });\n }\n\n return elements;\n };\n\n private readonly ChangeStateFirstBox = () => {\n if (this.props.item.documentSubType !== undefined) {\n this.setState({\n firstBox: !this.state.firstBox,\n });\n }\n this.props.onClick(this.props.item.code, this.props.secondComponentId, this.props.lastComponentId);\n this.props.onClickLast(false);\n };\n\n public render() {\n const active = this.props.active && this.props.isLastSelected ? 'active' : '';\n const activeFolder = this.props.active && this.props.isLastSelected ? 'activeFolder' : '';\n\n return (\n <li className=\"facetListElement\">\n <div className={`facetListClickable ${active} `} onClick={() => this.ChangeStateFirstBox()}>\n <div className={`facetListElementIcon ${active} ${activeFolder}`}><FiFolderPlus /></div>\n <div className=\"facetListElementText\">{this.props.item.description}</div>\n </div>\n <ul className=\"facetListElementInsideList\">{this.renderSecondBox().map(item => { return item; })}</ul>\n </li>\n );\n }\n\n onSecondComponentClick = (secondComponentId: string, lastComponentId: string) => {\n this.props.onClick(this.props.item.code, secondComponentId, lastComponentId);\n this.props.onClickLast(false);\n };\n}\n","\nimport styled, { keyframes } from 'styled-components';\n\nconst spin = keyframes`\n 0% {\n -webkit-transform: rotate(0deg);\n -ms-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n -ms-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n`;\n\nexport const LoadingContainerClassificationTable = styled.div`\n#preloader {\n position: relative;\n padding-top: 30%;\n}\n\n#loader {\n display: block;\n position: relative;\n left: 50%;\n top: 50%;\n width: 150px;\n height: 150px;\n margin: -75px 0 0 -75px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #88B04B;\n -webkit-animation: ${spin} 2s linear infinite;\n animation: ${spin} 2s linear infinite;\n}\n\n#loader:before {\n content: \"\";\n position: absolute;\n top: 5px;\n left: 5px;\n right: 5px;\n bottom: 5px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #9fe384;\n -webkit-animation: ${spin} 3s linear infinite;\n animation: ${spin} 3s linear infinite;\n}\n\n#loader:after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: 15px;\n right: 15px;\n bottom: 15px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #DFF0D8;\n -webkit-animation: ${spin} 1.5s linear infinite;\n animation: ${spin} 1.5s linear infinite;\n}\n`;\n\nexport const LoadingContainer = styled.div`\n #preloader {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n \n #loader {\n display: block;\n position: relative;\n left: 50%;\n top: 50%;\n width: 150px;\n height: 150px;\n margin: -75px 0 0 -75px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #88B04B;\n -webkit-animation: ${spin} 2s linear infinite;\n animation: ${spin} 2s linear infinite;\n }\n\n #loader:before {\n content: \"\";\n position: absolute;\n top: 5px;\n left: 5px;\n right: 5px;\n bottom: 5px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #9fe384;\n -webkit-animation: ${spin} 3s linear infinite;\n animation: ${spin} 3s linear infinite;\n }\n\n #loader:after {\n content: \"\";\n position: absolute;\n top: 15px;\n left: 15px;\n right: 15px;\n bottom: 15px;\n border-radius: 50%;\n border: 3px solid transparent;\n border-top-color: #DFF0D8;\n -webkit-animation: ${spin} 1.5s linear infinite;\n animation: ${spin} 1.5s linear infinite;\n }\n`;\n\n","import * as React from 'react';\nimport { LoadingContainerClassificationTable } from '../../../styles/loading/loading';\n\nexport class LoadingComponentClassificationTable extends React.Component {\n\n public render() {\n return (\n <LoadingContainerClassificationTable>\n <div id=\"preloader\">\n <div id=\"loader\"></div>\n </div>\n </LoadingContainerClassificationTable>\n );\n }\n}\n\n","import React from 'react';\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport { AdvanceSearchResult } from '../../model/search/SearchResult';\nimport { Filters, FilterExpression, OperatorType, LogicOperatorType, Connects, ConnectRequest, GroupRequest } from '../../model/search';\nimport { DocumentResultListComponent } from '../../common/components/documentResulList/documentResultList';\nimport './../../styles/clasification/classificationChart.scss';\nimport './../../styles/mainResult/mainResult.scss';\nimport './../../styles/detailDoc/detailDoc.scss';\nimport { PagerComponent } from '../../common/components/pager/pagerComponent';\nimport { IDocumentType } from '../../model/documentTypes';\nimport { FacetComponent } from '../../common/components/facets/facetComponent';\nimport { FiFilter, FiX, FiGrid, FiList } from 'react-icons/fi';\nimport { Toggle } from 'office-ui-fabric-react';\nimport { FilesResultListComponent } from '../../common/components/filesResultsList/filesResultList';\nimport { orderTypeEnum } from '../../model/enum/orderType';\nimport { renderList } from '../../common/utils/componentUtils/renderList';\nimport { renderShowImages } from '../../common/utils/componentUtils/renderShowImages';\nimport { LoadingComponentClassificationTable } from '../../common/components/loadingComponent/loadingClassificationTable';\nimport { getLanguage } from '../../translations/language';\n\nexport interface IClassificationChartProps {\n advSearchResult: AdvanceSearchResult;\n classificationChart: IDocumentType[];\n loading: boolean;\n getAdvancedSearch: (filtersRequest: Filters) => void;\n getclassificationChart: () => void;\n\n lastComponentId: string;\n secondComponentId: string;\n firstComponentId: string;\n filtersRequest: Filters;\n language: string;\n}\n\nexport interface IClassificationChartState {\n initFiltersRequest?: Filters;\n initFilters?: number;\n selectedFilter: boolean;\n page: number;\n\n firstComponentId: string;\n secondComponentId: string;\n lastComponentId: string;\n\n isSelected: boolean;\n filterText: string;\n filterPage: number;\n pageBlock: number;\n\n showFilter: boolean;\n showList: boolean;\n showImages: boolean;\n files: boolean;\n\n breadCrumb: JSX.Element;\n filtersRequest: Filters;\n\n searchOrder: orderTypeEnum;\n}\n\nexport class ClassificationChartComponent extends React.Component<IClassificationChartProps, IClassificationChartState> {\n constructor(props: any) {\n super(props);\n this.onPageChange = this.onPageChange.bind(this);\n this.undefined = this.undefined.bind(this);\n this.state = {\n page: 0,\n selectedFilter: false,\n\n firstComponentId: '',\n secondComponentId: '',\n lastComponentId: '',\n filtersRequest: this.props.filtersRequest,\n\n isSelected: false,\n filterText: '',\n filterPage: 0,\n pageBlock: 0,\n\n showFilter: false,\n showList: false,\n showImages: false,\n files: true,\n\n searchOrder: orderTypeEnum.Ascending,\n\n breadCrumb: (<></>),\n };\n }\n handleCheck(e) {\n alert(e.target);\n }\n\n componentDidMount() {\n this.props.getclassificationChart();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.filterText !== prevState.filterText || this.state.filterPage !== prevState.filterPage || this.state.searchOrder !== prevState.searchOrder) {\n this.searchDataPage(this.state.filterText, this.state.filterPage, this.state.searchOrder);\n }\n\n if (this.state.isSelected && this.state.lastComponentId !== prevState.lastComponentId) {\n this.setState({\n breadCrumb: this.breadCrumb()\n });\n }\n }\n\n private readonly searchDataPage = (filter: string, page: number, searchOrder: string) => {\n const exp: FilterExpression = new FilterExpression('caseFiles/documentalSerie', OperatorType.Co, filter);\n const connect = new Connects(exp, LogicOperatorType.or);\n const connectReq = new ConnectRequest();\n connectReq.condition.push(connect);\n const groupReq = new GroupRequest();\n groupReq.group.push(connectReq);\n const filters = new Filters();\n filters.page = page;\n filters.filters = groupReq;\n filters.orderType = searchOrder;\n this.props.getAdvancedSearch(filters);\n };\n\n private readonly searchByDocType = (filter: string) => {\n this.setState({\n filterText: filter,\n filterPage: 0\n });\n };\n\n private undefined() {\n return (this.props.classificationChart.map((item: IDocumentType, first) => {\n if (this.shouldRenderFacet(item)) {\n return (<FacetComponent\n key={first}\n item={item}\n filters={this.searchByDocType}\n onClick={this.firstComponentClick}\n active={this.state.firstComponentId === item.code}\n firstComponentId={this.state.firstComponentId}\n secondComponentId={this.state.secondComponentId}\n lastComponentId={this.state.lastComponentId}\n isLastSelected={this.state.isSelected}\n onClickLast={this.lastClicked}\n />);\n }\n else {\n return null;\n }\n }));\n }\n\n private readonly firstComponentClick = (firstComponentIdCla: string, secondComponentIdCla: string, lastComponentIdCla: string) => {\n this.setState({\n selectedFilter: true,\n firstComponentId: firstComponentIdCla,\n secondComponentId: secondComponentIdCla,\n lastComponentId: lastComponentIdCla,\n });\n };\n\n private readonly lastClicked = (active: boolean) => {\n this.setState({\n isSelected: active\n });\n };\n\n private readonly breadCrumb = () => {\n const labelFirst = this.props.classificationChart.find(item => item.code === this.state.firstComponentId);\n let labelSecond;\n let labelLast;\n if (labelFirst !== undefined) {\n labelSecond = labelFirst.documentSubType.find(item => item.code === this.state.secondComponentId);\n if (labelSecond !== undefined) {\n labelLast = labelSecond.documentarySeries.find(item => item.code === this.state.lastComponentId);\n }\n }\n let labels: JSX.Element;\n const language = this.props.language;\n if (labelFirst && labelSecond && labelLast) {\n labels = (\n <div>\n <label className=\"resultsInfo\" > {labelFirst.description} {getLanguage(language).RESULTS.SEPARATOR} {labelSecond.description} {getLanguage(language).RESULTS.SEPARATOR} {labelLast.description} </label>\n </div>);\n }\n return (\n <div>\n {labels}\n </div>\n );\n };\n\n private readonly renderTotalResults = () => {\n const language = this.props.language\n if (this.props.advSearchResult.docs.length !== 0) {\n return (\n <div className=\"resultsInfo\">\n <label > {this.props.advSearchResult.docs.length} {getLanguage(language).RESULTS.X_RESULTS_MIDDLE} {this.props.advSearchResult.total} {getLanguage(language).RESULTS.X_RESULTS}</label >\n {this.state.breadCrumb}\n </div>\n );\n } else {\n return (<></>);\n }\n };\n\n private readonly renderFilesResultsOrMessage = () => {\n const language = this.props.language;\n\n if (this.props.advSearchResult.docs.length > 0) {\n return this.renderFilesResults();\n } else {\n if (this.props.advSearchResult.docs.length !== 0) {\n return (\n <div>\n {this.renderFilesResults()}\n </div>\n );\n } else {\n if (this.state.isSelected) {\n return (\n < div >\n {this.state.breadCrumb}\n <label>{getLanguage(language).RESULTS.NOT_FOUND}</label></div >\n );\n } else {\n return (\n <div className=\"metaDataContainer\">\n <label >{getLanguage(language).CLASSIFICATION_TABLE.STRUCTURE}</label>\n <div className=\"metaDataContainerElement textInfo\">\n <span className=\"spanColor\"> {getLanguage(language).CLASSIFICATION_TABLE.FUNCTIONS}</span>\n </div>\n <div className=\"metaDataContainerElement\">\n <label >{getLanguage(language).CLASSIFICATION_TABLE.TEXT_SELECTED}</label>\n </div>\n </div>\n );\n }\n }\n }\n };\n\n renderSpinnerOrResult = () => {\n if (this.props.loading) {\n return (\n <div className=\"loadingClassificationTable\">\n <LoadingComponentClassificationTable />\n </div>\n );\n } else {\n return this.renderFilesResultsOrMessage();\n }\n }\n\n private readonly showList = () => {\n this.setState({\n showList: !this.state.showList,\n showImages: false\n });\n };\n\n private readonly toggleImages = () => {\n if (this.state.showList !== true) {\n return (renderShowImages(this.state.files, this.state.showFilter, this.state.showImages, this.changeShowImages));\n } else { return (<div></div>); }\n };\n\n changeShowImages = (checked: boolean) => {\n this.setState({ showImages: checked });\n };\n\n sortFilesResult = (n1, n2) => {\n if (n1.initDate > n2.initDate) {\n return this.state.searchOrder === orderTypeEnum.Ascending ? 1 : -1;\n }\n if (n1.initDate < n2.initDate) {\n return this.state.searchOrder === orderTypeEnum.Ascending ? -1 : 1;\n }\n return 0;\n };\n\n renderResultHeaderToggles = (files: boolean) => {\n const seeText = files ? 'Ver expedientes' : 'Ver documentos';\n const language = this.props.language;\n\n return (<div className=\"resultsHeaderToggles\">\n {this.toggleImages()}\n <div className=\"resultsHeaderToggle documentFileToggle\">\n <Toggle\n checked={this.state.searchOrder === orderTypeEnum.Descending}\n onChange={(ev: React.MouseEvent<HTMLElement>, checked: boolean) => {\n this.setState({\n searchOrder: checked ? orderTypeEnum.Descending : orderTypeEnum.Ascending\n });\n this.onPageChange(0, 0);\n }}\n style={{ backgroundColor: this.state.searchOrder === orderTypeEnum.Descending ? '#88B04B' : '#f6f6f6' }}\n />\n <span className=\"titleFacets\">{getLanguage(language).RESULTS.FILES.RESULTS_HEADER_TOGGLES}</span>\n </div>\n </div>\n );\n };\n\n private readonly renderFilesResults = () => {\n const renderListComponent = renderList(this.state.showList, this.showList);\n const orderedFileResult = this.props.advSearchResult.files.sort(this.sortFilesResult);\n const language = this.props.language;\n\n if (this.state.files === true) {\n return (\n <div>\n <div className=\"resultsHeader\">\n <div className=\"resultsHeaderText\">\n <label className=\"resultsInfo\">{getLanguage(language).RESULTS.FILES.RESULTS_FILES_CLASSIFICATION}</label>\n <h2 className=\"titleResultDocuments\">{getLanguage(language).RESULTS.FILES.RESULTS_FILES}</h2>\n </div>\n <div className=\"resultsViewModeOptions\">\n {renderListComponent}\n </div>\n {this.renderResultHeaderToggles(this.state.files)}\n </div>\n <FilesResultListComponent\n showImage={false}\n filesResults={orderedFileResult}\n showList={this.state.showList}\n />\n </div>\n );\n } else {\n return (\n <div>\n <div className=\"resultsHeader\">\n <div className=\"resultsHeaderText\">\n <div className=\"resultsInfo\">\n <label > {this.props.advSearchResult.docs.length} {getLanguage(language).RESULTS.X_RESULTS_MIDDLE} {this.props.advSearchResult.total} {getLanguage(language).RESULTS.X_RESULTS}</label >\n {this.state.breadCrumb}\n </div>\n <h2 className=\"titleResultDocuments\">{getLanguage(language).RESULTS.DOCS.RESULTS_DOCS}</h2>\n </div>\n <div className=\"resultsViewModeOptions\">\n {renderListComponent}\n </div>\n {this.renderResultHeaderToggles(this.state.files)}\n </div>\n <DocumentResultListComponent\n showImage={this.state.showImages}\n documentsResults={this.props.advSearchResult.docs}\n showList={this.state.showList}\n />\n <PagerComponent\n changePaging={this.onPageChange}\n pageNumber={this.state.filtersRequest.page}\n pageBlock={this.state.pageBlock}\n totalItems={this.props.advSearchResult.total}\n language={this.props.language}\n />\n </div>\n );\n }\n };\n\n private readonly showMenuFilters = () => {\n this.setState({\n showFilter: !this.state.showFilter\n });\n };\n\n public render() {\n const showFilterClass = this.state.showFilter ? 'showFilters' : '';\n const language = this.props.language;\n return (\n <div className=\"mainContainer\">\n <div className=\"filterToggle\">\n <button className={`buttonFilter ${showFilterClass} `} onClick={() => this.showMenuFilters()}><FiFilter className=\"funnelIcon\" /><FiX className=\"closeIcon\" /></button>\n </div>\n <div className=\"taxonomyDocumentsSection \">\n <div>\n <div className={`contentWithSidebar ${showFilterClass} `}>\n <div className=\"filterContainer\">\n <h3 className=\"titleFacets\">{getLanguage(language).CLASSIFICATION_TABLE.TITLE}</h3>\n <div className=\"facets\">\n <div className=\"infoResult\">\n <ul className=\"facetList\">\n {this.undefined()}\n </ul>\n </div>\n </div>\n </div>\n <div className=\"resultContainer\">\n <div className=\"container\">\n {this.renderSpinnerOrResult()}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n private onPageChange(pageNum: number, pageBlockParam: number): any {\n this.setState({\n filtersRequest: {\n ...this.state.filtersRequest,\n page: pageNum\n },\n filterPage: pageNum,\n pageBlock: pageBlockParam\n });\n }\n\n shouldRenderFacet = (item: IDocumentType): boolean => {\n let shouldRender = false;\n if (item.documentSubType !== undefined && item.documentSubType.length > 0) {\n const checkSeries = item.documentSubType.map(subType => {\n if (subType.documentarySeries !== undefined && subType.documentarySeries.length > 0) {\n return true;\n } else {\n return false;\n }\n });\n if (checkSeries.every(x => x === false)) {\n shouldRender = false;\n } else {\n shouldRender = true;\n }\n } else {\n shouldRender = false;\n }\n return shouldRender;\n };\n}\n","import { searchMsalApi } from './../../api/search/searchMsalApi';\nimport { Filters, AdvanceSearchResult } from './../../model/search/';\nimport { actionsDefinition } from './../actionsDef';\n\nexport const loadClassificationTableAction = (filtersRequest: Filters) => (dispatch: any) => {\n\n dispatch(classificationTableLoading(true));\n searchMsalApi.GetClassificationTable(filtersRequest).then((result) => {\n dispatch(classificationTableLoaded(result));\n }).finally(() => {\n dispatch(classificationTableLoading(false));\n });\n\n}\n\nconst classificationTableLoaded = (result: AdvanceSearchResult) => ({\n type: actionsDefinition.classificationTable.COMPLETED,\n payload: result,\n meta: {\n httpEnd: true\n }\n});\n\nconst classificationTableLoading = (loading: boolean) => ({\n type: actionsDefinition.classificationTable.LOADING,\n payload: loading\n});\n","import { StateReducer } from '../../reducers';\nimport { connect } from 'react-redux';\nimport { ClassificationChartComponent } from './classificactionChart';\nimport { loadClassificationChartAction } from '../../actions/classificationChart/loadClassificationChart';\nimport { loadClassificationTableAction } from './../../actions/mainSearch/loadClassificationTableAction';\nimport { Filters } from '../../model/search';\n\nconst mapStateToProps = (state: StateReducer) => ({\n filtersRequest: state.filtersRequest,\n advSearchResult: state.classificationTable.searchResult,\n loading: state.classificationTable.loading,\n classificationChart: state.classificationChart,\n filtersChart: state.filtersRequest,\n language: state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getclassificationChart: () => dispatch(loadClassificationChartAction()),\n getAdvancedSearch: (filtersRequest: Filters) => dispatch(loadClassificationTableAction(filtersRequest)),\n});\n\nexport const ClassificationChartContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(ClassificationChartComponent);\n","import { actionsDefinition } from '../actionsDef';\nimport { IDocumentType } from '../../model/documentTypes';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\n\nexport const loadClassificationChartAction = () => (dispatch: any) => {\n searchMsalApi.GetClassificatonChart().then((result) => {\n dispatch(loadAreaCompleted(result));\n });\n\n const loadAreaCompleted = (result: IDocumentType[]) => ({\n type: actionsDefinition.classificationChart.LOAD_CLASSIFICATION_CHART,\n payload: result,\n meta: {\n httpEnd: true\n }\n });\n};\n","import { actionsDefinition } from './../actionsDef';\nimport { SearchFilters } from './../../model/search/searchFilters';\nimport { searchMsalApi } from '../../api/search/searchMsalApi';\n\nexport const loadSearchFilters = () => (dispatch: any) => {\n searchMsalApi.GetSearchFilters().then((response) => {\n dispatch(loadSearchFiltersCompleted(response));\n });\n};\n\nexport const clearSearchFilters = () => (dispatch: any) => {\n dispatch(clearSearchFiltersCompleted());\n};\n\nconst loadSearchFiltersCompleted = (searchFilters: SearchFilters) => ({\n type: actionsDefinition.searchFilters.GET_FILTERS,\n payload: searchFilters,\n meta: {\n httpEnd: true\n }\n});\n\nconst clearSearchFiltersCompleted = () => ({\n type: actionsDefinition.searchFilters.CLEAR_FILTERS\n});\n","import React from 'react';\nimport { FilterExpression } from '../../model/search';\nimport { SearchFilters } from '../../model/search/searchFilters';\nimport { FiX, FiCalendar } from 'react-icons/fi';\nimport DatePicker from 'react-date-picker';\nimport moment from 'moment';\nimport { Condition } from '../../model/search/condition';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\ninterface IProps {\n searchFilters: SearchFilters;\n filterAdded: boolean;\n onAddFilterClick: () => void;\n language: string;\n\n expression?: FilterExpression;\n leftJoin?: boolean;\n rightJoin?: boolean;\n onChangeFilter?: (selectedField: string, selectedCondition: string, value: string) => void;\n removeFilter?: () => void;\n}\n\ninterface IState {\n initDate: Date;\n}\n\nexport class FilterExpressionComponent extends React.Component<IProps, IState>{\n constructor(props) {\n super(props);\n this.state = {\n initDate: new Date()\n };\n }\n\n componentDidMount() {\n if (this.props.expression) {\n this.assignDateValue();\n }\n }\n\n render() {\n if (this.props.filterAdded) {\n return (\n <>\n {this.generateFilterComponent()}\n </>\n );\n } else {\n return (\n <>\n {this.generateEmptyFilterComponent()}\n </>\n );\n }\n }\n\n generateFilterComponent = (): JSX.Element => {\n const joinClassName = this._getJoinClassName();\n\n return (\n <div className={`advancedFilterContainer ${joinClassName}`}>\n <div className=\"advancedFilterDelete\" onClick={() => this.props.removeFilter()}><FiX /></div>\n {this.generateFieldSelect()}\n {this.generateConditionsSelect()}\n <div className=\"advancedFilterInput\">\n {this.generateInputOrDatePicker()}\n </div>\n </div>\n );\n };\n\n generateFieldSelect = (): JSX.Element => {\n return (\n <div className=\"filterField\">\n <select className=\"selectField\" onChange={this.handleFieldSelectChanged}>\n {this.props.searchFilters.filters.map((filter, filterOptionIndex) => {\n const isSelected = this.props.expression.field === filter.field;\n return (\n <option selected={isSelected} value={filter.field} key={`filterOptionIndex_${filterOptionIndex}`}>{filter.display}</option>\n );\n })}\n </select>\n </div>\n );\n };\n\n generateConditionsSelect = (): JSX.Element => {\n const currentFilter = this.props.searchFilters.filters.find(x => x.field === this.props.expression.field);\n return (\n <div className=\"filterCondition\">\n <select className=\"selectCondition\" onChange={this.handleConditionSelectChanged}>\n {currentFilter.conditions.map((condition: Condition, conditionOptionIndex) => {\n const isSelected = this.props.expression.operator === condition.id;\n return (\n <option selected={isSelected} value={condition.id} key={`conditionOptionIndex_${conditionOptionIndex}`}>{condition.value}</option>\n );\n })}\n </select>\n </div>\n );\n };\n\n generateInputOrDatePicker = (): JSX.Element => {\n const language = this.props.language;\n if (this.props.expression.field === 'initDate') {\n return (\n <DatePicker\n value={this.state.initDate}\n onChange={this.onInitDatePickerChange}\n locale={this.getLocale()}\n clearIcon={null}\n calendarIcon={<FiCalendar />}\n />\n );\n } else {\n return (<input placeholder={ getLanguage(language).ADVANCED_SEARCH.ADD_VALUE } type=\"text\" value={this.getFilterValue()} onChange={this.handleFilterValueChanged} />);\n }\n };\n\n getLocale = (): string => {\n switch (getLanguageLocalStorage()) {\n case 'es':\n return 'es-ES';\n case 'en':\n return 'en-UK';\n case 'va':\n return 'ca-ES';\n }\n }\n\n getFilterValue = (): string => {\n return this.props.expression.value;\n };\n\n generateEmptyFilterComponent = (): JSX.Element => {\n const language = this.props.language;\n return (\n <div className=\"addFilterContainer\" onClick={() => this.props.onAddFilterClick()}>\n <div className=\"addSymbol\">+</div>\n <div className=\"addFilterText\">{ getLanguage(language).ADVANCED_SEARCH.ADD_NEW }</div>\n </div>\n );\n };\n\n _getJoinClassName = (): string => {\n if (this.props.leftJoin && this.props.rightJoin) {\n return 'rightJoin leftJoin';\n }\n if (this.props.rightJoin) {\n return 'rightJoin';\n }\n if (this.props.leftJoin) {\n return 'leftJoin';\n }\n return '';\n };\n\n handleFieldSelectChanged = (event) => {\n const selectedField = event.target.value;\n const selectedCondition = this.props.searchFilters.filters.find(filter => filter.field === selectedField).conditions[0];\n this.props.onChangeFilter(selectedField, selectedCondition.id, '');\n };\n\n handleConditionSelectChanged = (event) => {\n const value = this.props.expression.field === 'initDate' ? moment(this.state.initDate).utc().format('YYYY-MM-DD') : '';\n this.props.onChangeFilter(this.props.expression.field, event.target.value, value);\n };\n\n handleFilterValueChanged = (event) => {\n this.props.onChangeFilter(this.props.expression.field, this.props.expression.operator, event.target.value);\n };\n\n onInitDatePickerChange = (date: Date) => {\n this.setState({\n initDate: date\n }, () => this.props.onChangeFilter(this.props.expression.field, this.props.expression.operator, moment(this.state.initDate).utc().format('YYYY-MM-DD')));\n };\n\n assignDateValue = () => {\n if (this.props.expression.field === 'initDate') {\n let date = this.props.expression.value;\n if (date === '') {\n date = moment(new Date()).utc().format('YYYY-MM-DD'); \n }\n \n this.setState({\n initDate: new Date(date)\n }, () => this.onInitDatePickerChange(this.state.initDate));\n }\n };\n}\n","import React from 'react';\nimport { LogicOperatorType, Connects } from '../../model/search';\nimport { FilterExpressionComponent } from './FilterExpresionComponent';\nimport { SearchFilters } from '../../model/search/searchFilters';\nimport Swiper from 'react-id-swiper';\nimport 'react-id-swiper/lib/styles/css/swiper.css';\n\ninterface IProps {\n groupConditions: Connects[];\n searchFilters: SearchFilters;\n groupIndex: number;\n filterAdded: boolean;\n leftJoin: boolean;\n rightJoin: boolean;\n onAddFilterClick: () => void;\n onChangeFilter: (filterIndex: number, selectedField: string, selectedCondition: string, value: string) => void;\n onChangeFilterOperator: (operatorType: LogicOperatorType, filterIndex: number) => void;\n removeFilter: (filterIndex: number) => void;\n language: string;\n}\n\nexport class GroupFilter extends React.Component<IProps>{\n\n render() {\n const joinClassName = this._getJoinClassName();\n return (\n <div className={`groupFilter ${joinClassName}`}>\n {this.props.filterAdded ?\n this.generateFilterExpressionComponents()\n :\n <FilterExpressionComponent\n searchFilters={this.props.searchFilters}\n filterAdded={false}\n onAddFilterClick={this.props.onAddFilterClick}\n language={this.props.language}\n />\n }\n </div>\n );\n }\n\n _getJoinClassName = (): string => {\n if (this.props.rightJoin) {\n return 'rightJoin';\n } else {\n if (this.props.leftJoin) {\n return 'leftJoin';\n }\n }\n return '';\n };\n\n generateFilterExpressionComponents = (): JSX.Element => {\n const params = {\n direction: 'horizontal',\n slidesPerView: 'auto',\n grabCursor: true,\n freeMode: true,\n scrollbar: {\n el: '.swiper-scrollbar'\n },\n mousewheel: false\n };\n\n const slides: JSX.Element[] = this.generateSlides();\n\n return (\n <Swiper\n {...params}\n shouldSwiperUpdate={true}\n >\n {slides.map(slide => {\n return slide;\n })}\n </Swiper>\n );\n };\n\n generateSlides = (): JSX.Element[] => {\n let prevLogicOperator: LogicOperatorType;\n const slides: JSX.Element[] = [];\n\n this.props.groupConditions.forEach((condition, filterIndex) => {\n const filterElement: JSX.Element = (\n <FilterExpressionComponent\n key={`filterIndex_${filterIndex}`}\n searchFilters={this.props.searchFilters}\n expression={condition.exp}\n onAddFilterClick={this.props.onAddFilterClick}\n filterAdded={this.props.filterAdded}\n onChangeFilter={\n (selectedField: string, selectedCondition: string, value: string) =>\n this.onChangeFilter(filterIndex, selectedField, selectedCondition, value)\n }\n removeFilter={() => this.props.removeFilter(filterIndex)}\n rightJoin={condition.connect === LogicOperatorType.and}\n leftJoin={this._getShouldBeLeftJoin(prevLogicOperator)}\n language={this.props.language}\n />\n );\n const connectBox = this.renderAndOrConnectBox(this.props.groupConditions.length, filterIndex, condition.connect);\n const addFilter = this.generateAddFilterExpressionBox(this.props.groupConditions.length, filterIndex);\n\n slides.push(this.generateSlide(filterElement, `filterElementIndex_${filterIndex}`));\n if (connectBox) {\n slides.push(this.generateSlide(connectBox, `connectBoxElementIndex_${filterIndex}`));\n }\n if (addFilter) {\n slides.push(this.generateSlide(addFilter, `addFilterElementIndex_${filterIndex}`));\n }\n\n prevLogicOperator = condition.connect;\n return filterElement;\n });\n\n return slides;\n };\n\n generateSlide = (element: JSX.Element, key: string): JSX.Element => {\n return (\n <div className=\"filterSlide\" key={key}>\n {element}\n </div>\n );\n };\n\n renderAndOrConnectBox = (conditionsLength: number, currentIndex: number, logicOperator: LogicOperatorType): JSX.Element => {\n if (currentIndex < conditionsLength - 1) {\n if (logicOperator === LogicOperatorType.or) {\n return (\n <div className=\"groupOperator groupOperator_or\" onClick={() => this.onChangeFilterOperator(LogicOperatorType.or, currentIndex)}>\n OR\n </div>\n );\n } else {\n return (\n <div className=\"groupOperator groupOperator_and\" onClick={() => this.onChangeFilterOperator(LogicOperatorType.and, currentIndex)}>\n AND\n </div>\n );\n }\n } else {\n return null;\n }\n };\n\n onChangeFilterOperator = (logicOperator: LogicOperatorType, filterIndex: number) => {\n this.props.onChangeFilterOperator(logicOperator, filterIndex);\n };\n\n onChangeFilter = (filterIndex: number, selectedField: string, selectedCondition: string, value: string) => {\n this.props.onChangeFilter(filterIndex, selectedField, selectedCondition, value);\n };\n\n generateAddFilterExpressionBox = (conditionsLength: number, currentIndex: number): JSX.Element => {\n if (conditionsLength - 1 === currentIndex) {\n return (<FilterExpressionComponent\n searchFilters={this.props.searchFilters}\n filterAdded={false}\n onAddFilterClick={this.props.onAddFilterClick}\n language={this.props.language}\n />);\n } else {\n return null;\n }\n };\n\n _getShouldBeLeftJoin = (prevLogicOperator: LogicOperatorType) => {\n if (prevLogicOperator !== undefined) {\n return prevLogicOperator === LogicOperatorType.and;\n } else {\n return false;\n }\n };\n}\n","import * as React from 'react';\nimport { LoadingContainer } from '../../../styles/loading/loading';\n\nexport class LoadingComponent extends React.Component {\n\n public render() {\n return (\n <LoadingContainer>\n <div id=\"preloader\">\n <div id=\"loader\"></div>\n </div>\n </LoadingContainer>\n );\n }\n}\n\n","import React from 'react';\nimport { Filters, GroupRequest, ConnectRequest, Connects, LogicOperatorType, FilterExpression, OperatorType } from '../../model/search';\nimport { GroupFilter } from './GroupFilter';\nimport { SearchFilters, SearchFilter } from '../../model/search/searchFilters';\nimport './../../styles/advancedSearch/advancedSearch.scss';\nimport { RouteComponentProps } from 'react-router-dom';\nimport { routeStrings } from '../../common/constants/routes';\nimport Alerts from '../../common/Alerts/Alerts';\nimport { ToastrType } from '../../common/Alerts/ToastrType';\nimport cloneDeep from 'lodash.clonedeep';\nimport { LoadingComponent } from '../../common/components/loadingComponent/loading';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\ninterface IProps {\n searchFilters: SearchFilters;\n isLoaded: boolean;\n language: string;\n\n getFilteredResults: (filterRequest: Filters) => void;\n getSearchFilters: () => void;\n clearSearchFilters: () => void;\n}\n\ninterface IState {\n filters: GroupRequest;\n filterAdded: boolean[];\n}\n\nexport class AdvancedSearch extends React.Component<IProps & RouteComponentProps, IState>{\n initialGroupNumber = 2;\n\n constructor(props) {\n super(props);\n this.state = {\n filters: this._createEmptyGroups(),\n filterAdded: [],\n };\n }\n\n componentDidMount() {\n this.props.getSearchFilters();\n }\n\n componentWillUnmount() {\n this.props.clearSearchFilters();\n }\n\n render() {\n const language = this.props.language;\n if (this.props.isLoaded) {\n const executeButtonClass: string = this.state.filterAdded.find(x => x) ? '' : 'disabled';\n return (\n <div className=\"advancedSearch\">\n <div className=\"headerTitleContainer\">\n <h1 className=\"headerTitle\">{getLanguage(language).ADVANCED_SEARCH.TITLE}</h1>\n </div>\n <div className=\"container\">\n <div className=\"searchFiltersContainer\">\n {this.renderGroupBox()}\n <div className={`searchFilterButtonContainer`}>\n <div className={`searchFilterButton ${executeButtonClass}`} onClick={this.executeSearchClick}>\n {getLanguage(language).ADVANCED_SEARCH.RUN_ADVANCED}\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div className=\"loadingFilters\">\n <LoadingComponent />\n </div>\n );\n }\n\n }\n\n executeSearchClick = () => {\n const canDispatch = this._evaluateFilters();\n const language = this.props.language;\n if (canDispatch) {\n const filterRequest = new Filters();\n filterRequest.page = 0;\n filterRequest.filters = this._formatFilters(this.state.filters);\n this.props.getFilteredResults(filterRequest);\n this.props.history.push('/'.concat(getLanguageLocalStorage().concat(routeStrings.result)));\n } else {\n Alerts.show( getLanguage(language).ALERTS.ERROR_ADVANCED_SEARCH, ToastrType.Error);\n }\n };\n\n _createEmptyGroups = (): GroupRequest => {\n const groupRequest: GroupRequest = new GroupRequest();\n for (let i = 0; i < this.initialGroupNumber; i++) {\n groupRequest.group.push(new ConnectRequest());\n }\n return groupRequest;\n };\n\n onAddFilterClick = (groupIndex: number) => {\n this.state.filters.group[groupIndex].condition.push(this.emptyConditionFromProps());\n const newFilterAdded: boolean[] = this.state.filterAdded;\n newFilterAdded[groupIndex] = true;\n this.setState({\n filterAdded: newFilterAdded,\n });\n };\n\n emptyConditionFromProps = (): Connects => {\n const firstFilter: SearchFilter = this.props.searchFilters.filters[0];\n const expression = new FilterExpression(firstFilter.field, firstFilter.conditions[0].id, '');\n return new Connects(expression, LogicOperatorType.or);\n };\n\n renderGroupBox = (): JSX.Element => {\n {\n let prevLogicOperator: LogicOperatorType;\n return (\n <>\n {this.state.filters.group.map((group, groupIndex) => {\n const groupElement: JSX.Element = (\n <div className=\"groupFiltersContainer\"\n key={`group_${groupIndex}`}>\n <GroupFilter\n searchFilters={this.props.searchFilters}\n groupIndex={groupIndex}\n groupConditions={group.condition}\n filterAdded={this.state.filterAdded[groupIndex]}\n onAddFilterClick={() => this.onAddFilterClick(groupIndex)}\n removeFilter={(filterIndex: number) => this.removeFilter(groupIndex, filterIndex)}\n onChangeFilter={\n (filterIndex: number, selectedField: string, selectedCondition: string, value: string) =>\n this.onChangefilter(groupIndex, filterIndex, selectedField, selectedCondition, value)\n }\n onChangeFilterOperator={\n (operatorType: LogicOperatorType, filterIndex: number) =>\n this.changeFilterOperator(operatorType, groupIndex, filterIndex)\n }\n rightJoin={group.connect === LogicOperatorType.and}\n leftJoin={this._getShouldBeLeftJoin(prevLogicOperator)}\n language= {this.props.language}\n />\n {this.renderAndOrBox(this.state.filters.group.length, groupIndex, group.connect)}\n </div>\n );\n prevLogicOperator = group.connect;\n return groupElement;\n })}\n </>\n );\n }\n };\n\n renderAndOrBox = (groupLength: number, currentIndex: number, logicOperator: LogicOperatorType) => {\n const language = this.props.language;\n if (currentIndex < groupLength - 1) {\n if (logicOperator === LogicOperatorType.or) {\n return (\n <div className=\"groupOperator groupOperator_or\" onClick={() => this.changeOperator(LogicOperatorType.or, currentIndex)}>\n {getLanguage(language).ADVANCED_SEARCH.OR}\n </div>\n );\n } else {\n return (\n <div className=\"groupOperator groupOperator_and\" onClick={() => this.changeOperator(LogicOperatorType.and, currentIndex)}>\n {getLanguage(language).ADVANCED_SEARCH.AND}\n </div>\n );\n }\n } else {\n return (<></>);\n }\n };\n\n changeOperator = (operatorType: LogicOperatorType, groupIndex: number) => {\n const newState = this.state;\n if (operatorType === LogicOperatorType.or) {\n newState.filters.group[groupIndex].connect = LogicOperatorType.and;\n } else {\n newState.filters.group[groupIndex].connect = LogicOperatorType.or;\n }\n this.setState({\n filters: newState.filters\n });\n };\n\n changeFilterOperator = (operatorType: LogicOperatorType, groupIndex: number, filterIndex: number) => {\n const newState = this.state;\n if (operatorType === LogicOperatorType.or) {\n newState.filters.group[groupIndex].condition[filterIndex].connect = LogicOperatorType.and;\n } else {\n newState.filters.group[groupIndex].condition[filterIndex].connect = LogicOperatorType.or;\n }\n this.setState({\n filters: newState.filters\n });\n };\n\n removeFilter = (groupIndex: number, filterIndex: number) => {\n const newState = this.state;\n newState.filters.group[groupIndex].condition.splice(filterIndex, 1);\n if (newState.filters.group[groupIndex].condition.length === 0) {\n newState.filterAdded[groupIndex] = false;\n }\n this.setState({\n filters: newState.filters,\n filterAdded: newState.filterAdded\n });\n };\n\n onChangefilter = (groupIndex: number, filterIndex: number, selectedField: string, selectedCondition: string, value: string) => {\n const newState = this.state;\n newState.filters.group[groupIndex].condition[filterIndex].exp.field = selectedField;\n newState.filters.group[groupIndex].condition[filterIndex].exp.operator = selectedCondition;\n newState.filters.group[groupIndex].condition[filterIndex].exp.value = value;\n this.setState({\n filters: newState.filters\n });\n };\n\n _getShouldBeLeftJoin = (prevLogicOperator: LogicOperatorType) => {\n if (prevLogicOperator !== undefined) {\n return prevLogicOperator === LogicOperatorType.and;\n } else {\n return false;\n }\n };\n\n _removeEmptyFilters = (filters: GroupRequest): GroupRequest => {\n const tempFilters = cloneDeep(filters);\n tempFilters.group.forEach((filter, index) => {\n if (filter.condition.length === 0) {\n tempFilters.group.splice(index, 1);\n }\n });\n return tempFilters;\n };\n\n _evaluateFilters = (): boolean => {\n let canDispatchFilters = true;\n const filtersWithoutEmptyGroups = this._removeEmptyFilters(this.state.filters);\n if (filtersWithoutEmptyGroups.group.length > 0) {\n filtersWithoutEmptyGroups.group.forEach((group) => {\n if (group.condition.length > 0) {\n group.condition.forEach((condition) => {\n if (!condition.exp.value) {\n canDispatchFilters = false;\n }\n });\n } else {\n canDispatchFilters = false;\n }\n });\n } else {\n canDispatchFilters = false;\n }\n return canDispatchFilters;\n };\n\n _formatFilters = (filters: GroupRequest): GroupRequest => {\n const filtersWithoutEmptyGroupsFormated = this._removeEmptyFilters(filters);\n if (filtersWithoutEmptyGroupsFormated.group.length > 0) {\n filtersWithoutEmptyGroupsFormated.group.forEach((group) => {\n if (group.condition.length > 0) {\n group.condition.forEach((condition) => {\n if (condition.exp.operator === OperatorType.Co) {\n condition.exp.value = condition.exp.value.concat('*');\n }\n });\n }\n });\n }\n return filtersWithoutEmptyGroupsFormated;\n };\n}\n","import { StateReducer } from '../../reducers';\nimport { Filters } from '../../model/search';\nimport { loadSearchFilters, clearSearchFilters } from '../../actions/searchFilters/loadSearchFilters';\nimport { AdvancedSearch } from './AdvancedSearch';\nimport { connect } from 'react-redux';\nimport { sendAdvancedSearchFiltersAction } from '../../actions/mainSearch/loadSearchAction';\nimport { searchTypeEnum } from '../../model/enum/searchType';\n\nconst mapStateToProps = (state: StateReducer) => ({\n searchFilters: state.searchFilters.filters,\n isLoaded: state.searchFilters.isLoaded,\n language:state.language\n});\n\nconst mapDispatchToProps = (dispatch: any) => ({\n getFilteredResults: (filtersRequest: Filters) => dispatch(sendAdvancedSearchFiltersAction(filtersRequest, searchTypeEnum.AdvancedSearch)),\n getSearchFilters: () => dispatch(loadSearchFilters()),\n clearSearchFilters: () => dispatch(clearSearchFilters()),\n});\n\nexport const AdvancedSearchContainer: any = connect(\n mapStateToProps,\n mapDispatchToProps\n)(AdvancedSearch);\n","import React from 'react';\nimport { msalInstance } from '../../common/hoc/auth';\nimport history from '../../history';\nimport { routeUrls } from '../../common/constants/routes';\nimport { AuthError } from 'msal';\nimport logo from '../../styles/img/APV-logo.svg';\nimport logoSmall from '../../styles/img/APV-logo-small.svg';\n\nimport 'react-bootstrap-typeahead/css/Typeahead.css';\nimport './../../styles/detailDoc/detailDoc.scss';\nimport { getLanguage } from '../../translations/language';\nimport { getLanguageLocalStorage } from '../../common/utils/languageHelper';\n\nexport class ExpiredComponent extends React.Component<{}, {}> {\n \n render() {\n return (\n <div className=\"mainContainer detailDocContainer\">\n <div className=\"detailHeader headerBar\">\n <div className=\"headerSpace headerLeftSpace\">\n <div className=\"expiredHeader\">\n <div className=\"headerLogoLink\">\n <div className=\"headerLogoContainer containsLogo\">\n <img className=\"APVlogoHeader\" src={logo} alt=\"\" />\n <img className=\"APVlogoHeader-small\" src={logoSmall} alt=\"\" />\n </div>\n </div>\n <div className=\"expiredHeaderPage\">\n <label className=\"navLinkText tittlePort text expiredLogo\">{getLanguage(getLanguageLocalStorage()).HEADER.TITLE}</label>\n <label className=\"navLinkText tittlePort text2\">{getLanguage(getLanguageLocalStorage()).HEADER.ONLINE}</label>\n </div>\n </div>\n </div>\n </div>\n <div className=\"container\">\n <div className=\"documentContainer\">\n <div className=\"documentSheet\">\n <div className=\"documentTitle expiredTitle\">\n <h1>{getLanguage(getLanguageLocalStorage()).EXPIRED_SESSION.TITLE} </h1>\n <h1>{getLanguage(getLanguageLocalStorage()).EXPIRED_SESSION.RECOVERED_SESSION}</h1>\n </div>\n <div className=\"expiredButtonContainer\">\n <div className=\"expiredButton login\" onClick={this.onClick}>\n Login\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n onClick = () => {\n msalInstance.logout();\n msalInstance.handleRedirectCallback(() => { // on success\n }, (authErr: AuthError, accountState: string) => { // on fail\n });\n history.push(routeUrls.login);\n };\n}\n","import React from 'react';\nimport {HeaderLogo} from '../headerLogo/headerLogo';\nimport {\n INFO_TITLE, INFO_PPAL, INFO_TITLE1, INFO_TEXT1, INFO_TITLE2,\n INFO_TEXT2, INFO_TITLE3, INFO_TEXT3, INFO_TITLE4, INFO_TEXT4,\n INFO_TITLE6, INFO_TEXT6, INFO_TITLE7, INFO_TEXT7, INFO_TITLE8,\n INFO_TEXT8, INFO_TITLE9, INFO_TEXT9, INFO_TITLE10, INFO_TEXT10,\n INFO_TITLE11, INFO_TEXT11, INFO_TEXT12, INFO_TEXT13, INFO_TEXT14,\n INFO_TITLE12, INFO_TEXT15, INFO_TITLE13, INFO_TEXT16, INFO_TITLE14,\n INFO_TEXT17, INFO_TEXT18, INFO_TITLE15, INFO_TITLE16, INFO_TEXT19,\n INFO_TITLE17, INFO_TEXT191\n} from '../../../resources/commonStrings';\nimport { FiArrowRightCircle } from 'react-icons/fi';\nimport '../../../styles/info/infoPage.scss';\n\nexport class InfoComponent extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n didConfirm: false,\n };\n }\n\n componentWillUnmount() {\n this.setState({\n didConfirm: false,\n });\n }\n\n header = () => {\n return (<HeaderLogo/>);\n };\n\n public render() {\n return (\n <div>\n {this.header()}\n <div className=\"container infoPage format\">\n <div className=\"documentContainer\">\n <div className=\"\">\n <div className=\"documentTitle titlePpal\" >\n <h1>{INFO_TITLE}</h1>\n </div>\n <div className=\"detailDocumentGrid responsive explo\" dir=\"ltr\">\n <div className=\"detailDocumentGridInfo info\">\n <div className=\"metaDataContainer\">\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_PPAL}\n </div>\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE1} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT1}\n <div className=\"cajaTipo infoTitleText\">\n {INFO_TITLE2}\n <div className=\"metaDataContainerElement element fonstSize \">\n {INFO_TEXT2}\n </div>\n </div>\n <div className=\"cajaTipo \">\n {INFO_TITLE3}\n <div className=\"metaDataContainerElement element fonstSize\">\n {INFO_TEXT3}\n </div>\n </div>\n <div className=\"cajaTipo titleSize\">\n {INFO_TITLE4}\n <div className=\"metaDataContainerElement element fonstSize\">\n {INFO_TEXT4}\n </div>\n </div>\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal titleSize\">\n {INFO_TITLE6} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT6}\n <div className=\"cajaTipo infoTitleText\">\n {INFO_TITLE7}\n <div className=\"metaDataContainerElement element fonstSize titleSize\">\n {INFO_TEXT7}\n </div>\n </div>\n <div className=\"cajaTipo \">\n {INFO_TITLE8}\n <div className=\"metaDataContainerElement element fonstSize\">\n {INFO_TEXT8}\n </div>\n </div>\n <div className=\"cajaTipo \">\n {INFO_TITLE9}\n <div className=\"metaDataContainerElement element fonstSize\">\n {INFO_TEXT9}\n </div>\n </div>\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal titleSize\">\n {INFO_TITLE10} </h3>\n <div className=\"metaDataContainerElement fonstSize\">\n <div className=\"metaDataContainerElement textInfo \">\n {INFO_TEXT10}\n </div>\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal titleSize\">\n {INFO_TITLE11} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT11}\n <div className=\"metaDataContainerElement element textInfo\">\n <div className=\"boxTrian\">\n <FiArrowRightCircle className=\"triangulo\" />{INFO_TEXT12}\n </div>\n </div>\n <div className=\"metaDataContainerElement element textInfo\">\n <div className=\"boxTrian\">\n <FiArrowRightCircle className=\"triangulo\" />{INFO_TEXT13}\n </div>\n </div>\n {INFO_TEXT14}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE12} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT15}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE13} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT16}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE14} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT17}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE15} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT18}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE16} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT19}\n </div>\n <h3 className=\"metaDataContainerTitle titlePpal\">\n {INFO_TITLE17} </h3>\n <div className=\"metaDataContainerElement textInfo\">\n {INFO_TEXT191}\n </div>\n <div className=\"container format flex\">\n <div className=\"documentSheet\">\n <div className=\"metaDataContainerBlock metaDataContainerDescription\">\n <div className=\"metaDataContainerElement\">\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">originalId</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Identificador del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">keyPhrases</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Frases relevantes en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">locations</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Localizaciones identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">organizations</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Instituciones identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">personas</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Personas identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">name</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Nombre natural del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">description</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Descripción del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">calsificationType</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Clasificación del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">apvDocType</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Tipo de documento APV</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">apvDocSubType</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Subtipo de documento APV</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">notes</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Notas del documento APV</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">apvLocation</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Localizaciones identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">apvPersons</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Personas identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">institutions</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Instituciones identificadas en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">registerNumber</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Números de registro del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">accessPointTerm</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Puntos de acceso identificados en el contenido del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">classDenomination</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Clasificaciones EMGDE del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">signature</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Ubicación del documento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">caseFiles/caseFileName</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Nombre del expediente relacionado con el documeento</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">caseFiles/caseFileDescription</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Descripción del expediente relacionado</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">caseFiles/caseFileId</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Identificador del expediente</div>\n <h4 className=\"metaDataContainerElement element fonstSize cajaTipo\">caseFiles/documentalSerie</h4>\n <div className=\"metaDataContainerElement element fonstSize\">Serie documental del expediente relacionado</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n}\n","import * as React from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { LayoutStyler } from './components/layoutStyler/layoutStyler';\nimport { MainSearchContainer } from './components/mainSearch/mainSearchContainer';\nimport { MainResultContainer } from './components/mainResult/mainResultContainer';\nimport { routeStrings, routeUrls } from './common/constants/routes';\nimport { DetailDocContainer } from './components/detailDoc/detailDocContainer';\nimport { DetailFileContainer } from './components/detailFile/detailFileContainer';\nimport { ContactContainer } from './components/contact/ContactContainer';\nimport { ClassificationChartContainer } from './components/clasification/classificationChartContainer';\nimport { AdvancedSearchContainer } from './components/advancedSearch/AdvancedSearchContainer';\nimport { withAuth } from './common/hoc/auth';\nimport { ExpiredComponent } from './components/expired/expired';\nimport { InfoComponent } from './common/components/info/info';\nimport { getLanguageLocalStorage } from './common/utils/languageHelper';\n\n\nexport const routes = (\n <Switch>\n <Route exact path={routeUrls.search} component={LayoutStyler(MainSearchContainer)} />\n <Route exact path={routeUrls.login} component={withAuth(LayoutStyler(MainSearchContainer))} />\n <Route exact path={routeUrls.result} component={LayoutStyler(MainResultContainer)} />\n <Route exact path={routeUrls.detail} component={DetailDocContainer} />\n <Route exact path={routeUrls.detailFile} component={DetailFileContainer} />\n <Route exact path={routeUrls.resources} component={LayoutStyler(ClassificationChartContainer)} />\n <Route exact path={routeUrls.advancedSearch} component={LayoutStyler(AdvancedSearchContainer)} />\n <Route exact path={routeUrls.contacto} component={(LayoutStyler(ContactContainer))} />\n <Route exact path={routeUrls.expired} component={ExpiredComponent} />\n <Route exact path={routeUrls.info} component={InfoComponent} />\n <Route exact path={routeUrls.politicaDeCookies} />\n <Redirect exact from=\"/\" to={getLanguageLocalStorage().concat(routeStrings.search)} />\n </Switch>\n);\n","import 'react-app-polyfill/ie11';\nimport 'react-app-polyfill/stable';\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { AppContainer } from 'react-hot-loader';\nimport './styles/css/index.css';\nimport * as serviceWorker from './serviceWorker';\nimport { Router } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport { store } from './store';\nimport history from './history';\nimport { routes } from './routes';\nimport { initializeIcons } from '@uifabric/icons';\nimport ReactAI from 'react-appinsights';\nimport CookieBot from 'react-cookiebot/lib/CookieBot';\n\nimport './styles/vendor/fabric.min.css';\nimport './styles/app.scss';\nimport { getLanguageLocalStorage, saveLanguageLocalStorage } from './common/utils/languageHelper';\n\n\nReactAI.init({ instrumentationKey: process.env.REACT_APP_APPINSIGHTS_KEY }, history);\nReactAI.setAppContext({ urlReferrer: document.referrer });\n\n\ninitializeIcons(undefined, { disableWarnings: true });\n \nrenderApp();\n\nfunction renderApp() {\n const languageCookie = getLanguageLocalStorage();\n \n ReactDOM.render(\n\n <>\n <AppContainer>\n <Provider store={store}>\n <Router history={history} children={routes} />\n </Provider>\n </AppContainer>\n <CookieBot language={languageCookie ==='va' ? 'CA' : languageCookie} domainGroupId={\"460beb6b-c99a-471a-965b-270382f93f26\"} />\n </>,\n document.getElementById('root'),\n );\n\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\n serviceWorker.unregister();\n}\n","module.exports = __webpack_public_path__ + \"static/media/APV-logo-small.f1ffcae5.svg\";","module.exports = __webpack_public_path__ + \"static/media/imageNotAvailable.2508e853.svg\";","module.exports = __webpack_public_path__ + \"static/media/APV-logo.c7d0d0da.svg\";","module.exports = __webpack_public_path__ + \"static/media/stroke.ea3b2ecd.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAw4AAADHCAYAAACwTQSsAAABJmlDQ1BBZG9iZSBSR0IgKDE5OTgpAAAoz2NgYDJwdHFyZRJgYMjNKykKcndSiIiMUmA/z8DGwMwABonJxQWOAQE+IHZefl4qAwb4do2BEURf1gWZxUAa4EouKCoB0n+A2CgltTiZgYHRAMjOLi8pAIozzgGyRZKywewNIHZRSJAzkH0EyOZLh7CvgNhJEPYTELsI6Akg+wtIfTqYzcQBNgfClgGxS1IrQPYyOOcXVBZlpmeUKBhaWloqOKbkJ6UqBFcWl6TmFit45iXnFxXkFyWWpKYA1ULcBwaCEIWgENMAarTQZKAyAMUDhPU5EBy+jGJnEGIIkFxaVAZlMjIZE+YjzJgjwcDgv5SBgeUPQsykl4FhgQ4DA/9UhJiaIQODgD4Dw745AMDGT/0ZOjZcAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGvmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDMgNzkuMTY0NTI3LCAyMDIwLzEwLzE1LTE3OjQ4OjMyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIwLTEwLTEzVDE2OjM1OjM5KzAyOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQxMzozODoyNiswMTowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQxMzozODoyNiswMTowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphN2VlMjU3OS01NzY5LWIyNGQtOThkMi0xYmJmNDYzZTMzYjMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2ZThmYTgyNS0zZjVmLTYwNDktOWJhMS0yM2Y1ZGZmM2M5MDciIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo3MDkyZWNmOC1hZWYxLWY0NDgtYWM5Yi0zMTU5ZWRmODU0ZDYiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjcwOTJlY2Y4LWFlZjEtZjQ0OC1hYzliLTMxNTllZGY4NTRkNiIgc3RFdnQ6d2hlbj0iMjAyMC0xMC0xM1QxNjozNTozOSswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2ZDZhNGM3MS1hNWQ3LWVmNDYtODEyMy1mOTAyZDljODkxODQiIHN0RXZ0OndoZW49IjIwMjAtMTAtMTNUMTc6NTg6MjErMDI6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8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\"","module.exports = __webpack_public_path__ + \"static/media/spa_flag.2c92fb52.svg\";","module.exports = __webpack_public_path__ + \"static/media/uk_flag.12216326.svg\";","module.exports = __webpack_public_path__ + \"static/media/Flag_of_the_Valencian_Community_(2x3).6048e794.svg\";","module.exports = __webpack_public_path__ + \"static/media/APV-logo-codigo.714513fa.png\";","module.exports = __webpack_public_path__ + \"static/media/imageNotAvailableEn.ed0667c4.svg\";","module.exports = __webpack_public_path__ + \"static/media/imageNotAvailableVa.3f20ac18.svg\";"],"sourceRoot":""}