{"version":3,"sources":["images/profile.png","config/config.js","res/textConstants.js","res/res_pt.js","res/res_br.js","res/res_en.js","res/i18n.js","helpers/utils.js","helpers/API.js","actions/loading.js","helpers/alertDispatcher.js","helpers/constants.js","actions/propertiesUser.js","actions/propertiesAgency.js","actions/authedUser.js","actions/company.js","actions/parameters.js","components/Header.js","components/dummy/Loading.js","helpers/validator.js","components/dummy/forms/FormGroupInput.js","components/dummy/forms/ButtonSubmit.js","components/Login.js","components/dummy/forms/Auth.js","components/Signup.js","components/SignupSuccess.js","components/PasswordSet.js","components/ForgotPassword.js","components/dummy/property/PropertyImage.js","components/dummy/property/PropertyInfo.js","components/dummy/property/PropertyFeatures.js","components/dummy/Stars.js","components/dummy/Visits.js","components/dummy/AgentExtended.js","components/dummy/ActivityRow.js","components/dummy/property/PropertyRow.js","components/dummy/property/PropertyFilter.js","components/dummy/NoResults.js","components/PropertyList.js","components/UserProfile.js","components/RecoverPasswordSent.js","components/dummy/Footer.js","components/dummy/property/PropertyRowTeste.js","selectors/properties.js","components/PropertyListTeste.js","components/dummy/property/PropertyListFilters.js","actions/filters.js","components/PropertyDashboard.js","components/App.js","reducers/loading.js","reducers/authedUser.js","reducers/company.js","reducers/propertiesUser.js","reducers/propertiesAgency.js","reducers/parameters.js","reducers/filters.js","middleware/index.js","index.js","store/configureStore.js"],"names":["module","exports","apiUrl","basename","concat","window","imp","HANDLERS","COMPANY_INFO","USER","LOGIN","SIGNUP","FORGOT_PASSWORD","RECOVER_PASSWORD","ACCOUNT_ACTIVATION","UPDATE_PASSWORD","LOGOUT","PROPERTIES_USER","PROPERTIES_AGENCY","SEND_MESSAGE","LOGOUT_ONLY_ROUTES","LANGUAGES_AVAILABLE","language","value","COUNTRIES","6824","7556","7638","6825","7619","COUNTRY_LANGUAGES","PT","BR","CV","ANG","MOZ","ACTIVITY_TYPE","1","2","3","4","5","6","7","8","LIST_TYPES","OWN_PROPERTIES","PRIVATE_BUSINESSES","STYLE_BREAKPOINTS","PROPERTY_BEDS_MIN","id","PROPERTY_BEDS_MAX","LIST_ORDER_BY","USERNAME","PASSWORD","CONFIRM_PASSWORD","FULL_NAME","SIGNUP_NOW","SIGNUP_ACTIVATION","LOGIN_TERMS","LOGIN_GREETING_1","LOGIN_GREETING_2","SIGNUP_GREETING_1","SIGNUP_GREETING_2","RECOVER_GREETING_1","RECOVER_GREETING_2","LOADING","BACK_HOME","BACK","SEND","ACTIVATE","ACTIVATION_CODE","HELLO","AGENT_TYPE","AGENT","AGENTS","CONTACT_PHONE","CONTACT_CELL_PHONE","CONTACT_EMAIL","NO_ACCOUNT","ALREADY_HAVE_ACCOUNT","FORGOT_MY_PASSWORD","DATE","CONDITION","VISIT_PROPERTY","VISIT_DATE","VISIT_INTEREST","VISIT_PRICE","VISIT_LOCATION","VISIT_CONDITION","VISIT_POSITIVE","VISIT_NEGATIVE","VISIT_VIRTUAL","WEBSITE_VIEWS","NO_RESULTS","OLD_PASSWORD","NEW_PASSWORD","CONFIRM_NEW_PASSWORD","AUTH_FORGOT_PASSWORD","AUTH_SIGNUP","AUTH_GENERIC","VALIDATION_NEEDED","VALIDATION_NEEDED_INFO_1","VALIDATION_NEEDED_INFO_2","PROPERTY_NOT_FOUND","ACCOUNT_NOT_VERIFIED","ACCOUNT_VALIDATED","ACCOUNT_VALIDATED_INFO_1","ACCOUNT_VALIDATED_INFO_2","MESSAGE","SIGNUP_REQUEST_SENT","RECOVER_REQUEST_SENT","RECOVER_PASSWORD_SENT_INFO_1","RECOVER_PASSWORD_SENT_INFO_2","PROPERTIES","BUSINESS_ACTIONS","PROPERTY_FEATURES","PUBLISH_WEBSITE","PUBLISH_PORTAL","CONTRACT_START_DATE","BEDROOM","BEDROOMS","SEE_MORE","SEE_LESS","PROPERTY_LIST","ACTIVITIES","TYPE","DESCRIPTION","REFERENCE","PROPERTY","CLIENT_NAME","ACTIVITIES_PROPERTY","ACTIVITY_PROPERTY","ACTIVITY_EMAIL","ACTIVITY_PHONE","ACTIVITY_TASK","ACTIVITY_COMMITMENT","ACTIVITY_PROPOSAL","ACTIVITY_VISIT","ACTIVITY_VIRTUAL_VISIT","ACTIVITY_ALERT","FEATURE_AREA","FEATURE_NUMBER_OF_ROOMS","FEATURE_NUMBER_OF_BATHS","FEATURE_PRICE_PER_AREA","FEATURE_NUMBER_OF_GARAGES","FEATURE_ENERGY_RATING","FEATURE_DESCRIPTION","FEATURE_VIEW_DESCRIPTION","FEATURE_HIDE_DESCRIPTION","MISSING_USERNAME","MISSING_PASSWORD","MISSING_CONFIRM_PASSWORD","MISSING_FULL_NAME","MISSING_ACTIVATION_CODE","MISSING_MESSAGE","INVALID_EMAIL","MISSING_NEW_PASSWORD","MISSING_OLD_PASSWORD","PASSWORD_MISMATCH","PASSWORD_INVALID","INVALID_REQUEST","EMAIL_NOT_SENT","AUTH_REQUIRED","UNKNOWN_ERROR","NO_SESSION","NO_COMPANY_STORED_IN_SESSION","REQUEST_DOMAIN_NOT_AUTHORIZED","TIME_OUT","EMAIL_TEMPLATE_NOT_FOUND","MISSING_CREDENTIALS","WRONG_CREDENTIALS","NO_USER_INFO_AVAILABLE","SIGNUP_ACTIVATION_SUCCESS","RECOVER_PASSWORD_SUCCESS","PASSWORD_UPDATED","res_pt","_res_pt","Object","defineProperty","TC","res_br_res_pt","res_en","_res_en","i18n","use","LanguageDetector","init","fallbackLng","whitelist","ns","defaultNS","resources","pt-PT","translations","pt-BR","res_br","pt","en","composePropertyTitle","type","typology","result","BEDROOM_TEXT","getTranslatedText","placeCommaAtEnd","expression","composePropertyLocation","country","district","county","parish","toLowerCase","substring","length","removeWhiteSpaces","replace","spaceExpression","spaceInterval","arguments","undefined","split","reverse","i","join","trim","formatPhoneNumber","formatDate","dateStr","aux","Date","year","getFullYear","month","getMonth","day","getDate","checkRecaptcha","actionName","grecaptcha","execute","RECAPTCHA_KEY","action","pickErrorMessage","messageKey","toUpperCase","message","resourceKey","getResource","getAvailableLanguages","countryCode","promiseFactory","handler","data","portalToken","portal_token","PORTAL_TOKEN","Promise","res","rej","url","method","axios","timeout","withCredentials","responseType","responseEncoding","postRequest","JSON","stringify","then","Exception","ClassName","Message","Response","Data","catch","e","console","log","getCompanyInfo","checkIfUserLoggedIn","login","username","password","signup","fullname","auth","token","forgotPassword","accountActivation","userToken","recaptchaToken","encodeURIComponent","recoverPassword","updatePassword","oldPassword","newPassword","propertyFactory","get","START_INITIAL_LOADING","END_INITIAL_LOADING","START_CONTENT_LOADING","END_CONTENT_LOADING","START_BUTTON_LOADING","END_BUTTON_LOADING","startInitialLoading","endInitialLoading","startContentLoading","endContentLoading","startButtonLoading","endButtonLoading","alertDispatcher","Alert","position","effect","offset","ALERT_MESSAGE_TYPE","WARNING","INFO","ERROR","SUCCESS","SET_PROPERTIES_USER","CLEAR_PROPERTIES_USER","handleSetUserProperties","parameters","dispatch","API","properties","Properties","agents","Properties_agents","visits","Properties_visits","gallery","Properties_gallery","activities","Activities","map","visit","index","start_date","activity","insert_date","property","filter","photo","property_id","agent","location","location_level_1","location_level_2","location_level_3","location_level_4","completeLocation","title","bedrooms","setUserProperties","error","SET_PROPERTIES_AGENCY","CLEAR_PROPERTIES_AGENCY","handleSetAgencyProperties","descriptions","Properties_descriptions","description","find","desc","setAgencyProperties","SET_AUTHED_USER","REMOVE_AUTHED_USER","setAuthedUser","authedUser","handleRemoveAuthedUser","SET_COMPANY_INFO","handleSetCompanyInfo","name","logo","info","SET_APP_WIDTH","Header","state","showMenu","logout","event","_this","props","getPathFirstElement","fullPath","toogleMenu","setState","prev","company","this","t","react_default","a","createElement","Navbar","expand","Brand","href","src","alt","react","Toggle","aria-controls","Collapse","className","Nav","NavItem","permissions","own_properties","lib","to","fa","private_businesses","onClick","Component","withRouter","connect","_ref","loading","objectSpread","button","withNamespaces","REGEX_EMAIL","REG_EXP_PASSWORD","validateEmail","email","match","validateUsername","valid","invalidField","comparePasswords","confirmPassword","checkValidPassword","validPassword","validatePassword","validateAuth","FormGroupInput","avoidAnimation","placeholder","onChange","disabled","htmlFor","label","ButtonSubmit","Login","clearInvalidField","setInvalidField","newInvalid","checkIfFieldInvalid","fieldName","target","submit","preventDefault","validationResult","usernameValidation","validateLoginForm","userData","params","rel","forms_FormGroupInput","forms_ButtonSubmit","Link","history","push","_ref2","Auth","checked","width","height","viewBox","d","points","Signup","onCheckboxChange","_event$target","authValidation","validateSignupForm","forms_Auth","key","_ref3","PasswordSet","tokenValid","apiCall","goHome","comparePasswordValidation","passwordValidation","validatePasswordSetForm","_this$props$match$par","ForgotPassword","_event$target2","validateForgotPasswordForm","style","backgroundImage","reference","purpose","price","currency","intPart","parseInt","toString","decPart","formatPrice","showOwnerInfo","priceArea","Math","round","grossarea","isNaN","realtor_contract_begin_date","show_in_website","show_in_portals","num_virtual_visit","website_views","bathrooms","garagecars","energy_rating","Stars","stars","star","starFormatter","cell","dummy_Stars","sortCaret","order","column","columns","dataField","text","sort","align","headerStyle","colum","colIndex","formatter","headerClasses","react_bootstrap_table_next_lib_default","bootstrap4","keyField","defaultSorted","rowClasses","image","defaultProfile","phone","cell_phone","activitiesList","showTitle","activity_type","activity_type_id","opacity","activeKey","setActivityKey","onChangeTable","accordion","numActivityTables","showCollapsable","mainList","tables","lists","tableIndex","splitActivitiesList","property_PropertyImage","main_photo","Carousel","interval","autoPlay","nextIcon","prevIcon","Item","Image","property_PropertyInfo","property_PropertyFeatures","dummy_AgentExtended","rc_collapse_es","dummy_Visits","partialList","ind","dummy_ActivityRow","onFilterChange","purposesAvailable","group","groupsAvailable","typesDisabled","typesAvailable","bedsMin","bedsDisabled","bedsMinAvailable","bed","bedsMax","bedsMaxAvailable","currency_format_default","priceMin","thousandSeparator","decimalSeparator","suffix","onValueChange","onFilterPriceMinChange","priceMax","onFilterPriceMaxChange","orderBy","orderByJSON","NoResults","PropertyList","uiRemoved","forceLogin","bedsMinJSON","bedsMaxJSON","purposesJSON","groupsJSON","initialtypesJSON","typesJSON","activePage","getTitle","indexOf","toConsumableArray","item","handlePageChange","pageNumber","scrollTo","_this2","path","getProperties","groups","unshift","types","angariation","bath","energyRatings","garage","living","purposes","_this3","Redirect","content","dummy_Loading","itemsCount","typesFromGroup","typesIDS","includes","forEach","element","purpose_id","type_id","b","slice","property_PropertyFilter","dummy_NoResults","property_PropertyRow","getNumOfTables","class","Pagination_default","itemsCountPerPage","totalItemsCount","pageRangeDisplayed","bk","getCurrentBreakPoint","propertiesUser","propertiesAgency","subsidiary_phone","subsidiary_cell_phone","subsidiary_email","getDefaultAgent","UserProfile","validateUpdatePasswordForm","buttons","Footer","onLanguageChange","subsidiary_address","subsidiary_address_zipcode","subsidiary_address_ziplocation","portal_email","languagesAvailable","lng","objectDestructuringEmpty","selectors_properties","PropertyListTeste","PropertyRowTeste","selectProperties","filters","PropertyListFilter","setTextFilter","React","PropertyDashboard","PropertyListFilters","components_PropertyListTeste","App","started","ready","recaptcha","setWidth","innerWidth","changeLanguage","script","document","body","appendChild","loadRecaptcha","addEventListener","removeEventListener","prevProps","prevState","localStorage","getItem","newLanguage","setItem","react_s_alert_default","stack","limit","components_Header","react_transition_group","classNames","appear","Switch","Route","exact","component","SignupSuccess","render","components_PasswordSet","assign","RecoverPasswordSent","components_PropertyList","dummy_Footer","initial","routeSplit","pathname","mainRoute","isOnLogoutOnlyArea","DisplayName","UserId","filtersReducerDefaultState","mdware","applyMiddleware","thunk","store","createStore","combineReducers","filtersReducer","middleware","getState","configureStore","jsx","getVisibleProperties","es","react_i18next_dist_es","BrowserRouter","components_App","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.2c475e9f.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","let apiUrl;\r\nlet basenameDirectory = '/';\r\n\r\nswitch(process.env.NODE_ENV) {\r\n case 'development':\r\n case 'test':\r\n // Run in development or __test__ mode\r\n apiUrl = \"http://localhost:4000/api\";\r\n break;\r\n\r\n case 'production':\r\n default:\r\n // Run in production mode\r\n apiUrl = \"https://online.gimob.net/api\";\r\n basenameDirectory = `/${window.imp.basename}`;\r\n break;\r\n}\r\n\r\nexport const basename = basenameDirectory;\r\n\r\nexport const HANDLERS = {\r\n COMPANY_INFO: `${apiUrl}/company.ashx`,\r\n USER: `${apiUrl}/user.ashx`,\r\n LOGIN: `${apiUrl}/login.ashx`,\r\n SIGNUP: `${apiUrl}/signup.ashx`,\r\n FORGOT_PASSWORD: `${apiUrl}/forgotPassword.ashx`,\r\n RECOVER_PASSWORD: `${apiUrl}/recover_password.ashx`,\r\n ACCOUNT_ACTIVATION: `${apiUrl}/account_activation.ashx`,\r\n UPDATE_PASSWORD: `${apiUrl}/updatePassword.ashx`,\r\n LOGOUT: `${apiUrl}/logout.ashx`,\r\n PROPERTIES_USER: `${apiUrl}/properties_user.ashx`,\r\n PROPERTIES_AGENCY: `${apiUrl}/properties_agency.ashx`,\r\n SEND_MESSAGE: `${apiUrl}/send_message.ashx`\r\n};\r\n\r\nexport const REQUEST_TIMEOUT = 10000;\r\n\r\nexport const LOGOUT_ONLY_ROUTES = ['/', '/senha', 'registo'];\r\n\r\nexport const LANGUAGES_AVAILABLE = [\r\n {\r\n language: \"pt-PT\",\r\n value: \"pt-PT\"\r\n },\r\n {\r\n language: \"pt-BR\",\r\n value: \"pt-BR\"\r\n },\r\n {\r\n language: \"en-GB\",\r\n value: \"en\"\r\n }\r\n];\r\n\r\nexport const COUNTRIES = {\r\n 6824: 'PT',\r\n 7556: 'BR',\r\n 7638: 'CV',\r\n 6825: 'ANG',\r\n 7619: 'MOZ'\r\n};\r\n\r\nexport const COUNTRY_LANGUAGES = {\r\n PT: [\r\n LANGUAGES_AVAILABLE[0], // pt-PT\r\n LANGUAGES_AVAILABLE[2] // en\r\n ],\r\n BR: [\r\n LANGUAGES_AVAILABLE[1], // pt-BR\r\n LANGUAGES_AVAILABLE[2] // en\r\n ],\r\n CV: [\r\n LANGUAGES_AVAILABLE[0], // pt-PT\r\n LANGUAGES_AVAILABLE[2] // en\r\n ],\r\n ANG: [\r\n LANGUAGES_AVAILABLE[0], // pt-PT\r\n LANGUAGES_AVAILABLE[2] // en\r\n ],\r\n MOZ: [\r\n LANGUAGES_AVAILABLE[0], // pt-PT\r\n LANGUAGES_AVAILABLE[2] // en\r\n ]\r\n};\r\n\r\nexport const LANGUAGE_WHITELIST = [\"pt-PT\", \"pt-BR\", \"pt\", \"en\"];\r\n\r\nexport const ACTIVITY_TYPE = {\r\n 1: 'ACTIVITY_EMAIL',\r\n 2: 'ACTIVITY_PHONE',\r\n 3: 'ACTIVITY_TASK',\r\n 4: 'ACTIVITY_COMMITMENT',\r\n 5: 'ACTIVITY_PROPOSAL',\r\n 6: 'ACTIVITY_VISIT',\r\n 7: 'ACTIVITY_VIRTUAL_VISIT',\r\n 8: 'ACTIVITY_ALERT'\r\n};\r\n\r\nexport const LIST_TYPES = {\r\n OWN_PROPERTIES: \"OWN_PROPERTIES\",\r\n PRIVATE_BUSINESSES: \"PRIVATE_BUSINESSES\",\r\n};\r\n\r\nexport const STYLE_BREAKPOINTS = [0, 576, 768, 992, 1200, 1400];\r\n\r\nexport const PROPERTY_BEDS_MIN = [\r\n { id: -1, value: 'Min' },\r\n { id: 0, value: '0' },\r\n { id: 1, value: '1' },\r\n { id: 2, value: '2' },\r\n { id: 3, value: '3' },\r\n { id: 4, value: '4' },\r\n { id: 5, value: '5' },\r\n { id: 6, value: '6' }\r\n];\r\n\r\nexport const PROPERTY_BEDS_MAX = [\r\n { id: -1, value: 'Max' },\r\n { id: 0, value: '0' },\r\n { id: 1, value: '1' },\r\n { id: 2, value: '2' },\r\n { id: 3, value: '3' },\r\n { id: 4, value: '4' },\r\n { id: 5, value: '5' },\r\n { id: 1000, value: '+6' }\r\n];\r\n\r\nexport const LIST_ORDER_BY = [\r\n { id: -1, value: 'Ordenar por' },\r\n { id: 0, value: 'Menor tipologia' },\r\n { id: 1, value: 'Maior tipologia' },\r\n { id: 2, value: 'Mais barato' },\r\n { id: 3, value: 'Mais caro' }\r\n];","export const LOGIN = \"LOGIN\";\r\nexport const USERNAME = \"USERNAME\";\r\nexport const PASSWORD = 'PASSWORD';\r\nexport const CONFIRM_PASSWORD = \"CONFIRM_PASSWORD\";\r\nexport const FULL_NAME = \"FULL_NAME\";\r\nexport const SIGNUP = \"SIGNUP\";\r\nexport const SIGNUP_NOW = \"SIGNUP_NOW\";\r\nexport const SIGNUP_ACTIVATION = \"SIGNUP_ACTIVATION\";\r\nexport const LOGIN_TERMS = \"LOGIN_TERMS\";\r\nexport const LOGIN_GREETING_1 = \"LOGIN_GREETING_1\";\r\nexport const LOGIN_GREETING_2 = \"LOGIN_GREETING_2\";\r\nexport const SIGNUP_GREETING_1 = \"SIGNUP_GREETING_1\";\r\nexport const SIGNUP_GREETING_2 = \"SIGNUP_GREETING_2\";\r\nexport const RECOVER_GREETING_1 = \"RECOVER_GREETING_1\";\r\nexport const RECOVER_GREETING_2 = \"RECOVER_GREETING_2\";\r\nexport const LOADING = \"LOADING\";\r\nexport const BACK_HOME = \"BACK_HOME\";\r\nexport const BACK = \"BACK\";\r\nexport const SEND = \"SEND\";\r\nexport const ACTIVATE = \"ACTIVATE\";\r\nexport const ACTIVATION_CODE = \"ACTIVATION_CODE\";\r\nexport const LOGOUT = \"LOGOUT\";\r\nexport const HELLO = \"HELLO\";\r\nexport const AGENT_TYPE = \"AGENT_TYPE\";\r\nexport const AGENT = \"AGENT\";\r\nexport const AGENTS = \"AGENTS\";\r\nexport const CONTACT_PHONE = \"CONTACT_PHONE\";\r\nexport const CONTACT_CELL_PHONE = \"CONTACT_CELL_PHONE\";\r\nexport const CONTACT_EMAIL = \"CONTACT_EMAIL\";\r\nexport const NO_ACCOUNT = \"NO_ACCOUNT\";\r\nexport const ALREADY_HAVE_ACCOUNT = \"ALREADY_HAVE_ACCOUNT\";\r\nexport const FORGOT_MY_PASSWORD = \"FORGOT_MY_PASSWORD\";\r\nexport const RECOVER_PASSWORD = \"RECOVER_PASSWORD\";\r\nexport const UPDATE_PASSWORD = \"UPDATE_PASSWORD\";\r\nexport const DATE = \"DATE\";\r\nexport const CONDITION = \"CONDITION\";\r\nexport const VISIT_PROPERTY = \"VISIT_PROPERTY\";\r\nexport const VISIT_DATE = \"VISIT_DATE\";\r\nexport const VISIT_INTEREST = \"VISIT_INTEREST\";\r\nexport const VISIT_PRICE = \"VISIT_PRICE\";\r\nexport const VISIT_LOCATION = \"VISIT_LOCATION\";\r\nexport const VISIT_CONDITION = \"VISIT_CONDITION\";\r\nexport const VISIT_POSITIVE = \"VISIT_POSITIVE\";\r\nexport const VISIT_NEGATIVE = \"VISIT_NEGATIVE\";\r\nexport const VISIT_VIRTUAL = \"VISIT_VIRTUAL\";\r\nexport const WEBSITE_VIEWS = \"WEBSITE_VIEWS\";\r\nexport const NO_RESULTS = \"NO_RESULTS\";\r\nexport const OLD_PASSWORD = \"OLD_PASSWORD\";\r\nexport const NEW_PASSWORD = \"NEW_PASSWORD\";\r\nexport const CONFIRM_NEW_PASSWORD = \"CONFIRM_NEW_PASSWORD\";\r\nexport const AUTH_FORGOT_PASSWORD = \"AUTH_FORGOT_PASSWORD\";\r\nexport const AUTH_SIGNUP = \"AUTH_SIGNUP\";\r\nexport const AUTH_GENERIC = \"AUTH_GENERIC\";\r\nexport const VALIDATION_NEEDED = \"VALIDATION_NEEDED\";\r\nexport const VALIDATION_NEEDED_INFO_1 = \"VALIDATION_NEEDED_INFO_1\";\r\nexport const VALIDATION_NEEDED_INFO_2 = \"VALIDATION_NEEDED_INFO_2\";\r\nexport const PROPERTY_NOT_FOUND = \"PROPERTY_NOT_FOUND\";\r\nexport const ACCOUNT_NOT_VERIFIED = \"ACCOUNT_NOT_VERIFIED\";\r\nexport const ACCOUNT_VALIDATED = \"ACCOUNT_VALIDATED\";\r\nexport const ACCOUNT_VALIDATED_INFO_1 = \"ACCOUNT_VALIDATED_INFO_1\";\r\nexport const ACCOUNT_VALIDATED_INFO_2 = \"ACCOUNT_VALIDATED_INFO_2\";\r\nexport const MESSAGE = \"MESSAGE\";\r\nexport const SIGNUP_REQUEST_SENT = \"SIGNUP_REQUEST_SENT\";\r\nexport const RECOVER_REQUEST_SENT = \"RECOVER_REQUEST_SENT\";\r\nexport const RECOVER_PASSWORD_SENT_INFO_1 = \"RECOVER_PASSWORD_SENT_INFO_1\";\r\nexport const RECOVER_PASSWORD_SENT_INFO_2 = \"RECOVER_PASSWORD_SENT_INFO_2\";\r\nexport const PROPERTIES = \"PROPERTIES\";\r\nexport const BUSINESS_ACTIONS = \"BUSINESS_ACTIONS\";\r\nexport const PROPERTY_FEATURES = \"PROPERTY_FEATURES\";\r\nexport const PUBLISH_WEBSITE = \"PUBLISH_WEBSITE\";\r\nexport const PUBLISH_PORTAL = \"PUBLISH_PORTAL\";\r\nexport const CONTRACT_START_DATE = \"CONTRACT_START_DATE\";\r\nexport const BEDROOM = \"BEDROOM\";\r\nexport const BEDROOMS = \"BEDROOMS\";\r\nexport const SEE_MORE = \"SEE_MORE\";\r\nexport const SEE_LESS = \"SEE_LESS\";\r\nexport const PROPERTY_LIST = \"PROPERTY_LIST\";\r\nexport const ACTIVITIES = \"ACTIVITIES\";\r\nexport const TYPE = \"TYPE\";\r\nexport const DESCRIPTION = \"DESCRIPTION\";\r\nexport const REFERENCE = \"REFERENCE\";\r\nexport const PROPERTY = \"PROPERTY\";\r\nexport const CLIENT_NAME = \"CLIENT_NAME\";\r\nexport const PRIVATE_BUSINESSES = \"PRIVATE_BUSINESSES\";\r\nexport const ACTIVITIES_PROPERTY = \"ACTIVITIES_PROPERTY\";\r\nexport const ACTIVITY_PROPERTY = \"ACTIVITY_PROPERTY\";\r\nexport const ACTIVITY_EMAIL = \"ACTIVITY_EMAIL\";\r\nexport const ACTIVITY_PHONE = \"ACTIVITY_PHONE\";\r\nexport const ACTIVITY_TASK = \"ACTIVITY_TASK\";\r\nexport const ACTIVITY_COMMITMENT = \"ACTIVITY_COMMITMENT\";\r\nexport const ACTIVITY_PROPOSAL = \"ACTIVITY_PROPOSAL\";\r\nexport const ACTIVITY_VISIT = \"ACTIVITY_VISIT\";\r\nexport const ACTIVITY_VIRTUAL_VISIT = \"ACTIVITY_VIRTUAL_VISIT\";\r\nexport const ACTIVITY_ALERT = \"ACTIVITY_ALERT\";\r\nexport const FEATURE_AREA = \"FEATURE_AREA\";\r\nexport const FEATURE_NUMBER_OF_ROOMS = \"FEATURE_NUMBER_OF_ROOMS\";\r\nexport const FEATURE_NUMBER_OF_BATHS = \"FEATURE_NUMBER_OF_BATHS\";\r\nexport const FEATURE_PRICE_PER_AREA = \"FEATURE_PRICE_PER_AREA\";\r\nexport const FEATURE_NUMBER_OF_GARAGES = \"FEATURE_NUMBER_OF_GARAGES\";\r\nexport const FEATURE_ENERGY_RATING = \"FEATURE_ENERGY_RATING\";\r\nexport const FEATURE_DESCRIPTION = \"FEATURE_DESCRIPTION\";\r\nexport const FEATURE_VIEW_DESCRIPTION = \"FEATURE_VIEW_DESCRIPTION\";\r\nexport const FEATURE_HIDE_DESCRIPTION = \"FEATURE_HIDE_DESCRIPTION\";\r\n// FEEDBACK VALIDATION ERROR\r\nexport const MISSING_USERNAME = 'MISSING_USERNAME';\r\nexport const MISSING_PASSWORD = 'MISSING_PASSWORD';\r\nexport const MISSING_CONFIRM_PASSWORD = 'MISSING_CONFIRM_PASSWORD';\r\nexport const MISSING_FULL_NAME = 'MISSING_FULL_NAME';\r\nexport const MISSING_ACTIVATION_CODE = 'MISSING_ACTIVATION_CODE';\r\nexport const MISSING_MESSAGE = 'MISSING_MESSAGE';\r\nexport const INVALID_EMAIL = 'INVALID_EMAIL';\r\nexport const MISSING_NEW_PASSWORD = 'MISSING_NEW_PASSWORD';\r\nexport const MISSING_OLD_PASSWORD = 'MISSING_OLD_PASSWORD';\r\nexport const PASSWORD_MISMATCH = 'PASSWORD_MISMATCH';\r\nexport const PASSWORD_INVALID = 'PASSWORD_INVALID';\r\nexport const INVALID_REQUEST = 'INVALID_REQUEST';\r\nexport const EMAIL_NOT_SENT = 'EMAIL_NOT_SENT';\r\nexport const AUTH_REQUIRED = 'AUTH_REQUIRED';\r\nexport const UNKNOWN_ERROR = 'UNKNOWN_ERROR';\r\nexport const NO_SESSION = UNKNOWN_ERROR;\r\nexport const NO_COMPANY_STORED_IN_SESSION = UNKNOWN_ERROR;\r\nexport const REQUEST_DOMAIN_NOT_AUTHORIZED = UNKNOWN_ERROR;\r\nexport const TIME_OUT = \"TIME_OUT\";\r\nexport const EMAIL_TEMPLATE_NOT_FOUND = EMAIL_NOT_SENT;\r\nexport const MISSING_CREDENTIALS = \"MISSING_CREDENTIALS\";\r\nexport const WRONG_CREDENTIALS = \"WRONG_CREDENTIALS\";\r\nexport const NO_USER_INFO_AVAILABLE = \"NO_USER_INFO_AVAILABLE\";\r\n\r\n// FEEDBACK VALIDATION SUCCESS\r\nexport const SIGNUP_ACTIVATION_SUCCESS = 'SIGNUP_ACTIVATION_SUCCESS';\r\nexport const RECOVER_PASSWORD_SUCCESS = 'RECOVER_PASSWORD_SUCCESS';\r\nexport const PASSWORD_UPDATED = 'PASSWORD_UPDATED';\r\n\r\n","import * as TC from './textConstants';\r\n\r\nconst res_pt = {\r\n [TC.LOGIN]: 'Entrar',\r\n [TC.USERNAME]: 'Email',\r\n [TC.PASSWORD]: 'Senha de acesso',\r\n [TC.CONFIRM_PASSWORD]: 'Confirmação de senha de acesso',\r\n [TC.FULL_NAME]: 'Nome completo',\r\n [TC.SIGNUP]: 'Registo',\r\n [TC.SIGNUP_NOW]: 'Registe-se',\r\n [TC.LOGIN_TERMS]: 'termos e condições.',\r\n [TC.LOGIN_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.LOGIN_GREETING_2]: 'Ao autenticar-se nesta aplicação está a concordar com os ',\r\n [TC.SIGNUP_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.SIGNUP_GREETING_2]: 'Ao registar-se nesta aplicação está a concordar com os ',\r\n [TC.RECOVER_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.RECOVER_GREETING_2]: 'Ao recuperar senha nesta aplicação está a concordar com os ',\r\n [TC.LOADING]: 'A carregar...',\r\n [TC.BACK_HOME]: 'Voltar à página inicial',\r\n [TC.BACK]: 'Voltar',\r\n [TC.SEND]: 'Enviar',\r\n [TC.ACTIVATE]: 'Ativar',\r\n [TC.ACTIVATION_CODE]: 'Código de ativação',\r\n [TC.LOGOUT]: 'Sair',\r\n [TC.HELLO]: 'Olá',\r\n [TC.AGENT_TYPE]: 'Angariador',\r\n [TC.AGENT]: 'O angariador do seu imóvel',\r\n [TC.AGENTS]: 'Os angariadores do seu imóvel',\r\n [TC.CONTACT_PHONE]: 'Telefone',\r\n [TC.CONTACT_CELL_PHONE]: 'Telemóvel',\r\n [TC.CONTACT_EMAIL]: 'Email',\r\n [TC.NO_ACCOUNT]: 'Sem conta?',\r\n [TC.ALREADY_HAVE_ACCOUNT]: 'Já tem conta?',\r\n [TC.FORGOT_MY_PASSWORD]: 'Esqueci-me da senha de acesso',\r\n [TC.RECOVER_PASSWORD]: 'Recuperar senha',\r\n [TC.UPDATE_PASSWORD]: 'Alterar senha de acesso',\r\n [TC.SIGNUP_ACTIVATION]: 'Ativação de registo',\r\n [TC.DATE]: 'Data',\r\n [TC.CONDITION]: 'Estado',\r\n [TC.VISIT_PROPERTY]: 'Visitas efetuadas ao imóvel',\r\n [TC.VISIT_DATE]: 'Data da visita',\r\n [TC.VISIT_INTEREST]: 'Interesse',\r\n [TC.VISIT_PRICE]: 'Preço',\r\n [TC.VISIT_LOCATION]: 'Localização',\r\n [TC.VISIT_CONDITION]: 'Estado de conservação',\r\n [TC.VISIT_POSITIVE]: 'Pontos fortes',\r\n [TC.VISIT_NEGATIVE]: 'Pontos fracos',\r\n [TC.VISIT_VIRTUAL]: 'Enviado por email:',\r\n [TC.WEBSITE_VIEWS]: 'Visualizações no website',\r\n [TC.BEDROOM]: 'quarto',\r\n [TC.BEDROOMS]: 'quartos',\r\n [TC.NO_RESULTS]: 'Não foram encontrados imóveis.',\r\n [TC.OLD_PASSWORD]: 'Senha de acesso atual',\r\n [TC.NEW_PASSWORD]: 'Nova senha de acesso',\r\n [TC.CONFIRM_PASSWORD]: 'Confirmação de senha de acesso',\r\n [TC.CONFIRM_NEW_PASSWORD]: 'Confirmação de nova senha',\r\n [TC.AUTH_FORGOT_PASSWORD]: 'Declaro que sou titular destes dados pessoais e autorizo o uso dos mesmos para efeitos de recuperação da minha senha de acesso.',\r\n [TC.AUTH_SIGNUP]: 'Declaro que sou titular destes dados pessoais e autorizo a passagem dos mesmos para poder ter acesso à área de clientes.',\r\n [TC.AUTH_GENERIC]: '(Para podermos receber o seu pedido terá de confirmar esta opção)',\r\n [TC.VALIDATION_NEEDED]: \"Confirmação necessária\",\r\n [TC.VALIDATION_NEEDED_INFO_1]: \"O seu pedido de registo foi enviado para a agência.\",\r\n [TC.VALIDATION_NEEDED_INFO_2]: \"Nos próximos dias receberá instruções sobre como proceder para aceder à sua área pessoal.\",\r\n [TC.PROPERTY_NOT_FOUND]: \"Imóvel não encontrado\",\r\n [TC.ACCOUNT_NOT_VERIFIED]: \"Não foi possível verificar a sua conta\",\r\n [TC.ACCOUNT_VALIDATED]: \"Email verificado\",\r\n [TC.ACCOUNT_VALIDATED_INFO_1]: \"A sua conta de email foi verificada com sucesso.\",\r\n [TC.ACCOUNT_VALIDATED_INFO_2]: \"Pode agora aceder à sua área pessoal.\",\r\n [TC.MESSAGE]: \"Envie uma mensagem ao seu agente.\",\r\n [TC.SIGNUP_REQUEST_SENT]: \"Pedido de registo enviado.\",\r\n [TC.RECOVER_REQUEST_SENT]: \"Email de recuperação de senha enviado\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_1]: \"Foi enviado um email de recuperação de senha de acesso para a sua caixa de correio.\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_2]: \"Aceda à sua caixa de correio e siga as instruções fornecidas.\",\r\n [TC.PROPERTIES]: \"Imóveis\",\r\n [TC.PROPERTY]: \"Imóvel\",\r\n [TC.BUSINESS_ACTIONS]: \"Ações comerciais\",\r\n [TC.PROPERTY_FEATURES]: \"Características do imóvel\",\r\n [TC.PUBLISH_WEBSITE]: \"Publicado no website:\",\r\n [TC.PUBLISH_PORTAL]: \"Publicado em portais imobiliários:\",\r\n [TC.CONTRACT_START_DATE]: \"Data de início de contrato:\",\r\n\r\n [TC.CLIENT_NAME]: \"Interessado\",\r\n [TC.PRIVATE_BUSINESSES]: \"Negócios privados\",\r\n [TC.ACTIVITIES_PROPERTY]: \"Atividades relacionadas com o imóvel\",\r\n [TC.ACTIVITY_PROPERTY]: \"Atividades do imóvel\",\r\n [TC.ACTIVITY_EMAIL]: \"Contacto por Email\",\r\n [TC.ACTIVITY_PHONE]: \"Chamada telefónica\",\r\n [TC.ACTIVITY_TASK]: \"Tarefa\",\r\n [TC.ACTIVITY_COMMITMENT]: \"Compromisso\",\r\n [TC.ACTIVITY_PROPOSAL]: \"Proposta\",\r\n [TC.ACTIVITY_VISIT]: \"Visita\",\r\n [TC.ACTIVITY_VIRTUAL_VISIT]: \"Visita virtual\",\r\n [TC.ACTIVITY_ALERT]: \"Alerta\",\r\n [TC.FEATURE_AREA]: \"Área\",\r\n [TC.FEATURE_NUMBER_OF_ROOMS]: \"N.º de quartos\",\r\n [TC.FEATURE_NUMBER_OF_BATHS]: \"N.º de WC's\",\r\n [TC.FEATURE_PRICE_PER_AREA]: \"Preço por área\",\r\n [TC.FEATURE_NUMBER_OF_GARAGES]: \"Lugares de garagem\",\r\n [TC.FEATURE_ENERGY_RATING]: \"Certificado energético\",\r\n [TC.FEATURE_DESCRIPTION]: \"Descrição\",\r\n [TC.FEATURE_VIEW_DESCRIPTION]: \"Ver descrição\",\r\n [TC.FEATURE_HIDE_DESCRIPTION]: \"Esconder descrição\",\r\n\r\n [TC.MISSING_USERNAME]: 'Introduza o seu email.',\r\n [TC.MISSING_PASSWORD]: 'Introduza a senha de acesso.',\r\n [TC.MISSING_CONFIRM_PASSWORD]: 'Confirme a nova senha de acesso.',\r\n [TC.MISSING_NEW_PASSWORD]: 'Introduza a nova senha de acesso.',\r\n [TC.MISSING_OLD_PASSWORD]: 'Introduza a senha de acesso atual.',\r\n [TC.MISSING_FULL_NAME]: 'Introduza o seu nome completo.',\r\n [TC.MISSING_ACTIVATION_CODE]: 'Insira o código de ativação.',\r\n [TC.MISSING_MESSAGE]: 'Escreva a mensagem que pretende enviar ao seu agente.',\r\n [TC.INVALID_EMAIL]: 'Introduza um email válido.',\r\n [TC.PASSWORD_MISMATCH]: 'As senhas de acesso são diferentes.',\r\n [TC.PASSWORD_INVALID]: 'A palavra-passe deverá ter entre 8 e 15 caracteres, pelo menos uma letra maiúscula e uma minúscula, pelo menos um algarismo e um caracter especial.',\r\n [TC.INVALID_REQUEST]: 'O pedido de validação efetuado contém dados incorretos.',\r\n [TC.EMAIL_NOT_SENT]: 'Não foi possível enviar o email',\r\n [TC.AUTH_REQUIRED]: 'É necessário assinalar a autorização de utilização dos seus dados pessoais para poder prosseguir.',\r\n [TC.UNKNOWN_ERROR]: 'Ocorreu um erro. Por favor tente novamente.',\r\n [TC.PASSWORD_UPDATED]: 'A senha de acesso foi atualizada com sucesso.',\r\n [TC.TIME_OUT]: 'Verifique a sua ligação à Internet.',\r\n [TC.MISSING_CREDENTIALS]: 'Dados de utilizador em falta.',\r\n [TC.SIGNUP_ACTIVATION_SUCCESS]: 'A sua conta foi ativada com sucesso.',\r\n [TC.RECOVER_PASSWORD_SUCCESS]: 'A senha de acesso foi alterada com sucesso.',\r\n [TC.WRONG_CREDENTIALS]: 'Nome de utilizador ou senha de acesso inválidos.',\r\n [TC.NO_USER_INFO_AVAILABLE]: 'O utilizador não se encontra registado.',\r\n [TC.SEE_MORE]: 'Ver visitas e atividades',\r\n [TC.SEE_LESS]: 'Esconder visitas e atividades',\r\n [TC.PROPERTY_LIST]: 'Os meus Imóveis',\r\n [TC.ACTIVITIES]: 'Actividades',\r\n [TC.TYPE]: 'Tipo',\r\n [TC.DESCRIPTION]: 'Descrição',\r\n [TC.REFERENCE]: 'Referência',\r\n};\r\n\r\nexport default res_pt;\r\n","import * as TC from './textConstants';\r\n\r\nconst res_pt = {\r\n [TC.LOGIN]: 'Entrar',\r\n [TC.USERNAME]: 'Email',\r\n [TC.PASSWORD]: 'Senha de acesso',\r\n [TC.CONFIRM_PASSWORD]: 'Confirmação de senha de acesso',\r\n [TC.FULL_NAME]: 'Nome completo',\r\n [TC.SIGNUP]: 'Registro',\r\n [TC.SIGNUP_NOW]: 'Registre-se',\r\n [TC.LOGIN_TERMS]: 'termos e condições.',\r\n [TC.LOGIN_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.LOGIN_GREETING_2]: 'Ao autenticar-se nesta aplicação está a concordar com os ',\r\n [TC.SIGNUP_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.SIGNUP_GREETING_2]: 'Ao registar-se nesta aplicação está a concordar com os ',\r\n [TC.RECOVER_GREETING_1]: 'Bem vindo ao Gimob Online!',\r\n [TC.RECOVER_GREETING_2]: 'Ao recuperar senha nesta aplicação está a concordar com os ',\r\n [TC.LOADING]: 'Carregando...',\r\n [TC.BACK_HOME]: 'Voltar à página inicial',\r\n [TC.BACK]: 'Voltar',\r\n [TC.SEND]: 'Enviar',\r\n [TC.ACTIVATE]: 'Ativar',\r\n [TC.ACTIVATION_CODE]: 'Código de ativação',\r\n [TC.LOGOUT]: 'Sair',\r\n [TC.HELLO]: 'Olá',\r\n [TC.AGENT_TYPE]: 'Angariador',\r\n [TC.AGENT]: 'O angariador do seu imóvel',\r\n [TC.AGENTS]: 'Os angariadores do seu imóvel',\r\n [TC.CONTACT_PHONE]: 'Telefone',\r\n [TC.CONTACT_CELL_PHONE]: 'Telemóvel',\r\n [TC.CONTACT_EMAIL]: 'Email',\r\n [TC.NO_ACCOUNT]: 'Sem conta?',\r\n [TC.ALREADY_HAVE_ACCOUNT]: 'Já tem conta?',\r\n [TC.FORGOT_MY_PASSWORD]: 'Esqueci-me da senha de acesso',\r\n [TC.RECOVER_PASSWORD]: 'Recuperar senha',\r\n [TC.UPDATE_PASSWORD]: 'Alterar senha de acesso',\r\n [TC.SIGNUP_ACTIVATION]: 'Ativação de registo',\r\n [TC.DATE]: 'Data',\r\n [TC.CONDITION]: 'Estado',\r\n [TC.VISIT_PROPERTY]: 'Visitas efetuadas ao imóvel',\r\n [TC.VISIT_DATE]: 'Data da visita',\r\n [TC.VISIT_INTEREST]: 'Interesse',\r\n [TC.VISIT_PRICE]: 'Preço',\r\n [TC.VISIT_LOCATION]: 'Localização',\r\n [TC.VISIT_CONDITION]: 'Estado de conservação',\r\n [TC.VISIT_POSITIVE]: 'Pontos positivos',\r\n [TC.VISIT_NEGATIVE]: 'Pontos negativos',\r\n [TC.VISIT_VIRTUAL]: 'Enviado por email:',\r\n [TC.WEBSITE_VIEWS]: 'Visualizações no website',\r\n [TC.BEDROOM]: 'quarto',\r\n [TC.BEDROOMS]: 'quartos',\r\n [TC.NO_RESULTS]: 'Não foram encontrados imóveis.',\r\n [TC.OLD_PASSWORD]: 'Senha de acesso atual',\r\n [TC.NEW_PASSWORD]: 'Nova senha de acesso',\r\n [TC.CONFIRM_PASSWORD]: 'Confirmação de senha de acesso',\r\n [TC.CONFIRM_NEW_PASSWORD]: 'Confirmação de nova senha',\r\n [TC.AUTH_FORGOT_PASSWORD]: 'Declaro que sou titular destes dados pessoais e autorizo o uso dos mesmos para efeitos de recuperação da minha senha de acesso.',\r\n [TC.AUTH_SIGNUP]: 'Declaro que sou titular destes dados pessoais e autorizo a passagem dos mesmos para poder ter acesso à área de clientes.',\r\n [TC.AUTH_GENERIC]: '(Para podermos receber o seu pedido terá de confirmar esta opção)',\r\n [TC.VALIDATION_NEEDED]: \"Confirmação necessária\",\r\n [TC.VALIDATION_NEEDED_INFO_1]: \"O seu pedido de registo foi enviado para a agência.\",\r\n [TC.VALIDATION_NEEDED_INFO_2]: \"Nos próximos dias receberá instruções sobre como proceder para aceder à sua área pessoal.\",\r\n [TC.PROPERTY_NOT_FOUND]: \"Imóvel não encontrado\",\r\n [TC.ACCOUNT_NOT_VERIFIED]: \"Não foi possível verificar a sua conta\",\r\n [TC.ACCOUNT_VALIDATED]: \"Email verificado\",\r\n [TC.ACCOUNT_VALIDATED_INFO_1]: \"A sua conta de email foi verificada com sucesso.\",\r\n [TC.ACCOUNT_VALIDATED_INFO_2]: \"Pode agora aceder à sua área pessoal.\",\r\n [TC.MESSAGE]: \"Envie uma mensagem ao seu agente\",\r\n [TC.SIGNUP_REQUEST_SENT]: \"Pedido de registo enviado\",\r\n [TC.RECOVER_REQUEST_SENT]: \"Email de recuperação de senha enviado\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_1]: \"Foi enviado um email de recuperação de senha de acesso para a sua caixa de correio.\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_2]: \"Aceda à sua caixa de correio e siga as instruções fornecidas.\",\r\n [TC.PROPERTIES]: \"Imóveis\",\r\n [TC.PROPERTY]: \"Imóvel\",\r\n [TC.BUSINESS_ACTIONS]: \"Ações comerciais\",\r\n [TC.PROPERTY_FEATURES]: \"Características do imóvel\",\r\n [TC.PUBLISH_WEBSITE]: \"Publicado no website:\",\r\n [TC.PUBLISH_PORTAL]: \"Publicado em portais imobiliários:\",\r\n [TC.CONTRACT_START_DATE]: \"Data de início de contrato:\",\r\n\r\n [TC.CLIENT_NAME]: \"Interessado\",\r\n [TC.PRIVATE_BUSINESSES]: \"Negócios privados\",\r\n [TC.ACTIVITIES_PROPERTY]: \"Atividades relacionadas com o imóvel\",\r\n [TC.ACTIVITY_PROPERTY]: \"Atividades do imóvel\",\r\n [TC.ACTIVITY_EMAIL]: \"Contacto por Email\",\r\n [TC.ACTIVITY_PHONE]: \"Chamada telefónica\",\r\n [TC.ACTIVITY_TASK]: \"Tarefa\",\r\n [TC.ACTIVITY_COMMITMENT]: \"Compromisso\",\r\n [TC.ACTIVITY_PROPOSAL]: \"Proposta\",\r\n [TC.ACTIVITY_VISIT]: \"Visita\",\r\n [TC.ACTIVITY_VIRTUAL_VISIT]: \"Visita virtual\",\r\n [TC.ACTIVITY_ALERT]: \"Alerta\",\r\n [TC.FEATURE_AREA]: \"Área\",\r\n [TC.FEATURE_NUMBER_OF_ROOMS]: \"N.º de quartos\",\r\n [TC.FEATURE_NUMBER_OF_BATHS]: \"N.º de WC's\",\r\n [TC.FEATURE_PRICE_PER_AREA]: \"Preço por área\",\r\n [TC.FEATURE_NUMBER_OF_GARAGES]: \"Lugares de garagem\",\r\n [TC.FEATURE_ENERGY_RATING]: \"Certificado energético\",\r\n [TC.FEATURE_DESCRIPTION]: \"Descrição\",\r\n [TC.FEATURE_VIEW_DESCRIPTION]: \"Ver descrição\",\r\n [TC.FEATURE_HIDE_DESCRIPTION]: \"Esconder descrição\",\r\n\r\n [TC.MISSING_USERNAME]: 'Introduza o seu email.',\r\n [TC.MISSING_PASSWORD]: 'Introduza a senha de acesso.',\r\n [TC.MISSING_CONFIRM_PASSWORD]: 'Confirme a nova senha de acesso.',\r\n [TC.MISSING_NEW_PASSWORD]: 'Introduza a nova senha de acesso.',\r\n [TC.MISSING_OLD_PASSWORD]: 'Introduza a senha de acesso atual.',\r\n [TC.MISSING_FULL_NAME]: 'Introduza o seu nome completo.',\r\n [TC.MISSING_ACTIVATION_CODE]: 'Insira o código de ativação.',\r\n [TC.MISSING_MESSAGE]: 'Escreva a mensagem que pretende enviar ao seu agente.',\r\n [TC.INVALID_EMAIL]: 'Introduza um email válido.',\r\n [TC.PASSWORD_MISMATCH]: 'As senhas de acesso são diferentes.',\r\n [TC.PASSWORD_INVALID]: 'A palavra-passe deverá ter entre 8 e 15 caracteres, pelo menos uma letra maiúscula e uma minúscula, pelo menos um algarismo e um caracter especial.',\r\n [TC.INVALID_REQUEST]: 'O pedido de validação efetuado contém dados incorretos.',\r\n [TC.EMAIL_NOT_SENT]: 'Não foi possível enviar o email',\r\n [TC.AUTH_REQUIRED]: 'É necessário assinalar a autorização de utilização dos seus dados pessoais para poder prosseguir.',\r\n [TC.UNKNOWN_ERROR]: 'Ocorreu um erro. Por favor tente novamente.',\r\n [TC.PASSWORD_UPDATED]: 'A senha de acesso foi atualizada com sucesso.',\r\n [TC.TIME_OUT]: 'Verifique a sua ligação à Internet.',\r\n [TC.MISSING_CREDENTIALS]: 'Dados de utilizador em falta.',\r\n [TC.SIGNUP_ACTIVATION_SUCCESS]: 'A sua conta foi ativada com sucesso.',\r\n [TC.RECOVER_PASSWORD_SUCCESS]: 'A senha de acesso foi alterada com sucesso.',\r\n [TC.WRONG_CREDENTIALS]: 'Usuário ou senha de acesso inválidos',\r\n [TC.NO_USER_INFO_AVAILABLE]: 'Usuário não encontrado.',\r\n [TC.SEE_MORE]: 'Ver visitas e atividades',\r\n [TC.SEE_LESS]: 'Esconder visitas e atividades',\r\n [TC.PROPERTY_LIST]: 'Os meus Imóveis',\r\n [TC.ACTIVITIES]: 'Atividades',\r\n [TC.TYPE]: 'Tipo',\r\n [TC.DESCRIPTION]: 'Descrição',\r\n [TC.REFERENCE]: 'Referência',\r\n};\r\n\r\nexport default res_pt;\r\n","import * as TC from './textConstants';\r\n\r\nconst res_en = {\r\n [TC.LOGIN]: 'Login',\r\n [TC.USERNAME]: 'Email',\r\n [TC.PASSWORD]: 'Password',\r\n [TC.CONFIRM_PASSWORD]: 'Confirm your password',\r\n [TC.FULL_NAME]: 'Full name',\r\n [TC.SIGNUP]: 'Sign up',\r\n [TC.SIGNUP_NOW]: 'Sign up',\r\n [TC.LOGIN_TERMS]: 'terms and conditions.',\r\n [TC.LOGIN_GREETING_1]: 'Welcome to Gimob Online!',\r\n [TC.LOGIN_GREETING_2]: 'By logging in you agree to the ',\r\n [TC.SIGNUP_GREETING_1]: 'Welcome to Gimob Online!',\r\n [TC.SIGNUP_GREETING_2]: 'By signing up for this application you agree to the ',\r\n [TC.RECOVER_GREETING_1]: 'Welcome to Gimob Online!',\r\n [TC.RECOVER_GREETING_2]: 'By recover password for this application you agree to the ',\r\n [TC.LOADING]: 'Loading...',\r\n [TC.BACK_HOME]: 'Back to home page',\r\n [TC.BACK]: 'Back',\r\n [TC.SEND]: 'Send',\r\n [TC.ACTIVATE]: 'Activate',\r\n [TC.ACTIVATION_CODE]: 'Activation code',\r\n [TC.LOGOUT]: 'Logout',\r\n [TC.HELLO]: 'Hello',\r\n [TC.AGENT_TYPE]: 'Agent',\r\n [TC.AGENT]: 'property agent',\r\n [TC.AGENTS]: 'property agents',\r\n [TC.CONTACT_PHONE]: 'Telephone',\r\n [TC.CONTACT_CELL_PHONE]: 'Cell phone',\r\n [TC.CONTACT_EMAIL]: 'Email',\r\n [TC.NO_ACCOUNT]: \"Don't have an account?\",\r\n [TC.ALREADY_HAVE_ACCOUNT]: 'Already have an account?',\r\n [TC.FORGOT_MY_PASSWORD]: 'Forgot my password',\r\n [TC.RECOVER_PASSWORD]: 'Recover password',\r\n [TC.UPDATE_PASSWORD]: 'Update password',\r\n [TC.SIGNUP_ACTIVATION]: 'Signup activation',\r\n [TC.DATE]: 'Date',\r\n [TC.CONDITION]: 'Condition',\r\n [TC.VISIT_PROPERTY]: 'Visits to the property',\r\n [TC.VISIT_DATE]: 'Visit date',\r\n [TC.VISIT_INTEREST]: 'Interest',\r\n [TC.VISIT_PRICE]: 'Price',\r\n [TC.VISIT_LOCATION]: 'Location',\r\n [TC.VISIT_CONDITION]: 'property condition',\r\n [TC.VISIT_POSITIVE]: 'Positive aspects',\r\n [TC.VISIT_NEGATIVE]: 'Negative aspects',\r\n [TC.VISIT_VIRTUAL]: 'Sent by email:',\r\n [TC.WEBSITE_VIEWS]: 'Website views',\r\n [TC.BEDROOM]: 'bedroom',\r\n [TC.BEDROOMS]: 'bedrooms',\r\n [TC.NO_RESULTS]: 'No properties where found.',\r\n [TC.OLD_PASSWORD]: 'Current password',\r\n [TC.NEW_PASSWORD]: 'New password',\r\n [TC.CONFIRM_PASSWORD]: 'Confirm password',\r\n [TC.CONFIRM_NEW_PASSWORD]: 'Confirm new password',\r\n [TC.AUTH_FORGOT_PASSWORD]: 'I declare that I am the holder of these personal data and authorize the use of them for the purpose of retrieving my password.',\r\n [TC.AUTH_SIGNUP]: 'I declare that I am the holder of these personal data and authorize the passage of the same in order to gain access to the customer area.',\r\n [TC.AUTH_GENERIC]: '(In order to receive your request, you must check this option)',\r\n [TC.VALIDATION_NEEDED]: \"Validation needed\",\r\n [TC.VALIDATION_NEEDED_INFO_1]: \"Your signup request was sent to the agency\",\r\n [TC.VALIDATION_NEEDED_INFO_2]: \"In the next few days, you'll receive an email with further instructions to access your personal area.\",\r\n [TC.PROPERTY_NOT_FOUND]: \"property not found\",\r\n [TC.ACCOUNT_NOT_VERIFIED]: \"We couldn't verify your account\",\r\n [TC.ACCOUNT_VALIDATED]: \"Email checked\",\r\n [TC.ACCOUNT_VALIDATED_INFO_1]: \"Email verification completed.\",\r\n [TC.ACCOUNT_VALIDATED_INFO_2]: \"Please login to access your personal area.\",\r\n [TC.MESSAGE]: \"Send a message to your agent\",\r\n [TC.SIGNUP_REQUEST_SENT]: \"Signup request sent\",\r\n [TC.RECOVER_REQUEST_SENT]: \"Password recovery email sent\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_1]: \"An email was sent to your inbox.\",\r\n [TC.RECOVER_PASSWORD_SENT_INFO_2]: \"Please follow the email instructions to recover your password.\",\r\n [TC.PROPERTIES]: \"Properties\",\r\n [TC.PROPERTY]: \"property\",\r\n [TC.BUSINESS_ACTIONS]: \"Business actions\",\r\n [TC.PROPERTY_FEATURES]: \"Property features\",\r\n [TC.PUBLISH_WEBSITE]: \"Published on website:\",\r\n [TC.PUBLISH_PORTAL]: \"Posted in Real Estate Portals:\",\r\n [TC.CONTRACT_START_DATE]: \"Contract start date:\",\r\n\r\n [TC.CLIENT_NAME]: \"Visitor\",\r\n [TC.PRIVATE_BUSINESSES]: \"Private businesses\",\r\n [TC.ACTIVITIES_PROPERTY]: \"Activities related with the property\",\r\n [TC.ACTIVITY_PROPERTY]: \"property activities\",\r\n [TC.ACTIVITY_EMAIL]: \"Email contact\",\r\n [TC.ACTIVITY_PHONE]: \"Phone contact\",\r\n [TC.ACTIVITY_TASK]: \"Task\",\r\n [TC.ACTIVITY_COMMITMENT]: \"Commitment\",\r\n [TC.ACTIVITY_PROPOSAL]: \"Proposal\",\r\n [TC.ACTIVITY_VISIT]: \"Visit\",\r\n [TC.ACTIVITY_VIRTUAL_VISIT]: \"Virtual visit\",\r\n [TC.ACTIVITY_ALERT]: \"Alert\",\r\n [TC.FEATURE_AREA]: \"Area\",\r\n [TC.FEATURE_NUMBER_OF_ROOMS]: \"N.º of bedrooms\",\r\n [TC.FEATURE_NUMBER_OF_BATHS]: \"N.º de bathrooms\",\r\n [TC.FEATURE_PRICE_PER_AREA]: \"Price per area\",\r\n [TC.FEATURE_NUMBER_OF_GARAGES]: \"Car parking spaces\",\r\n [TC.FEATURE_ENERGY_RATING]: \"Energy rating\",\r\n [TC.FEATURE_DESCRIPTION]: \"Description\",\r\n [TC.FEATURE_VIEW_DESCRIPTION]: \"View description\",\r\n [TC.FEATURE_HIDE_DESCRIPTION]: \"Hide description\",\r\n\r\n [TC.MISSING_USERNAME]: 'Insert your email.',\r\n [TC.MISSING_PASSWORD]: 'Insert your password.',\r\n [TC.MISSING_CONFIRM_PASSWORD]: 'Confirm the new password.',\r\n [TC.MISSING_NEW_PASSWORD]: 'Insert your new password.',\r\n [TC.MISSING_OLD_PASSWORD]: 'Insert your current password.',\r\n [TC.MISSING_FULL_NAME]: 'Insert your full name.',\r\n [TC.MISSING_ACTIVATION_CODE]: 'Insert validation code.',\r\n [TC.MISSING_MESSAGE]: 'Write a message for your agent.',\r\n [TC.INVALID_EMAIL]: 'Insert a valid email.',\r\n [TC.PASSWORD_MISMATCH]: \"Passwords don't match.\",\r\n [TC.PASSWORD_INVALID]: 'The password must be between 8 and 15 characters, at least one upper and lower case, at least one number and a special character.',\r\n [TC.INVALID_REQUEST]: 'The validation request contains incorrect data.',\r\n [TC.EMAIL_NOT_SENT]: \"Could not send email\",\r\n [TC.AUTH_REQUIRED]: 'It is necessary to check the authorization to use your personal data in order to proceed.',\r\n [TC.UNKNOWN_ERROR]: 'An error occurred. Please try again.',\r\n [TC.PASSWORD_UPDATED]: 'Password successfully updated.',\r\n [TC.TIME_OUT]: 'Check your Internet connection.',\r\n [TC.MISSING_CREDENTIALS]: 'Missing user data.',\r\n [TC.SIGNUP_ACTIVATION_SUCCESS]: 'Account successfully activated.',\r\n [TC.RECOVER_PASSWORD_SUCCESS]: 'Password successfully updated.',\r\n [TC.WRONG_CREDENTIALS]: 'Wrong username or password.',\r\n [TC.NO_USER_INFO_AVAILABLE]: 'User not found.',\r\n [TC.SEE_MORE]: 'See visits and activities',\r\n [TC.SEE_LESS]: 'Hide visits and activities',\r\n [TC.PROPERTY_LIST]: 'My Properties',\r\n [TC.ACTIVITIES]: 'Activities',\r\n [TC.TYPE]: 'Type',\r\n [TC.DESCRIPTION]: 'Description',\r\n [TC.REFERENCE]: 'Reference',\r\n};\r\n\r\nexport default res_en;\r\n","import i18n from 'i18next';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\nimport {LANGUAGE_WHITELIST} from \"../config/config\";\r\nimport res_pt from './res_pt';\r\nimport res_br from './res_br';\r\nimport res_en from './res_en';\r\n\r\ni18n.use(LanguageDetector).init({\r\n fallbackLng: 'pt',\r\n whitelist: LANGUAGE_WHITELIST,\r\n ns: [\"translations\"],\r\n defaultNS: \"translations\",\r\n resources: {\r\n 'pt-PT': {\r\n translations: res_pt\r\n },\r\n 'pt-BR': {\r\n translations: res_br\r\n },\r\n 'pt': {\r\n translations: res_pt\r\n },\r\n 'en': {\r\n translations: res_en\r\n }\r\n }\r\n});\r\n\r\nexport default i18n;\r\n","import * as TC from '../res/textConstants';\r\nimport i18n from '../res/i18n';\r\nimport {LANGUAGES_AVAILABLE, COUNTRIES, COUNTRY_LANGUAGES, STYLE_BREAKPOINTS} from \"../config/config\";\r\n\r\nexport function getFirstName(name) {\r\n if (!name) {\r\n return '';\r\n }\r\n\r\n return name.split(' ')[0];\r\n}\r\n\r\nexport function composePropertyTitle(type, typology) {\r\n let result = type;\r\n\r\n if (typology) {\r\n const BEDROOM_TEXT = typology === 1 ? TC.BEDROOM : TC.BEDROOMS;\r\n result = `${result} ${typology} ${getTranslatedText(BEDROOM_TEXT)}`;\r\n }\r\n return result;\r\n}\r\n\r\nfunction placeCommaAtEnd(expression) {\r\n if (expression) {\r\n return `${expression},`;\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function composePropertyLocation(country, district, county, parish) {\r\n district = placeCommaAtEnd(district);\r\n county = placeCommaAtEnd(county);\r\n parish = placeCommaAtEnd(parish);\r\n\r\n country = country.toLowerCase();\r\n\r\n let result;\r\n switch(country) {\r\n case 'cabo verde':\r\n case 'angola':\r\n case 'moçambique':\r\n result = `${parish} ${county} ${district}`;\r\n break;\r\n\r\n default:\r\n result = `${parish} ${county}`;\r\n break;\r\n }\r\n\r\n\r\n return result.substring(0, result.length - 1);\r\n}\r\n\r\nexport function removeWhiteSpaces(expression) {\r\n return expression.replace(/ /g, '');\r\n}\r\n\r\nexport function formatPrice(price, currency = '€') {\r\n if(!price) {\r\n return '';\r\n }\r\n\r\n let intPart = parseInt(price).toString();\r\n const aux = price\r\n .toString()\r\n .replace(',', '.')\r\n .split('.');\r\n const decPart = aux.length > 1 ? aux[1] : '';\r\n\r\n intPart = spaceExpression(intPart);\r\n\r\n if(decPart) {\r\n return `${intPart}.${decPart} ${currency}`;\r\n }\r\n return `${intPart} ${currency}`;\r\n}\r\n\r\nexport function spaceExpression(expression, spaceInterval=3) {\r\n if(!expression) {\r\n return '';\r\n }\r\n\r\n expression = removeWhiteSpaces(expression)\r\n .split('')\r\n .reverse('');\r\n\r\n let result = '';\r\n for (const i in expression) {\r\n if (i !== 0 && i % spaceInterval === 0) {\r\n result += ' ';\r\n }\r\n result += expression[i];\r\n }\r\n\r\n return result\r\n .split('')\r\n .reverse()\r\n .join('')\r\n .trim();\r\n}\r\n\r\nexport function formatPhoneNumber(expression) {\r\n if (!expression) {\r\n return '';\r\n }\r\n\r\n return spaceExpression(expression);\r\n}\r\n\r\nexport function formatDate(dateStr) {\r\n const aux = new Date(dateStr);\r\n const year = aux.getFullYear();\r\n let month = aux.getMonth() + 1;\r\n month = month < 10 ? `0${month}` : `${month}`;\r\n\r\n let day = aux.getDate();\r\n day = day < 10 ? `0${day}` : `${day}`;\r\n\r\n\r\n return `${day}-${month}-${year}`;\r\n}\r\n\r\nexport function loadRecaptcha() {\r\n const url = `https://www.google.com/recaptcha/api.js?render=${window.imp.RECAPTCHA_KEY}`;\r\n const script = document.createElement('script');\r\n script.src = url;\r\n document.body.appendChild(script);\r\n}\r\n\r\nexport function checkRecaptcha(actionName) {\r\n return window.grecaptcha.execute(window.imp.RECAPTCHA_KEY, {action: actionName});\r\n}\r\n\r\nexport function pickErrorMessage(serverMessage = \"\") {\r\n const messageKey = serverMessage.toUpperCase();\r\n let message = TC[messageKey];\r\n if (!message) {\r\n message = 'UNKNOWN_ERROR';\r\n }\r\n\r\n return message;\r\n}\r\n\r\nexport function getTranslatedText(resourceKey) {\r\n return i18n.getResource(i18n.language, \"translations\", resourceKey);\r\n}\r\n\r\nexport function getAvailableLanguages(country) {\r\n const countryCode = COUNTRIES[country];\r\n\r\n if(!country || !countryCode) {\r\n return LANGUAGES_AVAILABLE;\r\n }\r\n\r\n return COUNTRY_LANGUAGES[countryCode];\r\n}\r\n\r\nexport function getCurrentBreakPoint (width) {\r\n return [...STYLE_BREAKPOINTS]\r\n .reverse()\r\n .find(bk => {\r\n return width >= bk;\r\n });\r\n}\r\n","import { HANDLERS } from \"../config/config\";\r\nimport { REQUEST_TIMEOUT } from \"../config/config\";\r\nimport axios from \"axios\";\r\nimport { pickErrorMessage } from \"./utils\";\r\n\r\nconst postRequest = (url, data, method = \"post\") => {\r\n return axios({\r\n method: method,\r\n url,\r\n timeout: REQUEST_TIMEOUT,\r\n withCredentials: true,\r\n responseType: \"json\",\r\n responseEncoding: \"utf8\",\r\n data\r\n });\r\n};\r\n\r\nconst promiseFactory = (handler, data = {}, portalToken) => {\r\n data.portal_token = portalToken || window.imp.PORTAL_TOKEN;\r\n\r\n return new Promise((res, rej) => {\r\n postRequest(handler, JSON.stringify(data))\r\n .then(result => {\r\n result = result.data;\r\n if (result.Exception.ClassName) {\r\n rej(pickErrorMessage(result.Exception.Message));\r\n return;\r\n }\r\n\r\n if (!result.Response.Data) {\r\n rej(pickErrorMessage());\r\n return;\r\n }\r\n\r\n res(result.Response.Data);\r\n })\r\n .catch(e => {\r\n console.log(\"->\", handler, e);\r\n rej(pickErrorMessage());\r\n });\r\n });\r\n};\r\n\r\nexport const getCompanyInfo = (data, portal_token) => {\r\n return promiseFactory(HANDLERS.COMPANY_INFO, data, portal_token);\r\n};\r\n\r\nexport const checkIfUserLoggedIn = () => {\r\n return promiseFactory(HANDLERS.USER);\r\n};\r\n\r\nexport const login = (username, password) => {\r\n const data = {\r\n username,\r\n password\r\n };\r\n\r\n return promiseFactory(HANDLERS.LOGIN, data);\r\n};\r\n\r\nexport const signup = (fullname, username, auth, token) => {\r\n const data = {\r\n fullname,\r\n username,\r\n auth,\r\n token\r\n };\r\n\r\n return promiseFactory(HANDLERS.SIGNUP, data);\r\n};\r\n\r\nexport const forgotPassword = (username, token) => {\r\n const data = {\r\n username,\r\n token\r\n };\r\n\r\n return promiseFactory(HANDLERS.FORGOT_PASSWORD, data);\r\n};\r\n\r\nexport const accountActivation = (\r\n username,\r\n password,\r\n userToken,\r\n recaptchaToken\r\n) => {\r\n const data = {\r\n username,\r\n password,\r\n userToken: encodeURIComponent(userToken),\r\n token: recaptchaToken\r\n };\r\n\r\n return promiseFactory(HANDLERS.ACCOUNT_ACTIVATION, data);\r\n};\r\n\r\nexport const recoverPassword = (\r\n username,\r\n password,\r\n userToken,\r\n recaptchaToken\r\n) => {\r\n const data = {\r\n username,\r\n password,\r\n userToken: encodeURIComponent(userToken),\r\n token: recaptchaToken\r\n };\r\n\r\n return promiseFactory(HANDLERS.RECOVER_PASSWORD, data);\r\n};\r\n\r\nexport const updatePassword = (username, oldPassword, newPassword) => {\r\n const data = {\r\n username,\r\n oldPassword,\r\n newPassword\r\n };\r\n\r\n return promiseFactory(HANDLERS.UPDATE_PASSWORD, data);\r\n};\r\n\r\nexport function logout() {\r\n return promiseFactory(HANDLERS.LOGOUT);\r\n}\r\n\r\nexport function getUserProperties(parameters) {\r\n // Function to retrieve own properties.\r\n return promiseFactory(HANDLERS.PROPERTIES_USER, parameters);\r\n}\r\n\r\nexport function getAgencyProperties(parameters) {\r\n return promiseFactory(HANDLERS.PROPERTIES_AGENCY, parameters);\r\n}\r\n\r\nexport function sendMessage(message, propertyId, token) {\r\n const data = {\r\n message,\r\n propertyId,\r\n token\r\n };\r\n\r\n return promiseFactory(HANDLERS.SEND_MESSAGE, data);\r\n}\r\n\r\nexport function getJsonProperties(country) {\r\n const data = {};\r\n const jsonURL = \"https://cdn.gimob.net/json/\" + country + \".json\";\r\n return propertyFactory(jsonURL, data);\r\n}\r\n\r\nconst propertyFactory = (handler, data) => {\r\n return new Promise((res, rej) => {\r\n axios\r\n .get(handler)\r\n .then(result => {\r\n if (!result.data) {\r\n rej(pickErrorMessage());\r\n return;\r\n }\r\n res(result.data);\r\n })\r\n .catch(e => {\r\n console.log(\"->\", handler, e);\r\n rej(pickErrorMessage());\r\n });\r\n });\r\n};\r\n","export const START_INITIAL_LOADING = 'START_INITIAL_LOADING';\r\nexport const END_INITIAL_LOADING = 'END_INITIAL_LOADING';\r\nexport const START_CONTENT_LOADING = 'CONTENT_LOADING';\r\nexport const END_CONTENT_LOADING = 'END_CONTENT_LOADING';\r\nexport const START_BUTTON_LOADING = 'START_BUTTON_LOADING';\r\nexport const END_BUTTON_LOADING = 'END_BUTTON_LOADING';\r\n\r\nexport function startInitialLoading() {\r\n return {\r\n type: START_INITIAL_LOADING\r\n }\r\n}\r\n\r\nexport function endInitialLoading() {\r\n return {\r\n type: END_INITIAL_LOADING\r\n }\r\n}\r\n\r\nexport function startContentLoading() {\r\n return {\r\n type: START_CONTENT_LOADING\r\n }\r\n}\r\n\r\nexport function endContentLoading() {\r\n return {\r\n type: END_CONTENT_LOADING\r\n }\r\n}\r\n\r\nexport function startButtonLoading() {\r\n return {\r\n type: START_BUTTON_LOADING\r\n }\r\n}\r\n\r\nexport function endButtonLoading() {\r\n return {\r\n type: END_BUTTON_LOADING\r\n }\r\n}","import Alert from 'react-s-alert';\r\nimport {getTranslatedText} from './utils';\r\n\r\nexport default function alertDispatcher(type, message, timeout = 2000) {\r\n /**\r\n * @param {string} type Type of the error message (warning, info, error).\r\n * */\r\n\r\n message = getTranslatedText(message);\r\n\r\n Alert[type](`${message}`, {\r\n position: 'top-right',\r\n effect: 'slide',\r\n timeout,\r\n offset: 0\r\n });\r\n};\r\n","export const ALERT_MESSAGE_TYPE = {\r\n WARNING: 'warning',\r\n INFO: 'info',\r\n ERROR: 'error',\r\n SUCCESS: 'success'\r\n};\r\n","import * as API from '../helpers/API';\r\nimport {startContentLoading, endContentLoading} from \"./loading\";\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {composePropertyLocation, composePropertyTitle, formatDate} from \"../helpers/utils\"; \r\n\r\nexport const SET_PROPERTIES_USER = \"SET_PROPERTIES_USER\";\r\nexport const CLEAR_PROPERTIES_USER = \"CLEAR_PROPERTIES_USER\";\r\n\r\nfunction setUserProperties(properties) {\r\n return {\r\n type: SET_PROPERTIES_USER,\r\n properties\r\n };\r\n}\r\n\r\nexport function handleSetUserProperties(parameters) {\r\n return (dispatch) => {\r\n dispatch(startContentLoading());\r\n API.getUserProperties(parameters)\r\n .then(data => {\r\n const properties = data.Properties;\r\n const agents = data.Properties_agents;\r\n const visits = data.Properties_visits;\r\n const gallery = data.Properties_gallery;\r\n const activities = data.Activities;\r\n\r\n visits.map((visit, index) => {\r\n visit.start_date = formatDate(visit.start_date);\r\n visit.id = index;\r\n return visit;\r\n });\r\n\r\n activities.map((activity, index) => {\r\n activity.insert_date = formatDate(activity.insert_date);\r\n activity.id = index;\r\n return activity;\r\n });\r\n\r\n properties.map(property => {\r\n property.gallery = gallery.filter(photo => photo.property_id === property.id);\r\n property.agents = agents.filter(agent => agent.property_id === property.id);\r\n property.visits = visits.filter(visit => visit.property_id === property.id);\r\n property.activities = activities.filter(activity => activity.property_id === property.id);\r\n property.location = composePropertyLocation(property.location_level_1, property.location_level_2, property.location_level_3, property.location_level_4);\r\n property.completeLocation = property.location_level_1 + \", \" + property.location_level_2 + \", \" + property.location_level_3 + \", \" + property.location_level_4;\r\n property.title = composePropertyTitle(property.type, property.bedrooms);\r\n delete property.location_level_1;\r\n delete property.location_level_2;\r\n delete property.location_level_3;\r\n delete property.location_level_4;\r\n return property;\r\n });\r\n\r\n dispatch(setUserProperties(properties));\r\n dispatch(endContentLoading());\r\n })\r\n .catch(error => {\r\n dispatch(endContentLoading());\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n });\r\n };\r\n}\r\n\r\nexport function clearUserProperties() {\r\n return {\r\n type: CLEAR_PROPERTIES_USER\r\n }\r\n}\r\n","import * as API from \"../helpers/API\";\r\nimport { startContentLoading, endContentLoading } from \"./loading\";\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport { ALERT_MESSAGE_TYPE } from \"../helpers/constants\";\r\nimport {\r\n composePropertyLocation,\r\n composePropertyTitle\r\n} from \"../helpers/utils\";\r\nimport { CLEAR_PROPERTIES_USER } from \"./propertiesUser\";\r\n\r\nexport const SET_PROPERTIES_AGENCY = \"SET_PROPERTIES_AGENCY\";\r\nexport const CLEAR_PROPERTIES_AGENCY = \"CLEAR_PROPERTIES_AGENCY\";\r\n\r\nfunction setAgencyProperties(properties) {\r\n return {\r\n type: SET_PROPERTIES_AGENCY,\r\n properties\r\n };\r\n}\r\n\r\nexport function handleSetAgencyProperties(parameters) {\r\n return dispatch => {\r\n dispatch(startContentLoading());\r\n API.getAgencyProperties(parameters)\r\n .then(data => {\r\n const properties = data.Properties;\r\n const agents = data.Properties_agents;\r\n const gallery = data.Properties_gallery;\r\n const descriptions = data.Properties_descriptions;\r\n\r\n properties.map(property => {\r\n property.gallery = gallery.filter(\r\n photo => photo.property_id === property.id\r\n );\r\n property.agents = agents.filter(\r\n agent => agent.property_id === property.id\r\n );\r\n const description = descriptions.find(\r\n desc => desc.property_id === property.id\r\n );\r\n property.description = description ? description.description : null;\r\n property.location = composePropertyLocation(\r\n property.location_level_1,\r\n property.location_level_2,\r\n property.location_level_3,\r\n property.location_level_4\r\n );\r\n property.completeLocation =\r\n property.location_level_1 +\r\n \", \" +\r\n property.location_level_2 +\r\n \", \" +\r\n property.location_level_3 +\r\n \", \" +\r\n property.location_level_4;\r\n property.title = composePropertyTitle(\r\n property.type,\r\n property.bedrooms\r\n );\r\n delete property.location_level_1;\r\n delete property.location_level_2;\r\n delete property.location_level_3;\r\n delete property.location_level_4;\r\n return property;\r\n });\r\n\r\n dispatch(setAgencyProperties(properties));\r\n dispatch(endContentLoading());\r\n })\r\n .catch(error => {\r\n dispatch(endContentLoading());\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n });\r\n };\r\n}\r\n\r\nexport function clearAgencyProperties() {\r\n return {\r\n type: CLEAR_PROPERTIES_USER\r\n };\r\n}\r\n","import * as API from '../helpers/API';\r\nimport {startInitialLoading, endInitialLoading, startButtonLoading, endButtonLoading} from './loading'\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {clearUserProperties} from \"./propertiesUser\";\r\nimport {clearAgencyProperties} from \"./propertiesAgency\";\r\n\r\nexport const SET_AUTHED_USER = 'SET_AUTHED_USER';\r\nexport const REMOVE_AUTHED_USER = 'REMOVE_AUTHED_USER';\r\n\r\nfunction setAuthedUser(authedUser) {\r\n return {\r\n type: SET_AUTHED_USER,\r\n authedUser\r\n }\r\n}\r\n\r\nexport function handleLogin(username, password) {\r\n return (dispatch) => {\r\n dispatch(startButtonLoading());\r\n API.login(username, password)\r\n .then(userData => {\r\n dispatch(setAuthedUser(userData));\r\n dispatch(endButtonLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n dispatch(endButtonLoading());\r\n })\r\n }\r\n}\r\n\r\nexport function handleCheckAuthedUser() {\r\n return (dispatch) => {\r\n dispatch(startInitialLoading());\r\n API.checkIfUserLoggedIn()\r\n .then(userData => {\r\n if(userData) {\r\n dispatch(setAuthedUser(userData));\r\n dispatch(endInitialLoading());\r\n }\r\n })\r\n .catch(e => {\r\n dispatch(endInitialLoading());\r\n })\r\n }\r\n}\r\n\r\nfunction removeAuthedUser() {\r\n return {\r\n type: REMOVE_AUTHED_USER\r\n }\r\n}\r\n\r\nexport function handleRemoveAuthedUser() {\r\n return (dispatch) => {\r\n dispatch(startButtonLoading());\r\n API.logout()\r\n .then(() => {\r\n dispatch(endButtonLoading());\r\n dispatch(removeAuthedUser());\r\n dispatch(clearUserProperties());\r\n dispatch(clearAgencyProperties());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n dispatch(endButtonLoading());\r\n })\r\n }\r\n}\r\n\r\n","import * as API from '../helpers/API';\r\nimport {endInitialLoading, startInitialLoading} from \"./loading\";\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {UNKNOWN_ERROR} from \"../res/textConstants\";\r\n\r\nexport const SET_COMPANY_INFO = 'SET_COMPANY_INFO';\r\n\r\nfunction setCompanyInfo(info) {\r\n return {\r\n type: SET_COMPANY_INFO,\r\n info\r\n }\r\n}\r\n\r\nexport function handleSetCompanyInfo() {\r\n return (dispatch) => {\r\n dispatch(startInitialLoading());\r\n API.getCompanyInfo()\r\n .then(data => {\r\n if(!data.name || !data.fullname || !data.logo) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, UNKNOWN_ERROR, 60000);\r\n return;\r\n }\r\n\r\n dispatch(setCompanyInfo(data));\r\n dispatch(endInitialLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error, 60000);\r\n });\r\n };\r\n}\r\n\r\n","export const SET_APP_WIDTH = \"SET_APP_WIDTH\";\r\n\r\nexport function setWidth(width) {\r\n return {\r\n type: SET_APP_WIDTH,\r\n width\r\n }\r\n}\r\n","import React, {Component, Fragment} from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport {getFirstName} from \"../helpers/utils\";\r\nimport {HELLO, LOGOUT, UPDATE_PASSWORD, PROPERTY_LIST, PRIVATE_BUSINESSES} from \"../res/textConstants\";\r\nimport {handleRemoveAuthedUser} from '../actions/authedUser';\r\nimport { FaPowerOff, FaKey, FaHome } from 'react-icons/fa';\r\nimport {withNamespaces} from 'react-i18next';\r\nimport { Nav, Navbar, NavItem } from 'react-bootstrap';\r\nimport { LinkContainer } from \"react-router-bootstrap\";\r\n\r\nclass Header extends Component {\r\n\r\n state = {\r\n showMenu: false\r\n };\r\n\r\n logout = (event) => {\r\n this.props.dispatch(handleRemoveAuthedUser());\r\n };\r\n\r\n getPathFirstElement = (fullPath) => {\r\n fullPath = fullPath.split('/');\r\n return fullPath.length > 0 ? `/${fullPath[1]}` : '/';\r\n };\r\n\r\n toogleMenu = () => {\r\n this.setState(prev => ({\r\n showMenu: prev.showMenu ? false : true\r\n }));\r\n };\r\n\r\n render() {\r\n const company = this.props.company;\r\n const authedUser = this.props.authedUser;\r\n const {t} = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n {this.props.company && (\r\n \r\n )}\r\n \r\n {authedUser.id && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n };\r\n\r\n}\r\n\r\nfunction mapStateToProps({loading, authedUser, company}, props) {\r\n return {\r\n loading: loading.button > 0,\r\n authedUser,\r\n company,\r\n ...props\r\n }\r\n}\r\n\r\nexport default withRouter(connect(mapStateToProps)(withNamespaces('translations')(Header)));\r\n","import React from 'react';\r\nimport {LOADING} from \"../../res/textConstants\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\nconst Loading = (props) => {\r\n const {t} = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t(LOADING)}

\r\n
\r\n );\r\n};\r\n\r\nexport default withNamespaces('translations')(Loading);","import alertDispatcher from './alertDispatcher';\r\nimport * as TC from '../res/textConstants';\r\nimport {ALERT_MESSAGE_TYPE} from \"./constants\";\r\n\r\n// eslint-disable-next-line\r\nconst REGEX_EMAIL = /^\\w+[\\+\\.\\w-]*@([\\w-]+\\.)*\\w+[\\w-]*\\.([a-z]{2,4}|\\d+)$/i;\r\nconst REG_EXP_PASSWORD = /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,15}$)/;\r\n\r\nexport function validateEmail(email) {\r\n return email.match(REGEX_EMAIL) ? true : false;\r\n}\r\n\r\nexport function validatePassword(password) {\r\n return password.match(REG_EXP_PASSWORD) ? true : false;\r\n}\r\n\r\nfunction validateUsername(username) {\r\n if(!username) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_USERNAME);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'username'\r\n };\r\n }\r\n\r\n if(!validateEmail(username)) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.INVALID_EMAIL);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'username'\r\n };\r\n }\r\n\r\n return {\r\n valid: true\r\n };\r\n}\r\n\r\nfunction comparePasswords(password, confirmPassword) {\r\n const match = password === confirmPassword;\r\n\r\n if(!match) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.PASSWORD_MISMATCH);\r\n }\r\n\r\n return {\r\n valid: match,\r\n invalidField: match ? '' : 'confirmPassword'\r\n }\r\n}\r\n\r\nfunction checkValidPassword(password) {\r\n const validPassword = validatePassword(password);\r\n\r\n if(!validPassword) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.PASSWORD_INVALID, 6000);\r\n }\r\n\r\n return {\r\n valid: validPassword,\r\n invalidField: validPassword ? '' : 'password'\r\n }\r\n}\r\n\r\nfunction validateAuth(auth) {\r\n if(!auth) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.AUTH_REQUIRED, 4000);\r\n return {\r\n valid: false,\r\n invalidField: 'auth'\r\n };\r\n }\r\n\r\n return {\r\n valid: true\r\n }\r\n}\r\n\r\nexport function validateLoginForm(username, password) {\r\n const usernameValidation = validateUsername(username);\r\n if(!usernameValidation.valid) {\r\n return usernameValidation;\r\n }\r\n\r\n if(!username) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_USERNAME);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'username'\r\n };\r\n }\r\n\r\n if(!validateEmail(username)) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.INVALID_EMAIL);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'username'\r\n }\r\n }\r\n\r\n if(!password) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'password'\r\n }\r\n }\r\n\r\n return {\r\n valid: true\r\n }\r\n}\r\n\r\nexport function validateSignupForm(fullname, username, auth) {\r\n if(!fullname) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_FULL_NAME);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'fullname'\r\n }\r\n }\r\n\r\n const usernameValidation = validateUsername(username);\r\n if(!usernameValidation.valid) {\r\n return usernameValidation;\r\n }\r\n\r\n const authValidation = validateAuth(auth);\r\n if(!authValidation.valid) {\r\n return authValidation;\r\n }\r\n\r\n return {\r\n valid: true\r\n };\r\n}\r\n\r\nexport function validateForgotPasswordForm(username, auth) {\r\n const usernameValidation = validateUsername(username);\r\n if(!usernameValidation.valid) {\r\n return usernameValidation;\r\n }\r\n\r\n const authValidation = validateAuth(auth);\r\n if(!authValidation.valid) {\r\n return authValidation;\r\n }\r\n\r\n return {\r\n valid: true\r\n }\r\n}\r\n\r\nexport function validatePasswordSetForm(username, password, confirmPassword) {\r\n const usernameValidation = validateUsername(username);\r\n if(!usernameValidation.valid) {\r\n return usernameValidation;\r\n }\r\n\r\n if(!password) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'password'\r\n }\r\n }\r\n\r\n if(!confirmPassword) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_CONFIRM_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'confirmPassword'\r\n }\r\n }\r\n\r\n const comparePasswordValidation = comparePasswords(password, confirmPassword);\r\n if(!comparePasswordValidation.valid) {\r\n return comparePasswordValidation;\r\n }\r\n\r\n const passwordValidation = checkValidPassword(password);\r\n if(!passwordValidation.valid) {\r\n return passwordValidation;\r\n }\r\n\r\n return {\r\n valid: true\r\n };\r\n}\r\n\r\nexport function validateUpdatePasswordForm(oldPassword, newPassword, confirmPassword) {\r\n if(!oldPassword) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_OLD_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'oldPassword'\r\n }\r\n }\r\n\r\n if(!newPassword) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_NEW_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'newPassword'\r\n }\r\n }\r\n\r\n if(!confirmPassword) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_CONFIRM_PASSWORD);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'confirmPassword'\r\n }\r\n }\r\n\r\n const comparePasswordValidation = comparePasswords(newPassword, confirmPassword);\r\n if(!comparePasswordValidation.valid) {\r\n return comparePasswordValidation;\r\n }\r\n\r\n const passwordValidation = checkValidPassword(newPassword);\r\n if(!passwordValidation.valid) {\r\n return passwordValidation;\r\n }\r\n\r\n return {\r\n valid: true\r\n };\r\n}\r\n\r\nexport function validateContactForm(message) {\r\n if(!message) {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.WARNING, TC.MISSING_MESSAGE);\r\n\r\n return {\r\n valid: false,\r\n invalidField: 'message'\r\n }\r\n }\r\n\r\n return {\r\n valid: true\r\n }\r\n}\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst FormGroupInput = (props) => {\r\n\r\n // TODO: QUANDO OS DADOS DO CAMPO NAO SAO VALIDOS HA UM PROP QUE ASSINALA\r\n // props.invalidField = true;\r\n\r\n return(\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nFormGroupInput.propTypes = {\r\n className: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n type: PropTypes.string,\r\n name: PropTypes.string.isRequired,\r\n placeholder: PropTypes.string,\r\n invalidField: PropTypes.bool,\r\n value: PropTypes.string.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n disabled: PropTypes.bool,\r\n avoidAnimation: PropTypes.bool\r\n};\r\n\r\nexport default FormGroupInput;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst ButtonSubmit = (props) => {\r\n\r\n // TODO: HA UM PROP QUE ASSINALA SE UM LOADING ESTA A DECORRER PARA SE DESATIVAR O BOTAO\r\n // props.loading = true;\r\n\r\n return(\r\n \r\n {props.label}\r\n \r\n );\r\n};\r\n\r\nButtonSubmit.propTypes = {\r\n className: PropTypes.string,\r\n label: PropTypes.string.isRequired,\r\n loading: PropTypes.bool,\r\n onClick: PropTypes.func.isRequired\r\n};\r\n\r\nexport default ButtonSubmit;","import React, {Component} from 'react';\r\nimport {Link} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport {handleLogin} from \"../actions/authedUser\";\r\nimport {validateLoginForm} from '../helpers/validator';\r\nimport FormGroupInput from './dummy/forms/FormGroupInput';\r\nimport ButtonSubmit from \"./dummy/forms/ButtonSubmit\";\r\nimport {withNamespaces} from 'react-i18next';\r\nimport {LOGIN, USERNAME, PASSWORD, LOGIN_TERMS, FORGOT_MY_PASSWORD, LOGIN_GREETING_1, LOGIN_GREETING_2} from '../res/textConstants';\r\n\r\nclass Login extends Component {\r\n state = {\r\n authedUser: '',\r\n username: '',\r\n password: '',\r\n invalidField: ''\r\n };\r\n\r\n componentDidMount() {\r\n const {username} = this.props.match.params;\r\n\r\n if(username) {\r\n this.setState({\r\n username\r\n });\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if(props.authedUser.id && state.authedUser === '') {\r\n if(props.authedUser.permissions.own_properties) {\r\n props.history.push('/imoveis');\r\n } else {\r\n props.history.push('/negocios-privados');\r\n }\r\n\r\n return {\r\n ...state,\r\n authedUser: state.authedUser.id\r\n }\r\n }\r\n\r\n return state;\r\n }\r\n\r\n clearInvalidField = () => {\r\n this.setState(prev => ({\r\n invalidField: []\r\n }));\r\n };\r\n\r\n setInvalidField = (newInvalid) => {\r\n this.setState(prev => ({\r\n invalidField: newInvalid\r\n }));\r\n };\r\n\r\n checkIfFieldInvalid = (fieldName) => {\r\n return fieldName === this.state.invalidField\r\n };\r\n\r\n onChange = (event) => {\r\n const value = event.target.value;\r\n const name = event.target.name;\r\n\r\n this.setState(prev => ({\r\n [name]: value\r\n }));\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n\r\n this.clearInvalidField();\r\n const validationResult = validateLoginForm(this.state.username, this.state.password);\r\n if(validationResult.valid) {\r\n this.props.dispatch(handleLogin(this.state.username, this.state.password));\r\n } else {\r\n this.setInvalidField(validationResult.invalidField);\r\n }\r\n };\r\n\r\n render() {\r\n const {t} = this.props;\r\n return (\r\n
\r\n
\r\n
\r\n

{t(LOGIN)}

\r\n
\r\n

{t(LOGIN_GREETING_1)}

\r\n

\r\n {t(LOGIN_GREETING_2)}\r\n {t(LOGIN_TERMS)}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n

{t(FORGOT_MY_PASSWORD)}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps({loading, authedUser}, props) {\r\n return {\r\n loading: loading.button > 0,\r\n authedUser,\r\n ...props\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withNamespaces('translations')(Login));\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst Auth = (props) => {\r\n return(\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nAuth.propTypes = {\r\n label: PropTypes.array || PropTypes.string,\r\n checked: PropTypes.bool,\r\n onChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Auth;","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {\r\n USERNAME,\r\n SIGNUP,\r\n LOGIN,\r\n AUTH_GENERIC,\r\n AUTH_SIGNUP,\r\n ALREADY_HAVE_ACCOUNT,\r\n FULL_NAME,\r\n SIGNUP_GREETING_1,\r\n SIGNUP_GREETING_2,\r\n LOGIN_TERMS\r\n} from '../res/textConstants';\r\nimport FormGroupInput from \"./dummy/forms/FormGroupInput\";\r\nimport ButtonSubmit from \"./dummy/forms/ButtonSubmit\";\r\nimport {validateSignupForm} from \"../helpers/validator\";\r\nimport { signup } from \"../helpers/API\";\r\nimport alertDispatcher from '../helpers/alertDispatcher';\r\nimport { ALERT_MESSAGE_TYPE } from \"../helpers/constants\";\r\nimport {Link} from \"react-router-dom\";\r\nimport Auth from './dummy/forms/Auth';\r\nimport {startButtonLoading, endButtonLoading} from \"../actions/loading\";\r\nimport {checkRecaptcha} from \"../helpers/utils\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\nclass Signup extends Component {\r\n state = {\r\n fullname: '',\r\n username: '',\r\n auth: false,\r\n invalidField: ''\r\n };\r\n\r\n clearInvalidField = () => {\r\n this.setState(prev => ({\r\n invalidField: []\r\n }));\r\n };\r\n\r\n setInvalidField = (newInvalid) => {\r\n this.setState(prev => ({\r\n invalidField: newInvalid\r\n }));\r\n };\r\n\r\n checkIfFieldInvalid = (fieldName) => {\r\n return fieldName === this.state.invalidField\r\n };\r\n\r\n onChange = (event) => {\r\n const value = event.target.value;\r\n const name = event.target.name;\r\n\r\n this.setState(prev => ({\r\n [name]: value\r\n }));\r\n };\r\n\r\n onCheckboxChange = (event) => {\r\n const { name, checked } = event.target;\r\n\r\n this.setState(prev => ({\r\n [name]: checked\r\n }));\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n\r\n this.clearInvalidField();\r\n const validationResult = validateSignupForm(this.state.fullname, this.state.username, this.state.auth);\r\n\r\n if(validationResult.valid) {\r\n // Direct call to API.\r\n // No data will be stored in redux store.\r\n this.props.dispatch(startButtonLoading());\r\n checkRecaptcha('recoverPassword')\r\n .then(token => {\r\n signup(this.state.fullname, this.state.username, this.state.auth, token)\r\n .then(data => {\r\n this.props.history.push('/registo/sucesso');\r\n this.props.dispatch(endButtonLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n this.props.dispatch(endButtonLoading());\r\n });\r\n });\r\n } else {\r\n this.setInvalidField(validationResult.invalidField);\r\n }\r\n };\r\n\r\n render() {\r\n const {t} = this.props;\r\n return (\r\n
\r\n
\r\n
\r\n

{t(SIGNUP)}

\r\n
\r\n

{t(SIGNUP_GREETING_1)}

\r\n

\r\n {t(SIGNUP_GREETING_2)}\r\n {t(LOGIN_TERMS)}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n {t(AUTH_GENERIC)}]}\r\n checked={this.state.auth}\r\n onChange={this.onCheckboxChange}/>\r\n\r\n \r\n\r\n \r\n
\r\n

{t(ALREADY_HAVE_ACCOUNT)} {t(LOGIN)}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps({loading}) {\r\n return {\r\n loading: loading.button > 0\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(withNamespaces('translations')(Signup));\r\n","import React from 'react';\r\nimport {BACK_HOME, SIGNUP_REQUEST_SENT, VALIDATION_NEEDED_INFO_1, VALIDATION_NEEDED_INFO_2} from \"../res/textConstants\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\n\r\nconst SignupSuccess = (props) => {\r\n const goHome = () => {\r\n props.history.push('/');\r\n };\r\n\r\n const {t} = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t(SIGNUP_REQUEST_SENT)}

\r\n
\r\n

{t(VALIDATION_NEEDED_INFO_1)}

\r\n

{t(VALIDATION_NEEDED_INFO_2)}

\r\n
\r\n \r\n {t(BACK_HOME)}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withNamespaces('translations')(SignupSuccess);\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport {\r\n LOGIN,\r\n USERNAME,\r\n PASSWORD,\r\n SIGNUP_ACTIVATION,\r\n CONFIRM_NEW_PASSWORD,\r\n RECOVER_PASSWORD,\r\n ALREADY_HAVE_ACCOUNT,\r\n SIGNUP_ACTIVATION_SUCCESS,\r\n RECOVER_PASSWORD_SUCCESS,\r\n LOGIN_GREETING_1,\r\n LOGIN_GREETING_2,\r\n LOGIN_TERMS,\r\n ACTIVATE\r\n} from \"../res/textConstants\";\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {validateEmail, validatePasswordSetForm} from \"../helpers/validator\";\r\nimport FormGroupInput from \"./dummy/forms/FormGroupInput\";\r\nimport ButtonSubmit from \"./dummy/forms/ButtonSubmit\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {endButtonLoading, startButtonLoading} from \"../actions/loading\";\r\nimport {checkRecaptcha} from \"../helpers/utils\";\r\nimport {accountActivation, recoverPassword} from \"../helpers/API\";\r\n\r\nclass PasswordSet extends Component {\r\n state = {\r\n tokenValid: null,\r\n username: '',\r\n password: '',\r\n confirmPassword: ''\r\n };\r\n\r\n userToken = null;\r\n type = null;\r\n title = null;\r\n apiCall = null;\r\n\r\n componentDidMount() {\r\n const {username, token} = this.props.match.params;\r\n\r\n if(!username || !token || !validateEmail(username)) {\r\n this.goHome();\r\n return;\r\n }\r\n\r\n this.setState({\r\n username: username\r\n });\r\n\r\n this.userToken = token;\r\n\r\n if(this.props.type === 'signup') {\r\n this.type = 'signup';\r\n this.title = SIGNUP_ACTIVATION;\r\n this.apiCall = accountActivation;\r\n } else {\r\n this.type = 'recover';\r\n this.title = RECOVER_PASSWORD;\r\n this.apiCall = recoverPassword;\r\n }\r\n }\r\n\r\n goHome = () => {\r\n this.props.history.push('/');\r\n };\r\n\r\n clearInvalidField = () => {\r\n this.setState(prev => ({\r\n invalidField: []\r\n }));\r\n };\r\n\r\n setInvalidField = (newInvalid) => {\r\n this.setState(prev => ({\r\n invalidField: newInvalid\r\n }));\r\n };\r\n\r\n checkIfFieldInvalid = (fieldName) => {\r\n return fieldName === this.state.invalidField\r\n };\r\n\r\n onChange = (event) => {\r\n const value = event.target.value;\r\n const name = event.target.name;\r\n\r\n this.setState(prev => ({\r\n [name]: value\r\n }));\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n\r\n this.clearInvalidField();\r\n const validationResult = validatePasswordSetForm(this.state.username, this.state.password, this.state.confirmPassword);\r\n if(validationResult.valid) {\r\n this.props.dispatch(startButtonLoading());\r\n checkRecaptcha('account_activation')\r\n .then(token => {\r\n this.apiCall(this.state.username, this.state.password, this.userToken, token)\r\n .then(() => {\r\n const message = this.type === 'signup' ? SIGNUP_ACTIVATION_SUCCESS : RECOVER_PASSWORD_SUCCESS;\r\n alertDispatcher(ALERT_MESSAGE_TYPE.SUCCESS, message);\r\n this.props.history.push(`/login/${this.state.username}`);\r\n this.props.dispatch(endButtonLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n this.props.dispatch(endButtonLoading());\r\n });\r\n });\r\n } else {\r\n this.setInvalidField(validationResult.invalidField);\r\n }\r\n };\r\n\r\n render() {\r\n const {t} = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t(this.title)}

\r\n
\r\n

{t(LOGIN_GREETING_1)}

\r\n

\r\n {t(LOGIN_GREETING_2)}\r\n {t(LOGIN_TERMS)}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n
\r\n

{t(ALREADY_HAVE_ACCOUNT)} {t(LOGIN)}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nfunction mapStateToProps({loading}, props) {\r\n return {\r\n loading: loading.button > 0,\r\n ...props\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withNamespaces('translations')(PasswordSet));\r\n","import React, {Component} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport FormGroupInput from './dummy/forms/FormGroupInput';\r\nimport ButtonSubmit from './dummy/forms/ButtonSubmit';\r\nimport {USERNAME, SEND, AUTH_FORGOT_PASSWORD, AUTH_GENERIC, RECOVER_PASSWORD, ALREADY_HAVE_ACCOUNT, LOGIN, RECOVER_GREETING_1, RECOVER_GREETING_2, LOGIN_TERMS} from \"../res/textConstants\";\r\nimport {validateForgotPasswordForm} from \"../helpers/validator\";\r\nimport {forgotPassword} from \"../helpers/API\";\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {Link} from \"react-router-dom\";\r\nimport Auth from './dummy/forms/Auth';\r\nimport {checkRecaptcha} from \"../helpers/utils\";\r\nimport {startButtonLoading, endButtonLoading} from \"../actions/loading\";\r\nimport {withNamespaces} from 'react-i18next';\r\n\r\nclass ForgotPassword extends Component {\r\n state = {\r\n username: '',\r\n auth: false,\r\n invalidField: ''\r\n };\r\n\r\n clearInvalidField = () => {\r\n this.setState(prev => ({\r\n invalidField: []\r\n }));\r\n };\r\n\r\n setInvalidField = (newInvalid) => {\r\n this.setState(prev => ({\r\n invalidField: newInvalid\r\n }));\r\n };\r\n\r\n checkIfFieldInvalid = (fieldName) => {\r\n return fieldName === this.state.invalidField;\r\n };\r\n\r\n onChange = (event) => {\r\n const { name, value } = event.target;\r\n\r\n this.setState(prev => ({\r\n [name]: value\r\n }));\r\n };\r\n\r\n onCheckboxChange = (event) => {\r\n const { name, checked } = event.target;\r\n\r\n this.setState(prev => ({\r\n [name]: checked\r\n }));\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n\r\n this.clearInvalidField();\r\n const validationResult = validateForgotPasswordForm(this.state.username, this.state.auth);\r\n if(validationResult.valid) {\r\n this.props.dispatch(startButtonLoading());\r\n checkRecaptcha('forgotpassword')\r\n .then(token => {\r\n forgotPassword(this.state.username, token)\r\n .then(() => {\r\n this.props.history.push('/senha/envio');\r\n this.props.dispatch(endButtonLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n this.props.dispatch(endButtonLoading());\r\n });\r\n });\r\n } else {\r\n this.setInvalidField(validationResult.invalidField);\r\n }\r\n };\r\n\r\n render() {\r\n const {t} = this.props;\r\n return (\r\n
\r\n
\r\n
\r\n

{t(RECOVER_PASSWORD)}

\r\n
\r\n

{t(RECOVER_GREETING_1)}

\r\n

\r\n {t(RECOVER_GREETING_2)}\r\n {t(LOGIN_TERMS)}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n {t(AUTH_GENERIC)}]}\r\n checked={this.state.auth}\r\n onChange={this.onCheckboxChange}\r\n />\r\n\r\n \r\n \r\n
\r\n

{t(ALREADY_HAVE_ACCOUNT)} {t(LOGIN)}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps({loading}) {\r\n return {\r\n loading: loading.button > 0\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withNamespaces('translations')(ForgotPassword));\r\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\nconst PropertyImage = (props) => {\r\n const {photo} = props;\r\n\r\n return (\r\n \r\n {photo &&
}\r\n
\r\n );\r\n};\r\n\r\nPropertyImage.propTypes = {\r\n property: PropTypes.string\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyImage);\r\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {formatPrice} from \"../../../helpers/utils\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\nconst PropertyInfo = (props) => {\r\n const {property} = props;\r\n\r\n return (\r\n \r\n
\r\n {property.reference &&
Ref. {property.reference}
}\r\n\r\n

{property.title}

\r\n\r\n {property.location &&
{property.location}
}\r\n\r\n {property.purpose &&
{property.purpose}
}\r\n\r\n {property.price &&
{formatPrice(property.price)}
}\r\n
\r\n
\r\n );\r\n};\r\n\r\nPropertyInfo.propTypes = {\r\n property: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyInfo);\r\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {formatDate, spaceExpression} from \"../../../helpers/utils\";\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {\r\n BUSINESS_ACTIONS,\r\n PUBLISH_WEBSITE,\r\n PUBLISH_PORTAL,\r\n VISIT_VIRTUAL,\r\n CONTRACT_START_DATE,\r\n PROPERTY_FEATURES,\r\n FEATURE_AREA,\r\n FEATURE_NUMBER_OF_ROOMS,\r\n FEATURE_NUMBER_OF_BATHS,\r\n FEATURE_NUMBER_OF_GARAGES,\r\n FEATURE_PRICE_PER_AREA,\r\n FEATURE_ENERGY_RATING,\r\n WEBSITE_VIEWS\r\n} from '../../../res/textConstants';\r\nimport {FaCheck, FaTimes} from 'react-icons/fa';\r\nimport {LIST_TYPES} from \"../../../config/config\";\r\n\r\nconst PropertyFeatures = (props) => {\r\n const {t, type} = props;\r\n const {property} = props;\r\n\r\n const showOwnerInfo = type !== LIST_TYPES.PRIVATE_BUSINESSES ? true : false;\r\n\r\n let priceArea = Math.round(property.price / property.grossarea);\r\n priceArea = priceArea && !isNaN(priceArea) ? priceArea : null;\r\n\r\n return (\r\n \r\n\r\n {showOwnerInfo &&\r\n
\r\n

{t(BUSINESS_ACTIONS)}

\r\n
    \r\n {property.realtor_contract_begin_date &&\r\n
  • \r\n {t(CONTRACT_START_DATE)}\r\n {formatDate(property.realtor_contract_begin_date)}\r\n
  • \r\n }\r\n\r\n {property.show_in_website &&\r\n
  • \r\n {t(PUBLISH_WEBSITE)}\r\n {property.show_in_website ? : }\r\n
  • \r\n }\r\n\r\n {property.show_in_portals &&\r\n
  • \r\n {t(PUBLISH_PORTAL)}\r\n {property.show_in_portals ? : }\r\n
  • \r\n }\r\n\r\n {property.num_virtual_visit > 0 &&\r\n
  • \r\n {t(VISIT_VIRTUAL)}\r\n {property.num_virtual_visit}\r\n
  • \r\n }\r\n\r\n {property.website_views > 0 &&\r\n
  • \r\n {t(WEBSITE_VIEWS)}\r\n {spaceExpression(property.website_views.toString())}\r\n
  • \r\n }\r\n
\r\n
\r\n }\r\n\r\n {!showOwnerInfo &&\r\n
\r\n

{t(PROPERTY_FEATURES)}

\r\n
    \r\n {property.bedrooms &&\r\n
  • \r\n {t(FEATURE_NUMBER_OF_ROOMS)}\r\n {property.bedrooms}\r\n
  • \r\n }\r\n\r\n {property.bathrooms &&\r\n
  • \r\n {t(FEATURE_NUMBER_OF_BATHS)}\r\n {property.bathrooms}\r\n
  • \r\n }\r\n\r\n {property.garagecars &&\r\n
  • \r\n {t(FEATURE_NUMBER_OF_GARAGES)}\r\n {property.garagecars}\r\n
  • \r\n }\r\n\r\n {property.grossarea &&\r\n
  • \r\n {t(FEATURE_AREA)}\r\n {property.grossarea} m2\r\n
  • \r\n }\r\n\r\n {priceArea &&\r\n
  • \r\n {t(FEATURE_PRICE_PER_AREA)}\r\n {priceArea} € / m2\r\n
  • \r\n }\r\n\r\n {property.energy_rating &&\r\n
  • \r\n {t(FEATURE_ENERGY_RATING)}\r\n {property.energy_rating}\r\n
  • \r\n }\r\n\r\n
\r\n
\r\n }\r\n\r\n
\r\n );\r\n};\r\n\r\nPropertyFeatures.propTypes = {\r\n property: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyFeatures);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {FaStar} from 'react-icons/fa'\r\n\r\nconst Stars = (props) => {\r\n const stars = [];\r\n\r\n let i;\r\n const length = props.stars || 0;\r\n for (i = 0; i < length; i++) {\r\n stars.push(`star-${i}`);\r\n }\r\n\r\n return (\r\n
\r\n {length > 0 && (\r\n
\r\n {stars.map(star => (\r\n \r\n ))}\r\n
\r\n )}\r\n\r\n {length === 0 && (\r\n
-
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nStars.propTypes = {\r\n stars: PropTypes.number\r\n};\r\n\r\nexport default Stars;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport Stars from './Stars';\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {DATE, VISIT_PRICE, VISIT_LOCATION, CONDITION, VISIT_POSITIVE, VISIT_NEGATIVE, VISIT_PROPERTY} from '../../res/textConstants';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport { FaSort, FaSortUp, FaSortDown } from 'react-icons/fa';\r\n\r\nconst Visits = (props) => {\r\n const visits = props.visits;\r\n\r\n const starFormatter = (cell) => {\r\n return ();\r\n };\r\n\r\n const sortCaret = (order, column) => {\r\n if (!order) return ();\r\n else if (order === 'asc') return ();\r\n else if (order === 'desc') return ();\r\n return null;\r\n };\r\n\r\n const {t} = props;\r\n\r\n const columns = [{\r\n dataField: 'start_date',\r\n text: `${t(DATE)}`,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n align: 'center',\r\n headerStyle: (colum, colIndex) => {\r\n return { width: '8%' };\r\n }\r\n }, {\r\n dataField: 'price',\r\n text: `${t(VISIT_PRICE)}`,\r\n formatter: starFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n align: 'center',\r\n headerClasses: 'star-column'\r\n }, {\r\n dataField: 'location',\r\n text: `${t(VISIT_LOCATION)}`,\r\n formatter: starFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n align: 'center',\r\n headerClasses: 'star-column'\r\n }, {\r\n dataField: 'conservation_state',\r\n text: `${t(CONDITION)}`,\r\n formatter: starFormatter,\r\n sort: false,\r\n sortCaret: sortCaret,\r\n align: 'center',\r\n headerClasses: 'star-column'\r\n }, {\r\n dataField: 'obs',\r\n text: `${t(VISIT_POSITIVE)}`,\r\n sort: false,\r\n headerClasses: 'point-column'\r\n }, {\r\n dataField: 'obs2',\r\n text: `${t(VISIT_NEGATIVE)}`,\r\n sort: false,\r\n headerClasses: 'point-column'\r\n }];\r\n\r\n const defaultSorted = [{\r\n dataField: 'start_date',\r\n order: 'desc'\r\n }];\r\n\r\n return (\r\n
\r\n
\r\n

{t(VISIT_PROPERTY)}

\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nVisits.propTypes = {\r\n visits: PropTypes.array.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(Visits);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport defaultProfile from '../../images/profile.png';\r\nimport {removeWhiteSpaces, formatPhoneNumber} from \"../../helpers/utils\";\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {AGENT_TYPE} from \"../../res/textConstants\";\r\nimport { FaPhone, FaMobileAlt, FaEnvelope } from 'react-icons/fa';\r\n\r\nconst AgentExtended = (props) => {\r\n const {t} = props;\r\n const agent = props.agent;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{agent.name}

\r\n
{t(AGENT_TYPE)}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nAgentExtended.propTypes = {\r\n agent: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(AgentExtended);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {DATE, TYPE, CLIENT_NAME, ACTIVITY_PROPERTY} from '../../res/textConstants';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport {ACTIVITY_TYPE} from \"../../config/config\";\r\n\r\nconst ActivityRow = (props) => {\r\n const {t, activitiesList, showTitle} = props;\r\n\r\n activitiesList.map(activity => {\r\n activity.activity_type = t(ACTIVITY_TYPE[activity.activity_type_id]);\r\n return activity;\r\n });\r\n\r\n const columns = [\r\n {\r\n dataField: 'insert_date',\r\n text: `${t(DATE)}`,\r\n sort: false,\r\n align: 'center',\r\n headerStyle: (colum, colIndex) => {\r\n return {width: '24%'};\r\n }\r\n },\r\n {\r\n dataField: 'activity_type',\r\n text: `${t(TYPE)}`,\r\n sort: false,\r\n align: 'center',\r\n headerStyle: (colum, colIndex) => {\r\n return {width: '38%'};\r\n }\r\n },\r\n {\r\n dataField: 'client_name',\r\n text: `${t(CLIENT_NAME)}`,\r\n sort: false,\r\n align: 'center',\r\n headerStyle: (colum, colIndex) => {\r\n return {width: '38%'};\r\n }\r\n },\r\n ];\r\n\r\n const defaultSorted = [{\r\n dataField: 'insert_date',\r\n order: 'desc'\r\n }];\r\n\r\n return (\r\n
\r\n

{t(ACTIVITY_PROPERTY)}

\r\n\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nActivityRow.propTypes = {\r\n activitiesList: PropTypes.array.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(ActivityRow);\r\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PropertyImage from './PropertyImage';\r\nimport PropertyInfo from './PropertyInfo';\r\nimport PropertyFeatures from './PropertyFeatures';\r\nimport Visits from '../Visits';\r\nimport AgentExtended from '../AgentExtended';\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {VISIT_PROPERTY, ACTIVITIES_PROPERTY, SEE_LESS, SEE_MORE, FEATURE_DESCRIPTION, FEATURE_VIEW_DESCRIPTION, FEATURE_HIDE_DESCRIPTION} from '../../../res/textConstants';\r\nimport {FaCaretLeft, FaCaretRight} from 'react-icons/fa';\r\nimport {Carousel} from 'react-bootstrap';\r\nimport 'rc-collapse/assets/index.css';\r\nimport Collapse, {Panel} from 'rc-collapse';\r\nimport {FaRegImage, FaArrowAltCircleDown, FaArrowAltCircleUp} from 'react-icons/fa';\r\nimport ActivityRow from '../ActivityRow';\r\nimport {LIST_TYPES} from \"../../../config/config\";\r\n\r\nconst PropertyRow = (props) => {\r\n const {\r\n t,\r\n property,\r\n activeKey,\r\n setActivityKey,\r\n onChangeTable,\r\n accordion,\r\n numActivityTables,\r\n showCollapsable,\r\n type\r\n } = props;\r\n\r\n const {\r\n agents,\r\n visits,\r\n gallery\r\n } = property;\r\n\r\n let {activities} = property;\r\n\r\n const showOwnerInfo = type !== LIST_TYPES.PRIVATE_BUSINESSES ? true : false;\r\n\r\n if (showOwnerInfo) {\r\n activities = splitActivitiesList(activities, numActivityTables);\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n {gallery.length > 0 && (\r\n\r\n gallery.length === 1 ? (\r\n \r\n ) : (\r\n } prevIcon={}>\r\n {gallery.map((photo, i) => (\r\n \r\n \r\n \r\n )\r\n )}\r\n \r\n )\r\n )}\r\n\r\n {gallery.length === 0 && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n {/*APENAS PARA IMOVEIS DO QUAL O UTILIZADOR É PROPRIETARIO*/}\r\n {showOwnerInfo && (visits.length > 0 || activities.length > 0) &&\r\n
\r\n
    \r\n {visits.length > 0 &&\r\n
  • \r\n {t(VISIT_PROPERTY)}\r\n {visits.length}\r\n
  • \r\n }\r\n\r\n {activities.length > 0 &&\r\n
  • \r\n {t(ACTIVITIES_PROPERTY)}\r\n {activities.length}\r\n
  • \r\n }\r\n
\r\n\r\n {showCollapsable ?\r\n \r\n :\r\n \r\n }\r\n
\r\n }\r\n\r\n {/*APENAS PARA IMOVEIS PRIVATE BUSINESS*/}\r\n {!showOwnerInfo && property.description &&\r\n
\r\n {showCollapsable ?\r\n \r\n :\r\n \r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n {agents.length > 0 && (\r\n agents.length === 1 ? (\r\n agents.map(agent => (\r\n
\r\n \r\n
\r\n )\r\n )\r\n ) : (\r\n }\r\n prevIcon={}>\r\n {agents.map(agent => (\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n )}\r\n
\r\n )\r\n )}\r\n
\r\n
\r\n\r\n {/* FOR PROPERTIES OWNED BY USER */}\r\n {showOwnerInfo &&
\r\n {(visits.length > 0 || activities.length > 0) &&\r\n
\r\n \r\n\r\n \r\n {visits.length > 0 &&\r\n
\r\n \r\n
\r\n }\r\n\r\n {visits.length > 0 && activities.length > 0 &&\r\n
\r\n\r\n
\r\n }\r\n\r\n {activities.length > 0 &&\r\n
\r\n {activities.map((partialList, ind) => )}\r\n
\r\n }\r\n\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n\r\n {/*FOR PRIVATE BUSINESS PROPERTIES*/}\r\n {!showOwnerInfo && property.description && (\r\n
\r\n
\r\n \r\n \r\n
\r\n

{t(FEATURE_DESCRIPTION)}

\r\n

{property.description}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n\r\n
\r\n );\r\n};\r\n\r\nfunction splitActivitiesList(mainList, tables) {\r\n let lists = [];\r\n\r\n mainList.map((activity, i) => {\r\n const tableIndex = i % tables;\r\n if (lists.length <= tableIndex) {\r\n lists.push([]);\r\n }\r\n\r\n lists[tableIndex].push(activity);\r\n return activity;\r\n });\r\n\r\n return lists;\r\n}\r\n\r\nPropertyRow.propTypes = {\r\n property: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyRow);\r\n","import React, {Fragment} from 'react';\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport {REFERENCE} from '../.././../res/textConstants';\r\nimport {FaBed, FaMapMarkerAlt} from 'react-icons/fa';\r\nimport NumberFormat from 'react-currency-format';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst PropertyFilter = (props) => {\r\n const {\r\n t\r\n } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nPropertyFilter.propTypes = {\r\n reference: PropTypes.string.isRequired,\r\n location: PropTypes.string.isRequired,\r\n purpose: PropTypes.string.isRequired,\r\n purposesAvailable: PropTypes.array.isRequired,\r\n group: PropTypes.string.isRequired,\r\n groupsAvailable: PropTypes.array.isRequired,\r\n type: PropTypes.string.isRequired,\r\n typesAvailable: PropTypes.array.isRequired,\r\n typesDisabled: PropTypes.bool.isRequired,\r\n bedsMin: PropTypes.string.isRequired,\r\n bedsMinAvailable: PropTypes.array.isRequired,\r\n bedsMax: PropTypes.string.isRequired,\r\n bedsMaxAvailable: PropTypes.array.isRequired,\r\n bedsDisabled: PropTypes.bool.isRequired,\r\n priceMin: PropTypes.string.isRequired,\r\n priceMax: PropTypes.string.isRequired,\r\n onFilterChange: PropTypes.func.isRequired,\r\n onFilterPriceMinChange: PropTypes.func.isRequired,\r\n onFilterPriceMaxChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyFilter);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { FaHouseDamage } from 'react-icons/fa';\r\n\r\nconst NoResults = (props) => {\r\n return(\r\n
\r\n
\r\n \r\n

{props.text}

\r\n
\r\n
\r\n );\r\n};\r\n\r\nNoResults.propTypes = {\r\n text: PropTypes.string.isRequired\r\n};\r\n\r\nexport default NoResults;\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport PropertyRow from \"./dummy/property/PropertyRow\";\r\nimport PropertyFilter from \"./dummy/property/PropertyFilter\";\r\nimport Loading from \"./dummy/Loading\";\r\nimport NoResults from \"./dummy/NoResults\";\r\nimport {\r\n NO_RESULTS,\r\n PRIVATE_BUSINESSES,\r\n PROPERTY_LIST\r\n} from \"../res/textConstants\";\r\nimport { withNamespaces } from \"react-i18next\";\r\nimport { getCurrentBreakPoint } from \"../helpers/utils\";\r\nimport { handleSetUserProperties } from \"../actions/propertiesUser\";\r\nimport { handleSetAgencyProperties } from \"../actions/propertiesAgency\";\r\nimport { LIST_TYPES } from \"../config/config\";\r\nimport Pagination from \"react-js-pagination\";\r\n\r\nimport * as API from \"../helpers/API\";\r\nimport {\r\n PROPERTY_BEDS_MAX,\r\n PROPERTY_BEDS_MIN,\r\n LIST_ORDER_BY\r\n} from \"../config/config\";\r\n\r\nclass PropertyList extends Component {\r\n uiRemoved = false;\r\n\r\n state = {\r\n forceLogin: false,\r\n accordion: false,\r\n showCollapsable: {},\r\n activeKey: [],\r\n location: \"\",\r\n bedsMin: \"\",\r\n bedsMinJSON: [],\r\n bedsMax: \"\",\r\n bedsMaxJSON: [],\r\n bedsDisabled: true,\r\n priceMin: \"\",\r\n priceMax: \"\",\r\n purpose: \"\",\r\n purposesJSON: [],\r\n group: \"\",\r\n groupsJSON: [],\r\n type: \"\",\r\n initialtypesJSON: [],\r\n typesJSON: [],\r\n typesDisabled: true,\r\n reference: \"\",\r\n orderBy: \"\",\r\n orderByJSON: [],\r\n activePage: 1\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.authedUser.id) {\r\n this.setState(prev => ({\r\n forceLogin: true\r\n }));\r\n return;\r\n }\r\n\r\n const privateBusinessesPath =\r\n this.props.match.path === \"/negocios-privados\";\r\n if (\r\n privateBusinessesPath &&\r\n !this.props.authedUser.permissions.private_businesses\r\n ) {\r\n this.setState(prev => ({\r\n forceLogin: true\r\n }));\r\n return;\r\n }\r\n\r\n const ownPropertiesPath = this.props.match.path === \"/imoveis\";\r\n if (\r\n ownPropertiesPath &&\r\n !this.props.authedUser.permissions.own_properties\r\n ) {\r\n this.setState(prev => ({\r\n forceLogin: true\r\n }));\r\n return;\r\n }\r\n\r\n if (this.props.properties.length === 0) {\r\n this.getProperties(this.props.type);\r\n }\r\n\r\n API.getJsonProperties(this.props.company.country)\r\n .then(data => {\r\n const firstPurposeElement = {\r\n id: -1,\r\n properties: false,\r\n angariation: false,\r\n text: {\r\n pt: \"Finalidade\",\r\n en: \"Purpose\"\r\n }\r\n };\r\n const firstGroupElement = {\r\n id: -1,\r\n text: {\r\n pt: \"Grupo\",\r\n en: \"Group\"\r\n }\r\n };\r\n const firstTypeElement = {\r\n id: -1,\r\n angariation: false,\r\n bath: false,\r\n bed: false,\r\n energyRatings: false,\r\n garage: false,\r\n group: -1,\r\n living: false,\r\n text: {\r\n pt: \"Tipo\",\r\n en: \"Type\"\r\n }\r\n };\r\n data.groups.unshift(firstGroupElement);\r\n data.types.unshift(firstTypeElement);\r\n data.purposes.unshift(firstPurposeElement);\r\n\r\n this.setState({\r\n groupsJSON: data.groups,\r\n typesJSON: data.types,\r\n initialtypesJSON: data.types,\r\n purposesJSON: data.purposes,\r\n bedsMinJSON: PROPERTY_BEDS_MIN,\r\n bedsMaxJSON: PROPERTY_BEDS_MAX,\r\n orderByJSON: LIST_ORDER_BY\r\n });\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (!props.authedUser.id) {\r\n return {\r\n ...state,\r\n forceLogin: true\r\n };\r\n }\r\n\r\n return {\r\n ...state\r\n };\r\n }\r\n\r\n getTitle = type => {\r\n switch (type) {\r\n case LIST_TYPES.PRIVATE_BUSINESSES:\r\n return PRIVATE_BUSINESSES;\r\n\r\n case LIST_TYPES.OWN_PROPERTIES:\r\n default:\r\n return PROPERTY_LIST;\r\n }\r\n };\r\n\r\n getProperties(type) {\r\n switch (type) {\r\n case LIST_TYPES.PRIVATE_BUSINESSES:\r\n this.props.dispatch(\r\n handleSetAgencyProperties({\r\n username: this.props.authedUser.email\r\n })\r\n );\r\n break;\r\n\r\n case LIST_TYPES.OWN_PROPERTIES:\r\n default:\r\n this.props.dispatch(\r\n handleSetUserProperties({\r\n username: this.props.authedUser.email\r\n })\r\n );\r\n break;\r\n }\r\n }\r\n\r\n onChangeTable = activeKey => {\r\n this.setState({\r\n activeKey\r\n });\r\n };\r\n\r\n setActivityKey = key => {\r\n if (this.state.activeKey.indexOf(key.toString()) === -1) {\r\n this.setState(prev => ({\r\n activeKey: [...prev.activeKey, key.toString()]\r\n }));\r\n } else {\r\n this.setState(prev => ({\r\n activeKey: prev.activeKey.filter(item => {\r\n return item !== key;\r\n })\r\n }));\r\n }\r\n this.setState(prev => ({\r\n showCollapsable: {\r\n ...prev.showCollapsable,\r\n [key]: prev.showCollapsable[key] ? false : true\r\n }\r\n }));\r\n };\r\n\r\n //FILTERS\r\n onFilterChange = event => {\r\n let value = event.target.value.toString();\r\n let name = event.target.name.toString();\r\n this.setState({\r\n [name]: value\r\n });\r\n\r\n if (name === \"purpose\") this.setState({ priceMin: \"\", priceMax: \"\" });\r\n if (name === \"group\")\r\n this.setState({ type: \"-1\", bedsMin: \"-1\", bedsMax: \"-1\" });\r\n if (name === \"type\") this.setState({ bedsMin: \"-1\", bedsMax: \"-1\" });\r\n };\r\n\r\n onFilterPriceMinChange = event => {\r\n this.setState({\r\n priceMin: event.value\r\n });\r\n };\r\n\r\n onFilterPriceMaxChange = event => {\r\n this.setState({\r\n priceMax: event.value\r\n });\r\n };\r\n\r\n handlePageChange = pageNumber => {\r\n this.setState({ activePage: pageNumber });\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n render() {\r\n if (this.state.forceLogin && !this.uiRemoved) {\r\n this.uiRemoved = true;\r\n return ;\r\n }\r\n\r\n if (this.props.loading.content > 0) {\r\n return ;\r\n }\r\n\r\n let properties = this.props.properties;\r\n let typesFromGroup = this.state.typesJSON;\r\n let bedsDisabled = true;\r\n let typesDisabled = true;\r\n let typesIDS = [];\r\n let locationStringArray = [];\r\n let itemsCountPerPage = 25;\r\n let itemsCount = 0;\r\n\r\n if (this.state.reference)\r\n properties = properties.filter(property =>\r\n property.reference\r\n .toLowerCase()\r\n .includes(this.state.reference.toLowerCase())\r\n );\r\n if (this.state.location) {\r\n locationStringArray = this.state.location\r\n .toLowerCase()\r\n .trim()\r\n .split(\" \");\r\n locationStringArray.forEach(element => {\r\n properties = properties.filter(property =>\r\n property.completeLocation.toLowerCase().includes(\" \" + element)\r\n );\r\n });\r\n }\r\n if (this.state.priceMin)\r\n properties = properties.filter(\r\n property => property.price >= this.state.priceMin\r\n );\r\n if (this.state.priceMax)\r\n properties = properties.filter(\r\n property => property.price <= this.state.priceMax\r\n );\r\n if (this.state.purpose) {\r\n switch (this.state.purpose.toString()) {\r\n case \"-1\":\r\n properties = properties.filter(\r\n property =>\r\n property.purpose_id.toString() !== this.state.purpose.toString()\r\n );\r\n break;\r\n default:\r\n properties = properties.filter(\r\n property =>\r\n property.purpose_id.toString() === this.state.purpose.toString()\r\n );\r\n }\r\n }\r\n if (this.state.group) {\r\n switch (this.state.group) {\r\n case \"-1\":\r\n properties = properties.filter(\r\n property => property.type_id.toString() !== this.state.group\r\n );\r\n typesDisabled = true;\r\n break;\r\n default:\r\n typesFromGroup = this.state.typesJSON.filter(\r\n type =>\r\n type.group.toString() === this.state.group ||\r\n type.group.toString() === \"-1\"\r\n );\r\n typesIDS = typesFromGroup.map(type => {\r\n return type.id.toString();\r\n });\r\n properties = properties.filter(property =>\r\n typesIDS.includes(property.type_id.toString())\r\n );\r\n typesDisabled = false;\r\n }\r\n }\r\n if (this.state.type) {\r\n switch (this.state.type) {\r\n case \"-1\":\r\n properties = properties.filter(\r\n property => property.type_id.toString() !== this.state.type\r\n );\r\n bedsDisabled = true;\r\n break;\r\n default:\r\n properties = properties.filter(\r\n property => property.type_id.toString() === this.state.type\r\n );\r\n let typeBed = this.state.initialtypesJSON.find(\r\n type => type.id.toString() === this.state.type\r\n );\r\n bedsDisabled = !typeBed.bed;\r\n }\r\n }\r\n if (this.state.bedsMin) {\r\n switch (this.state.bedsMin) {\r\n case \"-1\":\r\n properties = properties.filter(\r\n property => property.bedrooms !== this.state.bedsMin\r\n );\r\n break;\r\n default:\r\n properties = properties.filter(\r\n property => property.bedrooms >= this.state.bedsMin\r\n );\r\n }\r\n }\r\n if (this.state.bedsMax) {\r\n switch (this.state.bedsMax) {\r\n case \"-1\":\r\n properties = properties.filter(\r\n property => property.bedrooms !== this.state.bedsMax\r\n );\r\n break;\r\n default:\r\n properties = properties.filter(\r\n property => property.bedrooms <= this.state.bedsMax\r\n );\r\n }\r\n }\r\n if (this.state.orderBy) {\r\n switch (this.state.orderBy.toString()) {\r\n case \"-1\":\r\n break;\r\n case \"0\":\r\n properties.sort((a, b) => (a.bedrooms > b.bedrooms ? 1 : -1));\r\n break;\r\n case \"1\":\r\n properties.sort((a, b) => (a.bedrooms < b.bedrooms ? 1 : -1));\r\n break;\r\n case \"2\":\r\n properties.sort((a, b) => (a.price > b.price ? 1 : -1));\r\n break;\r\n case \"3\":\r\n properties.sort((a, b) => (a.price < b.price ? 1 : -1));\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n // Page properties\r\n itemsCount = properties.length;\r\n if (properties.length > itemsCountPerPage) {\r\n properties = properties.slice(\r\n (this.state.activePage - 1) * itemsCountPerPage,\r\n (this.state.activePage - 1) * itemsCountPerPage + itemsCountPerPage\r\n );\r\n }\r\n\r\n const { t } = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{t(this.getTitle(this.props.type))}

\r\n
\r\n
\r\n {this.props.properties.length > 9 && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n\r\n {properties.length === 0 && this.props.authedUser.id && (\r\n \r\n )}\r\n\r\n
\r\n \r\n {properties.map(property => (\r\n \r\n ))}\r\n \r\n
\r\n {itemsCount > itemsCountPerPage && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction getNumOfTables(width) {\r\n const bkPt = getCurrentBreakPoint(width);\r\n\r\n switch (bkPt) {\r\n case 0:\r\n case 576:\r\n return 1;\r\n\r\n case 768:\r\n case 992:\r\n return 2;\r\n\r\n default:\r\n return 3;\r\n }\r\n}\r\n\r\nfunction getDefaultAgent(company) {\r\n return [\r\n {\r\n id: company.name,\r\n name: company.name,\r\n phone: company.subsidiary_phone,\r\n cell_phone: company.subsidiary_cell_phone,\r\n email: company.subsidiary_email\r\n }\r\n ];\r\n}\r\n\r\nfunction mapStateToProps(\r\n {\r\n loading,\r\n company,\r\n authedUser,\r\n propertiesUser,\r\n propertiesAgency,\r\n parameters\r\n },\r\n props\r\n) {\r\n //const page = queryString.parse(props.location.search).page || 1;\r\n const properties =\r\n props.type === LIST_TYPES.PRIVATE_BUSINESSES\r\n ? propertiesAgency\r\n : propertiesUser;\r\n\r\n // If a property has no agents, put default values.\r\n properties.map(property => {\r\n if (property.agents.length === 0) {\r\n property.agents = getDefaultAgent(company);\r\n }\r\n\r\n return property;\r\n });\r\n\r\n return {\r\n loading,\r\n company,\r\n authedUser,\r\n properties,\r\n parameters,\r\n ...props\r\n };\r\n}\r\n\r\nexport default connect(mapStateToProps)(\r\n withNamespaces(\"translations\")(PropertyList)\r\n);\r\n","import React, {Component} from 'react';\r\nimport {Redirect} from \"react-router-dom\";\r\nimport Loading from \"./dummy/Loading\";\r\nimport {connect} from 'react-redux';\r\nimport FormGroupInput from './dummy/forms/FormGroupInput';\r\nimport ButtonSubmit from './dummy/forms/ButtonSubmit';\r\nimport {UPDATE_PASSWORD, OLD_PASSWORD, NEW_PASSWORD, CONFIRM_NEW_PASSWORD, SEND} from \"../res/textConstants\";\r\nimport {validateUpdatePasswordForm} from \"../helpers/validator\";\r\nimport {updatePassword} from '../helpers/API';\r\nimport alertDispatcher from \"../helpers/alertDispatcher\";\r\nimport {ALERT_MESSAGE_TYPE} from \"../helpers/constants\";\r\nimport {startButtonLoading, endButtonLoading} from \"../actions/loading\";\r\nimport {PASSWORD_UPDATED} from \"../res/textConstants\";\r\nimport {checkRecaptcha} from \"../helpers/utils\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\nclass UserProfile extends Component {\r\n uiRemoved = false;\r\n\r\n state = {\r\n forceLogin: false,\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: '',\r\n invalidField: ''\r\n };\r\n\r\n componentDidMount() {\r\n if (!this.props.authedUser.id) {\r\n this.setState(prev => ({\r\n forceLogin: true\r\n }));\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n if (!props.authedUser.id) {\r\n return {\r\n ...state,\r\n forceLogin: true\r\n }\r\n }\r\n\r\n return state;\r\n }\r\n\r\n clearInvalidField = () => {\r\n this.setState(prev => ({\r\n invalidField: []\r\n }));\r\n };\r\n\r\n setInvalidField = (newInvalid) => {\r\n this.setState(prev => ({\r\n invalidField: newInvalid\r\n }));\r\n };\r\n\r\n checkIfFieldInvalid = (fieldName) => {\r\n return fieldName === this.state.invalidField\r\n };\r\n\r\n onChange = (event) => {\r\n const value = event.target.value;\r\n const name = event.target.name;\r\n\r\n this.setState(prev => ({\r\n [name]: value\r\n }));\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n\r\n this.clearInvalidField();\r\n\r\n const validationResult = validateUpdatePasswordForm(this.state.oldPassword, this.state.newPassword, this.state.confirmPassword);\r\n if (validationResult.valid) {\r\n this.props.dispatch(startButtonLoading());\r\n checkRecaptcha('recoverPassword')\r\n .then(token => {\r\n updatePassword(this.props.authedUser.email, this.state.oldPassword, this.state.newPassword)\r\n .then(data => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.SUCCESS, PASSWORD_UPDATED);\r\n this.props.dispatch(endButtonLoading());\r\n })\r\n .catch(error => {\r\n alertDispatcher(ALERT_MESSAGE_TYPE.ERROR, error);\r\n this.props.dispatch(endButtonLoading());\r\n });\r\n });\r\n } else {\r\n this.setInvalidField(validationResult.invalidField);\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.forceLogin && !this.uiRemoved) {\r\n this.uiRemoved = true;\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (this.props.loading.content > 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const {t} = this.props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t(UPDATE_PASSWORD)}

\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction mapStateToProps({loading, authedUser}, props) {\r\n return {\r\n loading: loading.buttons > 0,\r\n authedUser,\r\n ...props\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withNamespaces('translations')(UserProfile));\r\n","import React from 'react';\r\nimport {BACK_HOME, RECOVER_REQUEST_SENT, RECOVER_PASSWORD_SENT_INFO_1, RECOVER_PASSWORD_SENT_INFO_2} from \"../res/textConstants\";\r\nimport {withNamespaces} from \"react-i18next\";\r\n\r\n\r\nconst RecoverPasswordSent = (props) => {\r\n const goHome = () => {\r\n props.history.push('/');\r\n };\r\n\r\n const {t} = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

{t(RECOVER_REQUEST_SENT)}

\r\n
\r\n

{t(RECOVER_PASSWORD_SENT_INFO_1)}

\r\n

{t(RECOVER_PASSWORD_SENT_INFO_2)}

\r\n
\r\n \r\n {t(BACK_HOME)}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withNamespaces('translations')(RecoverPasswordSent);\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {FaGlobeAfrica} from \"react-icons/fa\";\r\n\r\nconst Footer = (props) => {\r\n const {language, onLanguageChange, company} = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {company.subsidiary_address}
\r\n {company.subsidiary_address_zipcode}\r\n {company.subsidiary_address_ziplocation}\r\n
\r\n
\r\n {company.subsidiary_phone}
\r\n {company.subsidiary_cell_phone}
\r\n {company.portal_email}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {`© ${new Date().getFullYear()} ${company.fullname}`}\r\n
\r\n
\r\n
\r\n Powered by: Improxy\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n company: PropTypes.object.isRequired,\r\n languagesAvailable: PropTypes.array.isRequired,\r\n language: PropTypes.string.isRequired,\r\n onLanguageChange: PropTypes.func.isRequired\r\n};\r\n\r\nexport default Footer;\r\n","import React, {Fragment} from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport PropertyInfo from './PropertyInfo';\r\nimport {withNamespaces} from \"react-i18next\";\r\nimport 'rc-collapse/assets/index.css';\r\n\r\nconst PropertyRow = (props) => {\r\n const {\r\n property,\r\n } = props;\r\n\r\n const {} = property;\r\n\r\n return (\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nPropertyRow.propTypes = {\r\n property: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withNamespaces('translations')(PropertyRow);\r\n","\r\n// Get visible properties\r\n\r\nexport default (properties, { text }) => {\r\n return properties.filter((property) => {\r\n const textMatch = \"\" //property.description.toLowerCase().includes(text.toLowerCase());\r\n\r\n return textMatch;\r\n });\r\n};\r\n","import React, {Component, Fragment} from 'react';\r\nimport {connect} from 'react-redux';\r\nimport PropertyRow from './dummy/property/PropertyRowTeste';\r\nimport selectProperties from '../selectors/properties';\r\nimport {handleSetUserProperties} from \"../actions/propertiesUser\";\r\n\r\nclass PropertyListTeste extends Component {\r\n\r\n componentDidMount() {\r\n if(this.props.properties.length === 0) {\r\n this.getProperties(this.props.type);\r\n }\r\n }\r\n\r\n getProperties(type) {\r\n this.props.dispatch(handleSetUserProperties());\r\n }\r\n\r\n render() {\r\n const {t} = this.props;\r\n\r\n return(\r\n
\r\n
\r\n\r\n
\r\n \r\n {this.props.properties.map(property => (\r\n\r\n \r\n\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = (state, props) => {\r\n\r\n console.log(\"state: \");\r\n console.log(state);\r\n \r\n return {\r\n properties: selectProperties(state.properties, state.filters)\r\n };\r\n\r\n};\r\n\r\nexport default connect(mapStateToProps)(PropertyListTeste);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { setTextFilter } from '../../../actions/filters';\r\n\r\nclass PropertyListFilter extends React.Component {\r\n state = {\r\n\r\n };\r\n render() {\r\n return (\r\n
\r\n {\r\n this.props.dispatch(setTextFilter(e.target.value));\r\n }}\r\n />\r\n
\r\n );\r\n }\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n filters: state.filters\r\n };\r\n };\r\n \r\n export default connect(mapStateToProps)(PropertyListFilter);","// SET_TEXT_FILTER\r\nexport const setTextFilter = (text = '') => ({\r\n type: 'SET_TEXT_FILTER',\r\n text\r\n});","import React from 'react';\r\nimport PropertyList from './PropertyListTeste';\r\nimport PropertyListFilters from './dummy/property/PropertyListFilters';\r\n\r\nconst PropertyDashboard = () => (\r\n
\r\n \r\n \r\n
\r\n);\r\n\r\nexport default PropertyDashboard;\r\n","import React, {Component, Fragment} from 'react';\nimport {connect} from 'react-redux';\nimport {Route, withRouter, Switch} from 'react-router-dom';\nimport {TransitionGroup, CSSTransition} from 'react-transition-group';\nimport {handleCheckAuthedUser} from \"../actions/authedUser\";\nimport {handleSetCompanyInfo} from \"../actions/company\";\nimport {setWidth} from \"../actions/parameters\";\nimport Header from './Header';\nimport Loading from './dummy/Loading';\nimport Login from './Login';\nimport Signup from './Signup';\nimport SignupSuccess from './SignupSuccess';\nimport PasswordSet from './PasswordSet';\nimport ForgotPassword from './ForgotPassword';\nimport PropertyList from './PropertyList';\nimport UserProfile from './UserProfile';\nimport RecoverPasswordSent from './RecoverPasswordSent';\nimport Footer from './dummy/Footer';\nimport Alert from 'react-s-alert';\nimport 'react-s-alert/dist/s-alert-default.css';\nimport 'react-s-alert/dist/s-alert-css-effects/slide.css';\nimport {LOGOUT_ONLY_ROUTES} from \"../config/config\";\nimport {loadRecaptcha, getAvailableLanguages} from \"../helpers/utils\";\nimport i18n from '../res/i18n';\n\nimport PropertyDashboard from './PropertyDashboard';\n\n\nclass App extends Component {\n state = {\n started: false,\n ready: false,\n recaptcha: {\n ready: false,\n token: null\n },\n language: ''\n };\n\n componentDidMount() {\n\n loadRecaptcha(window.imp.RECAPTCHA_KEY);\n\n this.props.dispatch(handleSetCompanyInfo());\n this.props.dispatch(handleCheckAuthedUser());\n\n this.setState({\n language: i18n.language\n });\n\n window.addEventListener('resize', this.setWidth);\n\n this.setWidth();\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.setWidth);\n }\n\n setWidth = () => {\n this.props.dispatch(setWidth(window.innerWidth));\n };\n\n static getDerivedStateFromProps(props, state) {\n if(!state.started && props.loading.initial > 0) {\n return {\n ...state,\n started: true\n };\n } else if (state.started && !state.ready && !props.loading.initial) {\n const routeSplit = props.location.pathname.split('/');\n let mainRoute = '/';\n if(routeSplit.length > 1) {\n mainRoute = `/${routeSplit[1]}`;\n }\n\n const isOnLogoutOnlyArea = LOGOUT_ONLY_ROUTES.indexOf(mainRoute) !== -1;\n\n if (props.authedUser.id && isOnLogoutOnlyArea) {\n props.history.push(\"/imoveis\");\n }\n\n return {\n ...state,\n ready: true\n };\n }\n\n return state;\n }\n\n componentDidUpdate(prevProps, prevState) {\n if(!localStorage.getItem(\"user-set-language-preference\") && this.props.company.country) {\n\n const newLanguage = getAvailableLanguages(this.props.company.country)[0].value;\n localStorage.setItem(\"user-set-language-preference\", \"1\");\n this.changeLanguage(newLanguage);\n }\n }\n\n changeLanguage = (language) => {\n if(language !== this.state.language) {\n this.setState({\n language\n });\n\n i18n.changeLanguage(language);\n }\n };\n\n\n onLanguageChange = (event) => {\n const language = event.target.value;\n\n if(language !== this.state.language) {\n this.setState({\n language\n });\n\n i18n.changeLanguage(language);\n }\n };\n\n render() {\n if (!this.state.ready) {\n return (\n \n \n \n \n )\n }\n\n const company = this.props.company;\n\n return (\n \n
\n \n \n \n \n \n \n \n \n }/>\n \n \n }/>\n \n } />\n \n \n \n \n \n \n {\n this.changeLanguage(event.target.value);\n }}/>\n \n \n );\n }\n}\n\nfunction mapStateToProps({loading, authedUser, company}, props) {\n return {\n loading,\n authedUser,\n company,\n ...props\n };\n}\n\nexport default withRouter(connect(mapStateToProps)(App));\n","import {\r\n START_INITIAL_LOADING,\r\n END_INITIAL_LOADING,\r\n START_CONTENT_LOADING,\r\n END_CONTENT_LOADING,\r\n START_BUTTON_LOADING,\r\n END_BUTTON_LOADING\r\n} from \"../actions/loading\";\r\n\r\nexport default function loading(state = {initial: 0, content: 0, button: 0}, action) {\r\n switch (action.type) {\r\n case START_INITIAL_LOADING:\r\n return {\r\n ...state,\r\n initial: state.initial + 1\r\n };\r\n\r\n case END_INITIAL_LOADING:\r\n return {\r\n ...state,\r\n initial: state.initial - 1\r\n };\r\n\r\n case START_CONTENT_LOADING:\r\n return {\r\n ...state,\r\n content: state.content + 1\r\n };\r\n\r\n case END_CONTENT_LOADING:\r\n return {\r\n ...state,\r\n content: state.content - 1\r\n };\r\n\r\n case START_BUTTON_LOADING:\r\n return {\r\n ...state,\r\n button: state.button + 1\r\n };\r\n\r\n case END_BUTTON_LOADING:\r\n return {\r\n ...state,\r\n button: state.button - 1\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}","import {REMOVE_AUTHED_USER, SET_AUTHED_USER} from \"../actions/authedUser\";\r\n\r\nexport default function authedUser(state = {}, action) {\r\n switch(action.type) {\r\n case SET_AUTHED_USER:\r\n return {\r\n ...action.authedUser,\r\n name: action.authedUser.DisplayName,\r\n id: action.authedUser.UserId\r\n };\r\n\r\n case REMOVE_AUTHED_USER:\r\n return {};\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {SET_COMPANY_INFO} from \"../actions/company\";\r\n\r\nexport default function company(state = {}, action) {\r\n switch(action.type) {\r\n case SET_COMPANY_INFO:\r\n return {\r\n ...action.info\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}","import {CLEAR_PROPERTIES_USER, SET_PROPERTIES_USER} from \"../actions/propertiesUser\";\r\n\r\nexport default function propertiesUser(state = [], action) {\r\n switch(action.type) {\r\n case SET_PROPERTIES_USER:\r\n return [\r\n ...state,\r\n ...action.properties\r\n ];\r\n\r\n case CLEAR_PROPERTIES_USER:\r\n return [];\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {CLEAR_PROPERTIES_AGENCY, SET_PROPERTIES_AGENCY} from \"../actions/propertiesAgency\";\r\n\r\nexport default function propertiesAgency(state = [], action) {\r\n switch(action.type) {\r\n case SET_PROPERTIES_AGENCY:\r\n return [\r\n ...state,\r\n ...action.properties\r\n ];\r\n\r\n case CLEAR_PROPERTIES_AGENCY:\r\n return [];\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import {SET_APP_WIDTH} from \"../actions/parameters\";\r\n\r\nexport default function parameters(state = {}, action) {\r\n switch(action.type) {\r\n case SET_APP_WIDTH:\r\n return {\r\n ...state,\r\n width: action.width\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","// Filters Reducer\r\n\r\nconst filtersReducerDefaultState = {\r\n text: '',\r\n};\r\n\r\nexport default (state = filtersReducerDefaultState, action) => {\r\n switch (action.type) {\r\n case 'SET_TEXT_FILTER':\r\n return {\r\n ...state,\r\n ...state,\r\n text: action.text\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n","import thunk from 'redux-thunk';\r\nimport logger from './logger';\r\n\r\nimport {applyMiddleware} from 'redux';\r\n\r\nlet mdware;\r\n\r\nif (process.env.NODE_ENV === 'development') {\r\n mdware = applyMiddleware(thunk, logger);\r\n} else {\r\n mdware = applyMiddleware(thunk);\r\n}\r\n\r\nexport default mdware;\r\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {BrowserRouter as Router} from 'react-router-dom';\nimport App from './components/App';\nimport {Provider} from 'react-redux';\nimport configureStore from './store/configureStore';\n\nimport getVisibleProperties from './selectors/properties';\n\nimport {I18nextProvider} from 'react-i18next';\nimport i18n from './res/i18n';\nimport {basename} from \"./config/config\";\n\nimport 'normalize.css/normalize.css';\nimport '../node_modules/bootstrap/dist/css/bootstrap-grid.css';\nimport './styles/css/index.css';\n\nconst store = configureStore();\nconst state = store.getState();\n\nconst visibleProperties = getVisibleProperties(state.properties, state.filters);\n\nconst jsx = (\n \n \n \n \n \n \n \n);\n\nReactDOM.render(jsx, document.getElementById('root'));\n","import { createStore, combineReducers } from 'redux';\r\n\r\nimport loading from '../reducers/loading';\r\nimport authedUser from '../reducers/authedUser';\r\nimport company from '../reducers/company';\r\nimport propertiesUser from '../reducers/propertiesUser';\r\nimport propertiesAgency from '../reducers/propertiesAgency';\r\nimport parameters from '../reducers/parameters';\r\nimport filtersReducer from '../reducers/filters';\r\n\r\nimport middleware from '../middleware/index';\r\n\r\nexport default () => {\r\n const store = createStore(\r\n combineReducers({\r\n properties: propertiesUser,\r\n filters: filtersReducer,\r\n loading,\r\n authedUser,\r\n company,\r\n propertiesUser,\r\n propertiesAgency,\r\n parameters\r\n }),\r\n middleware\r\n );\r\n\r\n store.getState();\r\n\r\n return store;\r\n};"],"sourceRoot":""}