{"version":3,"sources":["config/adal-setups.ts","adalConfig.ts","index.tsx","types/state.ts","api/glAxios.ts","utils/config/specifications-fields.ts","utils/config/spaces-fields.ts","utils/sort-files.ts","api/glQueries.ts","redux/actions/pagedListings/set-paging-params.ts","redux/actions/system/set-main-message.ts","types/listing/filters.ts","utils/extract-filters.ts","redux/actions/pagedListings/change-filters.ts","redux/actions/pagedListings/load-listings-paged.ts","redux/reducers/pagedListings/index.ts","redux/reducers/pagedListings/listings-reducer.ts","redux/reducers/pagedListings/assigned-listings-reducer.ts","redux/reducers/pagedListings/skip-reducer.ts","redux/reducers/pagedListings/take-reducer.ts","redux/reducers/pagedListings/more-records-reducer.ts","redux/reducers/pagedListings/search-text-reducer.ts","redux/actions/pagedListings/update-search-text.ts","redux/reducers/pagedListings/filters-reducer.ts","api/defaults/listing.ts","redux/actions/contacts/refresh-all-contacts.ts","redux/actions/listingEntry/update-navbar.ts","redux/actions/listingEntry/update-pending-operation.ts","redux/actions/system/set-suffix-string.ts","redux/actions/system/set-alert-message.ts","redux/actions/system/set-reload-listing-id.ts","redux/actions/listingEntry/publish-listing.ts","redux/actions/system/set-confirm-dialog.ts","redux/actions/listingEntry/export-listing.ts","redux/actions/miq/set-miq-current-records-result.ts","redux/actions/miq/set-miq-status.ts","types/miq/miqExportMessaging.ts","redux/actions/miq/set-miq-export-message.ts","redux/actions/miq/set-miq-search-result.ts","redux/actions/miq/clear-miq-data.ts","redux/actions/miq/get-assigned-listings-count.ts","redux/actions/system/set-is-duplicating-listing.ts","redux/actions/miq/set-miq-export-result.ts","redux/actions/listingEntry/unpublish-listing.ts","redux/actions/listingEntry/save-listing.ts","utils/miq/remove-assign-flag.ts","redux/actions/listingEntry/update-spaces.ts","redux/actions/listingEntry/load-current-listing.ts","redux/reducers/listingEntry/current-listing-reducer.ts","redux/reducers/listingEntry/index.ts","redux/reducers/listingEntry/navbar-reducer.ts","redux/reducers/listingEntry/entry-pending-operations-reducer.ts","redux/reducers/listingEntry/processing-images-reducer.ts","redux/actions/listingEntry/processing-images.ts","redux/reducers/listingEntry/refresh-images-reducer.ts","redux/reducers/listingEntry/update-spaces-reducer.ts","redux/reducers/mapping/index.ts","redux/reducers/mapping/country-reducer.ts","redux/actions/mapping/select-country.ts","redux/reducers/mapping/set-country.ts","redux/actions/mapping/set-country.ts","redux/reducers/mapping/set-country-code-reducer.ts","redux/actions/mapping/set-country-code.ts","redux/actions/featureFlags/update-feature-flags.ts","utils/helpers/check-environment.ts","redux/actions/user/get-admin.ts","redux/actions/system/set-home-site-id.ts","redux/actions/system/load-config-details.ts","redux/actions/system/load-google-maps.ts","redux/actions/system/entry-page-scroll-position.ts","redux/actions/system/set-datasource-popup.ts","redux/actions/system/set-cancel-action.ts","redux/actions/system/set-save-action.ts","redux/actions/system/set-miq-address.ts","redux/reducers/system/index.ts","redux/reducers/system/main-messaging-reducer.ts","redux/reducers/system/alert-messaging-reducer.ts","redux/reducers/system/config-details-reducer.ts","redux/reducers/system/confirm-dialog-reducer.ts","redux/reducers/system/set-analytics-boolean.ts","redux/actions/system/set-analytics-boolean.ts","redux/reducers/system/set-suffix-string.ts","redux/reducers/system/entry-page-scroll-position-reducer.ts","redux/reducers/system/reload-listing-id-reducer.ts","redux/reducers/system/is-duplicating-listing-reducer.ts","redux/reducers/system/datasource-popup-reducer.ts","redux/reducers/system/set-user-reducer.ts","redux/reducers/system/cancel-action-reducer.ts","redux/reducers/system/save-action-reducer.ts","redux/reducers/system/set-home-site-id-reducer.ts","redux/reducers/system/set-miq-address-reducer.ts","redux/reducers/contacts/index.ts","redux/reducers/contacts/all-contacts-reducer.ts","api/defaults/team.ts","redux/actions/teams/load-teams.ts","redux/reducers/teams/index.ts","redux/reducers/teams/current-team-reducer.ts","redux/actions/teams/load-current-team.ts","redux/reducers/teams/all-teams-reducer.ts","redux/actions/miq/select-miq-record-add-edit.ts","redux/actions/miq/set-miq-spaces.ts","redux/reducers/miq/index.ts","redux/reducers/miq/miq-search-selection.ts","redux/reducers/miq/miq-current-records.ts","redux/reducers/miq/miq-pending-add-edit-record.ts","redux/reducers/miq/miq-export-message-reducer.ts","redux/reducers/miq/miq-status.ts","redux/reducers/miq/miq-redirect-reducer.ts","redux/actions/miq/set-miq-redirect.ts","redux/reducers/miq/miq-spaces-reducer.ts","redux/selectors/system/config-details-selector.ts","redux/selectors/system/config-selector.ts","redux/actions/insights/load-insights-action.ts","redux/reducers/insights/index.ts","redux/reducers/insights/insights-loading-reducer.ts","redux/reducers/insights/current-insights-reducer.ts","redux/reducers/index.ts","redux/reducers/featureFlags/feature-flags-reducer.ts","app/createStore.ts","app/routePaths.ts","components/styled-button/styled-button.tsx","redux/selectors/system/config-region-id-selector.ts","components/bulk-upload-button/bulk-upload-button.tsx","redux/selectors/pagedListings/search-text-selector.ts","components/analytics/gl-analytics-context.tsx","redux/selectors/featureFlags/feature-flag-selector.ts","redux/selectors/contacts/all-contacts-selector.ts","views/listings/listings-header.tsx","views/listings/filters/listings-filter-bar.tsx","components/loader/loader.tsx","components/image-avatar/image-avatar.tsx","components/contact-card/util/generate-initials.ts","components/card-broker-view/card-broker-view.tsx","utils/forms/format-number-commas.ts","utils/forms/format-decimals.ts","constants/listing-filter.tsx","api/lookups/listingTypes.ts","redux/selectors/system/user-selector.ts","views/listings/listing-single.tsx","components/listing-section/listing-section.tsx","views/listings/listings-main.tsx","redux/selectors/system/main-message-selector.ts","redux/selectors/system/alert-message-selector.ts","views/common/messages/main-message.tsx","views/common/messages/alert-message.tsx","redux/selectors/pagedListings/paged-listings-selector.ts","redux/selectors/pagedListings/skip-selector.ts","redux/selectors/pagedListings/take-selector.ts","redux/selectors/pagedListings/more-records-selector.ts","api/filters/filter-settings.ts","redux/selectors/pagedListings/filter-setups-selector.ts","redux/selectors/pagedListings/assigned-listings-selector.ts","redux/selectors/system/siteid-selector.ts","views/listings/listings-container.tsx","redux/selectors/entry/current-listing-selector.ts","components/form/gl-form-context.ts","components/form/gl-form-controller.tsx","components/section-heading/section-heading.tsx","views/listingentry/team/listing-team-member-card.tsx","components/form-field-label/form-field-label.tsx","components/searchable-input/searchable-input.tsx","api/users/usersAndTeams.ts","views/listingentry/team/listing-team.tsx","views/listingentry/amenities/amenities.tsx","components/form/gl-form.tsx","types/forms/validation.ts","utils/forms/validation-adapter.ts","types/common/max-lengths.ts","components/form-input/form-input.tsx","components/form-select/form-select.tsx","components/form-upload/thumbnail.tsx","components/popover/popover.tsx","types/listing/file.ts","components/form-checkbox/form-checkbox.tsx","utils/image-check.ts","redux/selectors/entry/refresh-images-selector.ts","components/form-upload/pdf-preview.tsx","components/form-upload/form-upload.tsx","components/form-radiobutton/form-radiobutton.tsx","utils/forms/trigger-focus-change.ts","components/form-radiobutton/form-radiogroup.tsx","components/form-text-area/form-text-area.tsx","components/form-tabbed-text-area/form-tabbed-text-area.tsx","components/form-date-field/form-date-field.tsx","components/form/gl-field-adapter.tsx","components/form/gl-field.tsx","api/apiUtil.ts","api/places/mapbox/mapbox.ts","api/places/pitney-bowes/pitney-bowes.ts","api/places/google/google.ts","redux/selectors/mapping/country-code-selector.ts","utils/config/im.ts","views/listingentry/property/partials/address-fields.tsx","redux/selectors/mapping/country-selector.ts","views/listingentry/render-trigger-util.ts","components/helpful-text-walkthrough/helpful-text-walkthrough.tsx","utils/config/epcRating-options.ts","components/form-checkbox/form-checkbox-wrapper.tsx","utils/helpers/is-desired-environment.ts","views/listingentry/property/property.tsx","utils/forms/field-check.ts","components/form-select-input/form-select-input.tsx","views/listingentry/chargesAndModifiers/multi-dropdown/multi-dropdown.tsx","views/listingentry/chargesAndModifiers/charges-and-modifiers.tsx","utils/keys.ts","components/draggable-list/draggable-multilang-list.tsx","views/listingentry/highlights/highlights.tsx","redux/selectors/entry/navbar-preview-status-selector.ts","views/listingentry/navbar/navbar-status-message.tsx","redux/selectors/system/cancel-action-selector.ts","views/listingentry/listing-navbar.tsx","redux/selectors/router/route-selector.ts","views/listingentry/listing-sidebar.tsx","api/lookups/tax-types.ts","redux/selectors/system/suffix-string-selector.ts","redux/selectors/entry/current-spaces-selector.ts","views/listingentry/specifications/specifications.tsx","utils/listing/calculate-specifications.ts","views/listingentry/sizesAndMeasurements/multi-dropdown/multi-dropdown.tsx","views/listingentry/sizesAndMeasurements/sizes-and-measurements.tsx","utils/config/sizeType-options.ts","components/icon-button/icon-button.tsx","components/accordion/accordion.tsx","components/draggable-accordion/draggable-accordion.tsx","api/lookups/space-flex-names.ts","views/listingentry/spaces/files/space-files.tsx","types/config/config.ts","views/listingentry/spaces/space-form.tsx","views/listingentry/spaces/space.tsx","views/listingentry/spaces/spaces.tsx","assets/images/png/map-placeholder.png","types/map/maps.ts","utils/map.ts","components/map/google/google-map-component.tsx","components/map/google/google-map.tsx","components/map/mapbox/mapbox.tsx","views/listingentry/map/map.tsx","views/listingentry/apiselect/api-select.tsx","components/contact-card/contact-card.tsx","api/contacts/contacts.ts","api/lookups/brokerTypes.ts","views/listingentry/contacts/partials/contacts-form.tsx","api/files/file-upload.ts","redux/actions/contacts/save-contact.ts","views/listingentry/contacts/partials/contact-modal.tsx","views/listingentry/contacts/contacts.tsx","views/listingentry/contacts/contact-util.ts","redux/actions/listingEntry/delete-listing.ts","api/defaults/specs-standard.ts","views/listingentry/validations/published.ts","api/defaults/specs-flex.ts","redux/selectors/system/entry-page-scroll-position-selector.ts","views/listingentry/pointsOfInterest/multi-dropdown/multi-dropdown.tsx","views/listingentry/pointsOfInterest/points-of-interest.tsx","views/listingentry/transportationType/multi-dropdown/multi-dropdown.tsx","views/listingentry/transportationType/transportation-type.tsx","views/listingentry/parkings/multi-dropdown/multi-dropdown.tsx","views/listingentry/parkings/parkings.tsx","views/listingentry/demographics/multi-dropdown/multi-dropdown.tsx","views/listingentry/demographics/demographics.tsx","views/listingentry/auction/auction.tsx","redux/selectors/system/is-duplicating-listing-selector.ts","components/table/gl-table-row.tsx","components/table/gl-table.tsx","components/badge/gl-badge.tsx","utils/listing-display-values.tsx","views/miq/record-display/property-result-view.tsx","views/miq/record-display/records-display-view.tsx","components/spaces-import-modal/spaces-import-model.tsx","views/listingentry/listing-entry.tsx","components/loader/loading-container.tsx","redux/selectors/system/reload-listing-id-selector.ts","views/listingentry/listing-entry-container.tsx","views/teams/team-member-single.tsx","redux/actions/teams/save-team.ts","redux/actions/teams/delete-team.ts","api/users/users.ts","views/teams/team-single.tsx","views/teams/teams-main.tsx","views/teams/teams-header.tsx","redux/selectors/teams/teams-selector.ts","redux/selectors/teams/current-team.ts","views/teams/teams-container.tsx","views/common/header/page-header.tsx","views/miq/miq-sidebar.tsx","redux/selectors/miq/miq-current-record-selector.ts","api/miq/miq.ts","redux/selectors/miq/miq-current-selection-selector.ts","redux/selectors/miq/miq-status-selector.ts","views/miq/select-record/select-record-view.tsx","utils/files/file-util.ts","utils/listing/convert-listing-data.ts","redux/actions/miq/prepare-record-for-add-edit.ts","views/miq/miq-import-container.tsx","redux/selectors/miq/miq-export-message-selector.ts","views/miq/results/export-result-view.tsx","redux/selectors/miq/miq-redirect-selector.ts","views/miq/miq-export-container.tsx","views/admin/admin-header.tsx","views/admin/admin-module.tsx","views/admin/modules/admin-watermark/admin-watermark-display.tsx","views/admin/modules/admin-watermark/admin-watermark.tsx","views/admin/modules/v2-link/v2-link.tsx","views/common/header/site-icon.tsx","redux/actions/admin/grant-access-region.ts","redux/actions/admin/revoke-access-region.ts","views/admin/modules/admin-access/admin-access-region.tsx","views/admin/admin-container.tsx","redux/selectors/insights/insights-loading-selector.ts","redux/selectors/insights/current-insights-record-selector.ts","views/insights/page/insights-property-overview.tsx","views/insights/page/navbar-icon-button.tsx","views/insights/page/insights-navbar.tsx","views/insights/page/sharing/insights-share-dialog.tsx","views/insights/page/insights-record-page.tsx","views/insights/insights-main.tsx","redux/actions/user/new-user.ts","views/user-access.tsx","views/insights/insights-404.tsx","views/brokerimageupload/brokerimageupload.tsx","views/brokerimageupload/brokerimageupload-container.tsx","app/routes.tsx","components/confirmation-dialog/confirmation-dialog.tsx","components/dataSource-popup-dialog/datasource-popup-dialog.tsx","components/miq-popup-address/miq-popup-address.tsx","redux/selectors/system/confirm-dialog-selector.ts","redux/selectors/system/datasource-popup-selector.ts","redux/selectors/system/set-miq-address-popup.ts","views/common/header/region-select.tsx","views/common/header/header-main.tsx","views/common/footer/footer.tsx","themes/default/theme.ts","redux/selectors/common/theme-selector.ts","app/App.tsx","redux/selectors/system/analytics-boolean-selector.ts","redux/selectors/common/route-selector.ts","components/analytics/gl-analytics.tsx","indexApp.tsx","assets/images/png/highway.svg","assets/images/svg/badge.svg","assets/images/svg/contacts-off.svg","assets/images/svg/contacts-on.svg","assets/images/svg/highlights-off.svg","assets/images/svg/highlights-on.svg","assets/images/svg/property-off.svg","assets/images/svg/property-on.svg","assets/images/svg/search-off.svg","assets/images/svg/search-on.svg","assets/images/svg/spaces-off.svg","assets/images/svg/spaces-on.svg","assets/images/svg/specs-off.svg","assets/images/svg/specs-on.svg","assets/images/svg/team-off.svg","assets/images/svg/team-on.svg","assets/images/png/GL-Logo-White.png","assets/images/png/GL-Logo.png","assets/images/png/accordion-drag.png","assets/images/png/accordion-menu.png","assets/images/png/accordion-toggle.png","assets/images/png/airport.png","assets/images/png/amenity.png","assets/images/png/attractions.png","assets/images/png/blue-check.png","assets/images/png/blueStarIcon.png","assets/images/png/calendarIcon.png","assets/images/png/cbre-logo-white.png","assets/images/png/deleteIcon.png","assets/images/png/diagnol-arrow-icon.png","assets/images/png/dragIcon.png","assets/images/png/duplicate-icon-over.png","assets/images/png/duplicate-icon.png","assets/images/png/excelUploadIcon.png","assets/images/png/eyeIcon.png","assets/images/png/ferry.png","assets/images/png/filterIcon.png","assets/images/png/flags/AE.png","assets/images/png/flags/AU.png","assets/images/png/flags/DK.png","assets/images/png/flags/FI.png","assets/images/png/flags/IM.png","assets/images/png/flags/IN.png","assets/images/png/flags/IT.png","assets/images/png/flags/MX.png","assets/images/png/flags/NL.png","assets/images/png/flags/NO.png","assets/images/png/flags/PL.png","assets/images/png/flags/PT.png","assets/images/png/flags/REAL.png","assets/images/png/flags/SG.png","assets/images/png/flags/UK.png","assets/images/png/flags/US.png","assets/images/png/gray-check.png","assets/images/png/green-search-icon.png","assets/images/png/greenDelete.png","assets/images/png/greenDrag.png","assets/images/png/hotPinkStar.png","assets/images/png/hotel.png","assets/images/png/icon-back-arrow.png","assets/images/png/icon-close-dialog-x.png","assets/images/png/icon-close.png","assets/images/png/icon-edit-listing.png","assets/images/png/icon-edit.png","assets/images/png/icon-email-blue.png","assets/images/png/icon-email.png","assets/images/png/icon-error.png","assets/images/png/icon-info.png","assets/images/png/icon-license-blue.png","assets/images/png/icon-license.png","assets/images/png/icon-location-blue.png","assets/images/png/icon-pending.png","assets/images/png/icon-phone-blue.png","assets/images/png/icon-phone.png","assets/images/png/icon-publisherror.png","assets/images/png/icon-search-contacts.png","assets/images/png/icon-share.png","assets/images/png/icon-success-lg.png","assets/images/png/icon-success.png","assets/images/png/icon-support-arrow.png","assets/images/png/icon-support.png","assets/images/png/icon-view-listing.png","assets/images/png/icon-view.png","assets/images/png/icon-warning.png","assets/images/png/icon-watermark.png","assets/images/png/insights-icon.png","assets/images/png/mdi_restaurant_menu.png","assets/images/png/pdfIcon.png","assets/images/png/property-default.png","assets/images/png/rail.png","assets/images/png/shipyard.png","assets/images/png/tooltip-off.png","assets/images/png/tooltip-on.png","assets/images/png/transit.png","config|sync|/^/.*/.json$","../webpack/bootstrap","../webpack/runtime/chunk loaded","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../webpack/startup"],"names":["environmentConfigs","default","adalConfig","tenant","clientId","endpoints","api","cacheLocation","urlMatches","urls","matchingConfig","filter","urlMatch","indexOf","window","location","hostname","config","length","undefined","redirectUri","origin","findURLMatch","authContext","AuthenticationContext","log","loglevel","message","error","console","concat","endpoint","adalApiFetch","fetch","url","options","arguments","adalFetch","withAdalLogin","parent","pathname","startsWith","checks","str","_i","_checks","check","match","isResponse","hash","encodeURIComponent","substring","search","opener","postMessage","legacyRedirect","localStorage","getItem","href","runWithAdal","usr","getCachedUser","analytics","userName","then","response","text","data","identify","email","catch","track","user","profile","siteId","require","PreviewStatusMessage","MainMessageType","AlertMessagingType","_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","resolve","reject","invoke","record","result","__await","unwrapped","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","axiosGet","Axios","axiosPost","gqlData","headers","Accepted","res","axiosGetParam","paramName","paramValue","callback","urlparams","status","fetchPostFile","formData","FormData","append","body","Accept","ok","json","postData","_x2","_postData","apply","_asyncToGenerator","_callee2","_context2","postFileNoWatermarkCheck","_x3","_x4","_postFileNoWatermarkCheck","_callee3","_context3","postFileWithWatermarkCheck","_x5","_x6","_postFileWithWatermarkCheck","_callee4","_context4","checkImage","_x7","_x8","_checkImage","_callee5","imageId","_context5","_watermarkDetectionProcessStatus","_callee6","_context6","watermarkDetectionProcessSetStatus","_x9","_x10","_watermarkDetectionProcessSetStatus","_callee7","runcode","_context7","_postBulkUploadFile","_callee8","regionId","_context8","findSpecificationFields","propertyType","listingType","fieldSetups","specifications","propertyTypeCandidate","findSpacesFields","spaces","fields","spacesPropertyTypeField","propertyTypes","sortGLFiles","filesToSort","sort","a","b","order","primary","file","defaultRegionID","userRoles","regionID","buildRequestData","gql","_templateObject7","_taggedTemplateLiteral","pullSingleListing","id","_templateObject12","listingEditPageFields","importEDPProperties","miqID","_templateObject28","doc","variables","print","_templateObject32","getListingDTO","listingData","prepareListingData","useLeaseRateType","featureFlags","leaseRateTypeEnabled","saveDataSource","dataSource","show","miqId","externalId","published","propertyName","propertyRecordName","configId","propertySubType","propertyUseClass","street","street2","website","brochureURL","operator","headline","Array","isArray","video","walkThrough","city","stateOrProvince","postalCode","String","country","lat","lng","floors","yearBuilt","zoning","energyRating","externalRatings","externalPropertyId","externalPlatformId","buildingDescription","locationDescription","investmentDescription","externalPublishingState","exclusivity","authority","displayAddress","tenancy","salesOpportunity","officeId","portfolio","syndicationFlag","syndicationMarket","availableFrom","photos","brochures","floorplans","highlights","epcGraphs","propertySizes","chargesAndModifiers","contactBrokerForPrice","showPriceWithUoM","leaseTerm","leaseType","leaseRateType","minPrice","maxPrice","minSpace","maxSpace","totalSpace","salePrice","yieldPercentage","measure","taxModifer","bedrooms","parseInt","currencyCode","autoCalculateMinSpace","autoCalculateTotalSpace","autoCalculateMinPrice","autoCalculateMaxPrice","autoCalculateTotalPrice","microMarkets","contacts","userNames","userList","parkings","demoGraphics","pointsOfInterests","transportationTypes","teamNames","teamList","aspects","dataSources","datasource","datasources","other","listingAssignment","auction","eventPlace","eventDate","eventTime","majorEnergySources","scrubMultiLangString","v","map","cultureCode","defaultCultureCode","listing","cultureCodeStr","addToTeam","teams","teamDetails","properties","find","t","toLocaleLowerCase","teamName","split","tl","newTeam","users","languages","space","nameSingle","spaceDescription","headlineSingle","buildingDescriptionSingle","locationDescriptionSingle","investmentDescriptionSingle","spaceDescriptionSingle","imageArrays","fileExtension","substr","lastIndexOf","errorDisplay","loadingMsg","userOverride","watermarkProcessStatus","scrubbedHighlights","highlight","highlightOrder","Number","multiLangEntry","trim","poi","index","places","place","distances","duration","_step","_iterator","_createForOfIteratorHelper","s","n","contact","tempId","contactId","e","f","spaceFieldSetups","spaceLevelAllowedFields","specsAllowedFields","fieldSetupName","fieldSetup","dbName","specsName","replace","scrubbedSpace","moment","local","format","spaceType","externalAvailabilityId","spaceSizes","imageArr","spaceFile","team","spacePhotos","spaceFloorplans","allowedFields","_ref","feedId","_objectWithoutProperties","wellRating","leedRating","epcRating","dgnbRating","nabersRating","ratingType","ratingLevel","yearField","sizesandmeasurements","sizeType","sizeKindIsValid","sizeKind","splice","_step2","_iterator2","demoGraphicsDetails","demographics","allCategories","categoryOptions","_step3","_iterator3","_loop","detail","category","x","usageType","majorEnergySource","PropertyTypes","includes","o","setSkip","payload","setMoreRecords","setMainMessage","clearMessage","dispatch","NONE","FilterType","extractFilters","setups","filters","KEYWORD","valueOf","setup","selected","changeFilters","listingsLoadedPaged","assignedlistingsLoadedPaged","getListingsPaged","skip","take","getState","currentNormalListings","pagedListings","listings","currentAssignedListings","assignedListings","currentSkip","LOADING","mapping","selectedCountry","region","_templateObject9","filterOptions","pullListingsPaged","ERROR","NOTICE","messageLine2","loadedListings","loadedNormal","loadedAssigned","isAssigned","isAssigner","isTeamMember","_toConsumableArray","resetPagedListings","reload","reloadListingsPaged","assignmentFlag","toLowerCase","assignedBy","userObj","combineReducers","action","moreRecords","searchText","addressChange","assignedDate","Date","refreshAllContacts","_templateObject5","updatePreviewStatus","updatePreviewStatusTimerId","stopPreviewPing","timerId","clearInterval","setDirtyListing","dirty","navbar","previewStatusTimerId","checkPreviewStatus","store","savedListing","previewFeatureFlag","navbarState","checkForPreviewInterval","previewSearchApiEndPoint","responseJSON","lastUpdated","storeApiDate","Found","Documents","dateUpdated","subtract","toDate","OUTDATED","AVAILABLE","UNAVAILABLE","ex","FAILED","setInterval","SAVE_TO_GENERATE","updateSavePending","setListingSuffix","setAlertMessage","clearAlertMessage","setReloadListingId","publishData","_templateObject24","publish","setConfirmDialog","exportListing","formattedListing","formatListing","innerResult","isComplex","join","lines","prop","toString","filteredListing","cloneDeep","bulkUploadFileName","dateCreated","externalPreviewUrl","externalPublishUrl","isBulkUpload","isDeleted","owner","spacesCount","avatar","additionalFields","license","filterListingData","title","cancelTxt","showConfirmButton","showCopyButton","setMiqCurrentRecordsResult","setMIQStatus","MIQResultType","setMIQExportMessage","showMIQExportSuccess","header","exportMessage","SUCCESS","showMIQExportError","setMIQSearchResult","clearMIQData","getAssignedListingsCount","_templateObject8","count","assignedMsg","allowClose","setIsDuplicatingListing","selectMIQExportResult","loading","getEdpImportProperty","prepareResults","system","configDetails","convertRegional","UnpublishType","unpublishData","_templateObject25","unpublish","handleError","unpublishType","LISTINGENTRY","MIQ_EXISTING","MIQ_NEW","unpublishListing","SAVING","reason","saveData","temp","interval1","value1","interval2","value2","interval3","value3","_templateObject13","updateListingQuery","_templateObject14","createNewListingQuery","SaveType","saveListing","saveType","pendingOperations","savePending","currentUser","ownerUser","teamMemberId","firstName","given_name","lastName","family_name","matchFound","upn","unique_name","miq","pendingAddEditRecord","importedData","JSON","stringify","messageToUser","PUBLISH","EXPORT","UNPUBLISH_FROM_MIQ","SAVEDUPLICATE","assignFlagChange","ASSIGN","checkAssignFlag","countryCode","createListing","updateListing","DUPLICATE","currentListingLoaded","publishListing","saveAction","goto","mapHighlightsObject","errorMessage","listingHighlights","scrubbedHighlight","updateSpaces","getData","loadCurrentListing","duplicate","massage","p","headlineDefault","d","buildingDescriptionDefault","locationDescriptionDefault","investmentDescriptionDefault","spaceNameDefault","spaceDescriptionDefault","some","sp","defaultCountry","listingSuffix","defaultListing","initCreatedListing","home","listingToClone","miqListing","newCreatedListing","microMarket","parse","datePublished","publishedDate","getFullYear","dateListed","listedDate","verifyCurrencyCodes","supportedLangs","tempSortedLangHighlights","convertedHighlights","highlightMultiLangValues","epcObject","rating","replaceAll","u","toUpperCase","currentListing","_objectSpread","previewStatus","processingImagesCheck","assign","refreshImages","updateFeatureFlags","checkEnvironment","environments","localhost","dev","uat","prod","setAdminLoaded","checkAdmin","_x","_checkAdmin","_callee","regions","userData","_context","isAdmin","isExternalSystemBrokerAvatarUploadRole","isOnlyExternalSystemBrokerAvatarUploadRole","setHomeSiteId","configDetailsLoaded","setupPropertyTypeColors","colors","Map","option","color","set","setupPropertyTypeLabels","labels","label","loadConfig","overrideHomeSiteId","loadRegions","configRegions","_templateObject2","results","_setupAdmin","setupAdmin","adminCheck","setupEnvironment","loaded","forced","aiKey","propertyTypeColors","propertyTypeLabels","ff","miqImportFeatureFlag","miqLimitSearchToCountryCodeFeatureFlag","checkForFeatureFlagOverrides","Storage","removeItem","_templateObject","graphQLSiteId","configs","homeSiteId","previewFlag","miqImportFlag","miqLimitSearchFlag","googleMapsKey","googleMapsChannel","channel","google","script","document","createElement","src","loadGoogleMaps","currentFeatureFlags","overrides","uatImportFromMIQRequireAdmin","setEntryPageScrollPosition","setDatasourcePopup","clearDatasourcePopup","confirmFunc","setCancelAction","setSaveAction","setMiqAddress","mainMessage","alertMessage","confirmDialog","suffix","entryPageScrollPosition","reloadListingId","isDuplicatingListing","dataSourcePopup","cancelAction","allContacts","loadTeams","_templateObject11","dbTeams","m","currentTeam","allTeams","setMIQAddEditRecord","setMiqSpaces","selectedSearchOption","currentRecords","redirect","configDetailsSelector","configSelector","createSelector","setInsightsLoading","setCurrentInsightsRecord","current","insights","allowDebugging","initialState","history","devToolsExt","devToolsExtension","__REDUX_DEVTOOLS_EXTENSION__","identity","middleWare","applyMiddleware","routerMiddleware","thunkMiddleware","createStore","router","connectRouter","reducers","createReducers","compose","RoutePaths","listingEntry","admin","miqImport","miqExport","insightsRoot","brokerImageUpload","userAccess","btnBackground1","css","props","theme","primaryAccentLght","btnBackground1primary","secondaryAccent","btnBorderStyle2","_templateObject3","style1","_templateObject4","backgroundColor","style2","BaseButton","styled","button","_templateObject6","inputProps","buttonStyle","height","borderRadius","font","bold","inputFocus","BaseSpan","span","onKeyPress","keyCode","charCode","which","preventDefault","getElementsByName","click","styledSpan","React","tabIndex","regionIdSelector","bulkUploadInputElement","useDispatch","useSelector","uploadFile","files","fileType","fileTypeAccepted","_acceptedFileTypes","acceptedFileType","_x11","_x12","_x13","postBulkUploadFile","successMsg","fileName","errors","scrollable","BulkUploadForm","StyledButton","onClick","stopPropagation","UploadIcon","BulkUploadInput","ref","onChange","target","sendAnalytics","accept","form","input","searchTextSelector","GLAnalyticsContext","createContext","fireEvent","fireTracking","featureFlagSelector","allContactsSelector","showSearch","useContext","brokers","_useState","useState","_useState2","_slicedToArray","setValue","inputRef","useRef","_useState3","_useState4","showDropdown","setShowDropdown","_useState5","_useState6","searchBrokerOption","setSearchBrokerOption","_useState7","_useState8","highlightedIndex","setHighlightedIndex","hideMiqImportFeatureFlag","bulkUpload","hideBulkUploadFeatureFlag","searchBroker","searchBrokerFeatureFlag","useEffect","hideDropdown","addEventListener","removeEventListener","searchProperty","keyword","dispatchSearch","handleOptionClick","matchingBrokers","broker","handleKeyDown","event","debounce","setTimeout","currentSearchText","filterSetups","backendFilters","searchChanged","highlightStyles","StyledListingsHeader","StyledInnerContainer","StyledTitle","style","float","StyledSearchBox","StyledSearchInput","placeholder","defaultValue","onKeyDown","StyledSearchIconBtn","FontAwesomeIcon","icon","faSearch","StyledUl","StyledLinkHeader","StyledLink","onMouseEnter","Link","to","marginRight","BulkUploadButton","report","loadingText","responseType","URL","createObjectURL","Blob","link","setAttribute","exportFileName","appendChild","downloadText","div","ul","container","maxWidth","width","h1","li","weight","normal","showMenu","setShowMenu","updateState","forceUpdate","useCallback","filterInfoDisplay","setting","node","handleClick","contains","marginBottom","StyledListingsFilterButton","FilterIcon","StyledListingsFilterMenu","divider","getTime","display","changedFilters","clearAll","changedFilter","allowMultiple","selectFilter","StyledCheckSpace","faCheck","flex","tertiaryAccent","override","className","loaderType","ScaleLoader","isLoading","margin","RingLoader","sizeUnit","size","HashLoader","ImageAvatarSize","PlaceholderSize","BaseContainer","LoaderContainer","ErrorIndicator","errorred","placeholderSize","ErrorText","Placeholder","allowUpload","RecommendedSize","notice","UploadLink","primaryAccent","Circle","avatarSize","LARGE","Avatar","img","FileUploadButton","_templateObject10","BaseFormInput","imageURL","uploadPhotoLabel","uploadErrors","clearErrors","pending","setPending","setErrors","acceptedFileTypes","onDrop","acceptedFiles","_useDropzone","useDropzone","disabled","getRootProps","getInputProps","inputClicked","showUploadErrors","showPending","showPlaceholder","showAvatar","data-test","Loader","generateInitials","BaseCardBrokerArea","ImageAvatar","SMALL","formatNumberWithCommas","parts","formatDecimals","restriction","toFixed","nonDraftStates","uneditableStates","userSelector","coverImageUrl","currencySymbol","showDevInfo","price","returnStr","minMaxPriceRange","formatPrice","convertMeasure","convertDuration","lowerCaseDuration","displayBrokerList","brokerCounter","BaseListingCard","BaseListingCardHeader","HeaderImage","LazyLoad","offset","StyledImage","StyledImageOverlay","HeaderContent","DraftFlag","TypeFlag","get","getBadgeColor","flagtype","getBadgeLabel","BaseNameDiv","TitleText","PropertyIdText","BaseAddressDiv","AddressText","addressLine2","ButtonArea","CardActionBtn","IconViewListing","IconEditListing","IconViewListingUrl","PublishingFlag","IconPending","FailFlag","IconPublishError","insightsEnabled","InsightsSection","InsightsIcon","StyledInsightLink","InfoSection","Row","InfoLabel","InfoField","returnPriceStr","priceString","priceTitle","lTypeText","types","listingTypes","getListingTypeLabel","BrokerSection","CardBrokerView","AdditionalBrokers","h2","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","StyledHeader","Col","xs","sm","md","lg","ListingSingle","ListingsContainer","StyledInfiniteScroll","InfiniteScroll","LoadingDiv","normalListings","moreRecordsAvailable","loadListingsHandler","totalLength","dataLength","hasMore","loader","ListingSection","mainMessageSelector","alertMessageSelector","border","ProcessingText","NoticeText","MessageLine","MessageContainer","Loading","Saving","fontSize","marginTop","Notice","StyledMessageIcon","StyledMessageCloseButton","StyledMessageContainer","fontColor","msgIcon","IconInfo","IconError","WARNING","IconWarning","IconSuccess","pagedListingsSelector","skipSelector","takeSelector","moreRecordsSelector","standardFilters","uid","PUBLISHING_STATUS","bulkUploadFilter","BULK_UPLOAD","deletedFilter","DELETED","importFromMIQFilter","MIQ","filterSetupsSelector","currentFilters","sortType","alphabeticalSort","localeCompare","PROPERTY_TYPE","selectedFilters","currentFilter","filterSetup","assignedListingsSelector","configSiteIdSelector","homeSiteIdSelector","ListingsMainContainer","homeSiteID","getNextListings","resetFilters","updatedFilters","ListingsHeader","AlertMessage","ListingsFilter","filtersChanged","MainMessage","ListingsMain","currentListingSelector","FormContext","onFormChange","validateComplete","changeHandler","children","formValues","Provider","preventRerender","fvCopy","BaseHeading","teamMember","deleteBtn","isTeam","deleteFunc","deleteTeamFunc","ListingUserThumbnail","UserAvatar","DeleteIconDiv","MemberNameText","DescriptionText","BaseFieldHeading","h5","styles","fontWeight","marginLeft","Title","clickHandler","DropdownContainer","BaseInputContainer","normalBorder","errorBorder","DropdownContent","StyledAutoSuggestWrapper","SearchInputContainer","SearchInput","SearchIconContainer","GreenSearchIconContainer","NoDataMessage","NoDataButtonContainer","noDataMessage","noDataButtonLabel","noDataButtonCallback","captureValue","staticDataProvider","remoteDataProvider","showLoadingAnimation","delayMS","clearAfterSelect","autoCompleteFinish","extraData","useSearchData","showSearchIcon","noDataProps","showGreenSearchIcon","customErrorMessage","showNoData","showNoDataButton","delay","suggestions","setSuggestions","noResults","setNoResults","showLoad","setShowLoad","showError","setShowError","_useState9","_useState10","_useState11","checkForResults","request","ele","getElementById","activeElement","suggestionsFunc","passedValue","countryCodes","newValue","noDataClick","checkNoDataFocus","focus","checkIfChild","child","parentNode","NoDataDropdown","onMouseOver","onBlur","eleCheck","relatedTarget","FormFieldLabel","Autosuggest","onSuggestionsFetchRequested","onSuggestionsClearRequested","getSuggestionValue","suggestion","renderSuggestion","shouldRenderSuggestions","onSuggestionSelected","renderInputComponent","iProps","maxLength","GreenSearchIcon","SearchIcon","getUsersAndTeamsForSearch","inputFilter","term","blacklist","maps","AutocompleteService","dbMembers","claimants","fullName","convertUserResults","converted","StyledRow","secondaryBackground","Label","fontStyle","veriticalAlign","IconTag","StyledTooltip","ReactTooltip","userArr","teamArr","members","setMembers","teamMembers","setTeamMembers","formControllerContext","updateTeamMemberData","usersUpdate","updateTeamData","teamsUpdate","removeTeamMember","member","tempUsers","idx","findIndex","removeTeamMemberTeam","memberTeam","tempTeam","SectionHeading","ListingTeamMemberCard","data-tip","data-for","TooltipOff","currentTarget","TooltipOn","onMouseOut","multiline","SearchableInput","newUser","filterUserArray","filterTeamArray","getLatestUserIds","prevProps","nextProps","Container","AmenityContainer","AmenityThumbnail","AmenityIcon","listAspectsArr","aspectsArr","listAspects","setListAspects","updateAspectsData","aspectsUpdate","aspectKey","aspect","data-testid","tempListAspects","toggleAspect","BlueCheck","alt","GrayCheck","BaseForm","validateForm","errorsRef","initVals","validationJSON","showErrors","validationSchema","validationAdapter","forceValidate","changeValues","ms","messages","fieldName","finishValidation","Formik","initialValues","enableReinitialize","onSubmit","validate","render","formikProps","setValidateForm","required","touched","touchAll","FieldType","MessageKey","convertValidationJSON","validations","schemaObj","validationObject","createValidation","Yup","shape","getValidatonMessage","validation","defaultMessage","yupValidation","STRING","min","MIN","max","MAX","regex","matches","REGEX","NUMBER","DATE","BOOLEAN","ARRAY","REQUIRED","notOneOf","NOTONEOF","ServerDataType","getRestriction","dataType","INTEGER","LONG","DECIMAL_CURRENCY","StyledSubtext","formSize","ExtrasInputContainer","ExtrasFormInput","Prefix","Suffix","subText","appendToId","blurHandler","indexedBlurHandler","prefix","numericOnly","allowNegatives","useOnChange","alphaNumeric","acceptDecimals","maxDecimalPlaces","forceFocus","mask","serverDataType","inputvalue","toolTip","disableTab","suppressFlexDisplay","labelColor","ctrlDown","shiftDown","decimalRestriction","containerStyle","formatValue","formattedValue","handleBlur","bubbleChange","handleChange","RegExp","test","ctrlKey","metaKey","shiftKey","numbers","decimals","ctrlFunctions","validKeyCodes","allowInput","proposedValue","fromCharCode","onPaste","clipboardData","pasted","decLength","dataTypeVal","InputMask","inputbox","pre","suf","onFocus","select","autoFocus","labelStyles","DropdownIndicator","components","StyledDownArrow","MenuList","newChildren","selectProps","innerProps","propsObj","withTheme","prompt","doSort","doAlphabeticalSort","_props$isClearable","isClearable","focusColor","highlightColor","errorColor","customStyles","menu","base","fontFamily","control","minWidth","boxShadow","isFocused","borderColor","indicatorSeparator","clearIndicator","Select","classNamePrefix","isDisabled","selectedOption","ThumbnailSize","PDFContainer","PrimaryStar","InfoThumbnailContainer","ThumbnailContainer","imageHeight","imageWidth","Overlay","overlay","OverlayHeader","OverlayBody","allowOverride","OverlayMessage","OverlayRemove","OverlayButton","showInput","setShowInput","extIndex","cleanFileName","setFileName","processingRetry","setProcessingRetry","toggleInput","openShadowBoxFunc","openShadowBox","errorMsg","watermark","overrideFailure","allowRetry","retryError","retryLabel","allowRemove","removeFailedProcess","CBRELogo","backgroundImage","openPDFPreview","PDFIcon","updateValue","onBlurEvent","showNameEdit","EditIcon","hideStar","PinkStar","PopoverWrapper","top","left","handlePopUpAction","PopoverToggle","bolder","ThreeDots","PopOverMenu","PopOverMenuItem","overIcon","popoverEnabled","isActive","setIsActive","mouseOver","setMouseOver","togglePopover","updatePopover","setOver","over","selectPopOverOption","inactive","WatermarkProcessStatus","padding","hoverColor","checkColor","CheckMark","outline","testId","checked","setChecked","focused","setFocused","newChecked","previousSibling","problemWatermarkStatuses","WATERMARK","WATERMARK_ERROR","CRE_WATERMARK","NOT_PROCESSED","PROCESSING","READY_TO_PROCESS","checkFilesThatNeedProcessing","NO_WATERMARK","imageIds","fileArr","checkFile","checkFileForWatermarkProblems","watermarkDetectionFeatureFlag","allowWatermarkingDetect","ids","refreshImagesSelector","PDFPreviewContainer","PDFPreviewHeader","PDFPreviewHeaderText","PDFDownloadLink","PDFPreviewCloseButton","PDFPlaceholder","PDFDocument","Document","PDFPage","Page","PDFPreviewBody","PDFPreviewFooter","PDFPreviewFooterText","PDFPreviewLeftArrow","PDFPreviewRightArrow","pdfjs","GlobalWorkerOptions","workerSrc","version","closeHandler","numPages","setNumPages","pageNumber","setPageNumber","loadError","setLoadError","pageSizeHeight","innerHeight","pageSize","Math","round","onLoadSuccess","onLoadError","allowArrayLike","it","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","F","_e","normalCompletion","didErr","step","_e2","arr","len","arr2","ProblemWatermarkFiles","ProblemWatermarkFilesHeader","FormUploadContainer","headerProps","manualError","StyledError","StyledWarning","DeleteMsg","accepted","description","isDraggable","manualErrorMessage","singleUpload","singleFileUploadWarning","useRestb","defaultWaterMarkTrue","popover","setPopover","isOpen","setIsOpen","pdfPreviewURL","setPdfPreviewURL","photoPreviewURL","setPhotoPreviewURL","warningMessage","setWarningMessage","imageRefreshBucket","watermarkCheckbox","findRefreshStatus","refreshFile","tempPayload","watermarkProcessChanged","checkedStatus","tempPayloadFile","displayText","active","_useState12","setPayload","updatePhotoPayload","_useState13","_useState14","_useState15","checkAndSetPrimaryImage","filesArr","primaryFileCandidates","tempFile","checkRefreshBucket","imageRefreshItem","fileArray","tempFileName","SENDING_FILE_TO_SERVER","uploadLimit","fileextention","_sendAndCheckFile","sendAndCheckFile","_sendFile","sendFile","rerender","isDragActive","theFile","setWatermarkProcessStatus","modifiedPayload","replaceFileInArray","fileUploadFunc","errMsg","watermarkCode","fileData","currentFile","toDelete","_retryImage","fileId","refresh","retryImage","deleteFile","makePrimary","sortedFiles","markInactive","extension","applyWaterMark","_getImageData","getImageData","overflow","imagesrc","elem","checkExist","getElementsByClassName","clientHeight","applyWatermark","_step4","currentImage","_iterator4","cbreWatermark","getPopOverOptions","itemActive","DeleteIcon","showPrimary","StarIcon","InactiveIcon","WatermarkIcon","displayProcessedFiles","payloadObj","payloadFile","Draggable","draggableId","provided","innerRef","draggableProps","dragHandleProps","getThumbnailContainer","deleteFileMsg","Thumbnail","NORMAL","PopOver","getFileUploadSection","textIndent","cursor","FormCheckbox","background","Grid","DragDropContext","onDragEnd","destination","source","reorderedImages","list","startIndex","endIndex","_list$splice","removed","reorder","Droppable","droppableId","direction","snapshot","isDraggingOver","droppableProps","problemFiles","overlayMessage","overlayIcon","overlayColor","overlayAllowRemove","overlayAllowOverride","overlayRetry","overlayRetryLabel","ErrorIcon","getThumbnailOverlay","random","displayWatermarkIssues","Lightbox","mainSrc","onCloseRequest","reactModalProps","preventScroll","PDFPreview","focusBorder","primaryBackground","selectedColor","StyledLabel","optionVal","onMouseDown","el","querySelector","blur","triggerFocusChange","readOnly","RadioGroup","focusValue","setFocusValue","selectedValue","setSelectedValue","lostFocus","setLostFocus","findIdx","currentIdx","handleRBClick","keyPressed","onMouseLeave","FormRadioButton","BaseFormTextArea","textarea","STabs","Tabs","STabList","TabList","STabPanel","TabPanel","STab","Tab","BaseFormTabbedTextArea","TabText","TabIcon","tabsettings","updateTabData","updateIndexedTabData","langsettings","langdata","setCurrentIdx","currentValue","initial","arrayLangData","custom","itemData","lang","tabdata","setState","changedValues","valueArray","removeNullVals","tempState","changeValue","getAccKey","item","extraKey","TabsMemo","useMemo","iconSuccess","selectedTabClassName","selectedTabPanelClassName","onSelect","tabindex","selectNewTab","StyledInputDiv","StyledDatePicker","DatePicker","StyledCalendarIcon","restrictInput","currentDate","setCurrentDate","dateFormat","date","placeholderText","autoComplete","CalendarIcon","picker","dispatchEvent","MouseEvent","view","bubbles","cancelable","connect","field","use","_props$formik","formik","setFieldValue","setFieldTouched","Field","component","GLFieldAdapter","escapeRegexCharacters","convertMapboxResults","place_name","extractMapboxContextResult","contexts","foundContextVaue","convertPitneyBowesResults","addressResult","address","formattedAddress","convertGoogleResults","predictions","createAddressFromGoogleResult","streetAddressSlug","addressComponentsConfig","detailResult","placeId","place_id","geocode","parseGoogleResult","placeResult","streetName","address_components","geometry","coords","convertGoogleLatLng","addressComponents","cityFieldName","extractResult","streetNumber","route","formatted_address","extracted","addressPart","_ref2","placesService","PlacesService","getDetails","PlacesServiceStatus","OK","latLng","countryCodeSelector","isEMEA","AddressFields","placesAPI","streetChanged","apiCountry","currentCountryCode","getColSize","getCountry","fieldConfig","GLField","requiredLabel","FormSelect","FormInput","unpublished","between","limitCountryCodes","escapedValue","urlValue","encodeURI","postConfig","queryString","axios","ores","accessToken","access_token","getConfig","geosearchURL","getPitneyPlaces","requestURL","placesURL","features","getMapboxPlaces","service","componentRestrictions","getPlacePredictions","getGooglePlaces","coordinates","areaName3","postCode","areaName1","mainAddressLine","createAddressFromPitneyBowesResult","center","createAddressFromMapboxResult","streetAddress","countryStates","tempCountryCode","stateOptions","countryState","getStateOrProvince","countrySelector","updateRenderTrigger","change","triggers","checkTrigger","changed","triggered","Plans","ByCBRE","Body","borderRight","findOptions","configType","checkboxProps","isDesiredEnvironment","hostName","preprod","OnTabletHelpfulTextWalkthrough","OnDesktopHelpfulTextWalkthrough","OnPropertyIDField","BrochureURLHelpText","BrochureURLHelpTextFont","SelectedPropertyType","PublishingSite","manualErrors","nextFocus","publishingsites","imageProcessingCheck","currentValues","setCurrentValues","disableURL","setDisableURL","tempStreet","deleteAction","updateObj","photosErrorMessage","floorplansErrorMessage","acceptedValues","updateEpcGraphPayload","epcGraphPayload","updateHeadlinePayload","headlinePayload","updateBuildingDescriptionPayload","buildingDescPayload","updateLocationDescriptionPayload","locationDescPayload","updateInvestmentDescriptionPayload","investmentDescPayload","checkAddToTeam","supportMultiProperties","objCopy","scrubChangeObj","newValues","resetAddressProperties","enableBrochureURL","multiCheckHandler","currentProperty","getTextFieldLangSettings","placeholderName","langSettings","translations","langs","languageName","GLForm","officeLocation","prodOptions","nonProdOptions","getOfficeLocation","publishingSites","publishConfig","checkStyles","FormCheckboxWrapper","getMultiPublishingSites","getPropertyType","subPropertyType","showPropertySubType","useClass","showPropertyUseClass","flexWrap","getPropertyTypeLabel","filteredValues","deleteSelectedPropertyType","FormRadioGroup","getExclusivity","getAuthority","syndication","markets","marketOptions","market","colSize","grid","paddingLeft","getSyndicationMarket","FormTabbedTextArea","showExternalPropertyId","FormTextArea","tenancyOptions","getTenancy","showPropertyTypes","getStatus","FormDateField","getAvailability","epcRatingOptions","getEpcRating","getDGNBRating","getLeadRating","getEneryRating","getWellRating","getNabersRating","photoPayload","FormUpload","floorplanPayload","brochurePayload","getEpcGraphs","hidePlansFeatureFlag","HelpfulTextWalkthrough","floorsField","portfolioPropertyType","zoningField","AlignElements","amount","enablePerUnit","enableYear","chargeTypes","chargeModifiers","terms","defaultUnitOfMeasurement","perUnit","deleteRow","currencies","prevSelectedChargeType","setPrevSelectedChargeType","updatedModifiers","updatedTerms","disableAmount","showCurrencyDropdown","chargeType","defaultTerm","constructModifierOptions","currentChargeType","chargeModifiersAllowed","modifiers","modifier","constructTermOptions","termsAllowed","chargeModifier","perUnitType","year","now","MultiDropdownContainer","FormSelectInput","showYearPicker","yearItemNumber","minDate","maxDate","chargesData","setData","currencyIcon","defaultMeasurement","checkConfigStatus","ChargesContainer","iteration","MultiDropdown","chargesType","firstChargeType","getInitialValues","generateKey","v1","Highlight","DeleteIconButton","theProps","items","setItems","setNextFocus","UIType","typingTimer","cultureCodeString","getLangHighlight","h","highlightsMultiLang","stateMultiLang","setStateMultiLang","_result$splice","deleteItem","currentArr","filtered","filteredItem","multiLang","handleMultiLangChange","tempItems","clearTimeout","updateMultiLangHighlightPayload","highlightPayload","HighLightMemo","isDragDisabled","highLightsMaxLength","DragIcon","HighLightMultiLangMemo","onDragStart","mhighlights","newItem","addButtonLabel","helpText","DisplayError","DraggableMultiLangList","navbarPreviewStatusSelector","listingDirty","BLANK","NavTitle","PreviewInfoMsg","PreviewLink","navTitle","renderSpecialStatusMessage","open","cancelActionSelector","Nav","BarContainer","Buttons","saveHandler","publishHandler","unpublishHandler","deleteHandler","exportListingHandler","duplicateListingHandler","cancel","save","duplicateListing","UnpublishedButtons","exportEnabled","duplicateEnabled","PublishedButtons","PendingButtons","NavbarStatusMessage","routeSelector","Sidebar","Icon","activeIcon","setActiveIcon","anchors","overrideSpecification","imageArray","TeamsIcon","BuildingIcon","HighlightsIcon","SpecIcon","SpacesIcon","ContactsIcon","grayImageArray","GrayTeamsIcon","GrayBuildingIcon","GrayHighlightsIcon","GraySpecIcon","GraySpacesIcon","GrayContactsIcon","anchorLinkDisplayOverrides","updateIconIndex","findLinkDisplay","anchor","scrollEventListener","element","inView","isInView","firstTrueItem","rect","getBoundingClientRect","bottom","taxTypes","vatTaxTypes","suffixSelector","currentSpacesSelector","Switch","WrongSwitch","SpecificationsContainer","SwitchContainer","autoCalculate","reduxSpaces","noEntryRoutes","toggleSwitches","_Object$entries","entries","matchPath","isExact","autoCalculateSizeAndPrice","setMinSpace","setTotalSpace","minLeasePrice","setMinLeasePrice","maxLeasePrice","setMaxLeasePrice","setMaxPrice","enablePriceOnContactBroker","priceDisabled","setPriceDisabled","showPriceUoM","setShowPriceUoM","_useState16","specs","setSpecs","_useState17","_useState18","setMeasure","_useState19","_useState20","setTaxModifer","_useState21","_useState22","setLeaseTerm","_useState23","_useState24","lastFocus","setLastFocus","_useState25","_useState26","localListingSuffix","setLocalListingSuffix","isMinSpace","isTotalSpace","isMinLeasePrice","isMaxLeasePrice","maxSalePrice","checkIfNull","plusSalesTax","includingSalesTax","valueObj","resetSpecs","listingSuffixChanged","newSuffix","specification","calcMinSpace","calcTotalSpace","calcMinLease","calcMaxLease","totalSalePrice","calculateSpecifications","dataPoint","getSpaceLabel","baseLabel","getSpaceSuffix","getPriceSuffix","checkForceFocus","send","setDefaultLeaseTypeValue","handleDiameter","uncheckedIcon","checkedIcon","activeBoxShadow","spacePlaceholder","plusVAT","taxField","measureUnit","updatedMeasurement","constructMeasurementOptions","currentSizeType","sizeKindAllowed","unit","sizeValues","sizeAmount","changedData","SizesContainer","sizeTypeSetup","sizeTypes","sizeTypeConfig","sizeTypeOptions","findSizeTypeOptions","sizeChangeHandler","newSizeTypes","unitofmeasure","StyledIconButton","uniqueId","itemIndex","ClickableButton","ImageOnly","allowClick","AppendedTitle","collapsed","AccContainer","PaneHeaderContainer","PaneHeaderPrefixContainer","PaneHeaderPrefix","PaneTitleText","PaneButtonsContainer","IconButtonsContainer","IconButtonWrapper","flip","Alert","BaseDetails","VerticalLine","paneId","alertOn","titlePrefix","UIDPrefix","buttons","toggleIcon","collapseHandler","alert","toggleButton","IconButton","hasMenu","popOverMenuOptions","DraggableAccordionContainer","AccordionContainer","DraggableAccordionHeader","inject","dataParams","titleField","addLabel","useLabelForHeader","getLabelFromCode","labelProvider","displayMIQId","showMiqSpaces","dataProvider","currentMenuIndex","setCurrentMenuIndex","openPanes","setOpenPanes","multiLanguage","currentItems","$inject","assignPaneId","randomId","setupPaneIds","paneIds","setPaneIds","togglePane","updateItems","paneChangeObj","addItem","itemsArr","triggerChange","closeMenu","cutOut","duplicateItem","itemToCopy","copiedItem","_","titleArr","updatePaneHeader","titleEle","textContent","getPaneHeader","updateItem","selectedName","valueChosen","opt","defaultSpacesTitle","toggleMenu","getExtraButtons","opts","MenuIcon","allowFocus","DuplicateIcon","DuplicateOverIcon","showSpacesModal","currentIndex","destinationIndex","reorderedPaneIds","onBeforeDragStart","Accordion","ToggleIcon","flexSpaceNames","enableMultipleAvailabilityFloorPlans","ConfigFieldType","DynamicCSSWrapper","viewProperties","getKey","getAppendToId","indx","handleTabChange","handleTabNameChange","checkFocus","autoFocusField","fieldset","exclude","fieldsArray","field1","field2","instanceProperties","attribute","prepend","FORM_INPUT","priceSuffix","FORM_TABBED_TEXT_AREA","FORM_SPACE_DESC","FORM_SPACE_NAME","FORM_TEXT_AREA","FORM_SELECT","FORM_DATE_FIELD","FORM_CHECKBOX","CONDITIONAL_INCLUDE","SpaceFiles","SizesAndMeasurements","buildFormFields","spaceUnitOfMeasure","setSpace","specsField","findSuffix","spaceIndex","disablePrice","disableContactBrokerForPricingCheckbox","setViewProperties","suffixCheck","updateVP","SpaceFormView","viewProps","SpacesContainer","miqSpaces","useLabelForPaneHeader","getFieldLabelFromCultureCode","accordionSetups","spacesErrorMessage","DraggableAccordion","SpaceView","incomingValues","MapComponent","createCoordinates","checkCoordinates","coordinate","validLat","validLng","zoom","zoomControl","zoomControlOptions","ZoomControlStyle","mapTypeControl","mapTypeControlOptions","MapTypeControlStyle","DEFAULT","streetViewControl","rotateControl","fullscreenControl","GoogleMap","mapContainerStyle","Marker","position","MapElement","GoogleMapComponent","containerElement","mapElement","mapboxgl","setLngLat","addTo","addControl","rel","normalColor","MapContainer","TopMessage","MapWrapper","StyledPlaceholderImage","CoordinatesWrapper","MAPBOX","GOOGLE","googleLoaded","coordinateCheck","topMessage","MapDisplay","GLGoogleMap","Mapbox","MapPlaceholderImage","changeAPI","pbCountries","changeCountry","Card","Edit","ContactName","ContactId","ContactAddress","showContactId","editContact","deleteContact","MEDIUM","contactObj","homeOfficeFieldType","homeOffice","fieldType","getLocation","EmailIcon","phone","PhoneIcon","LicenseIcon","searchContactsStatic","firstNameResults","lastNameResults","fullNameResults","emailResults","locationResults","filteredResults","unique","convertContactResults","array","j","foundOfficeLocation","ContactFormContainer","FormSelectWrapper","isCBREBroker","isInteger","brokerTypeFeatureFlag","enableBrokerTypeSelection","showAgency","setShowAgency","phoneMask","brokerType","setBrokerType","brokerTypes","BlueLocationIcon","BadgeIcon","getOfficeLocations","BluePhoneIcon","BlueEmailIcon","emailSubText","emailPlaceholder","BlueLicenseIcon","uploadURL","saveContactFromModal","_templateObject26","saveContact","ContactModalStyles","ContactModalContainer","ButtonContainer","ContactModal","finishHandler","setShowErrors","contactChanges","setContactChanges","setAvatar","setUploadErrors","saveError","setSaveError","setContactValidations","contactForm","imgURL","Image","onload","ContactsForm","ContactsHeading","CreateContactWrapper","Subtext","validateHandler","contactArr","setContacts","createEditContact","setCreateEditContact","filteredContacts","setFilteredContacts","currentIds","updateData","contactUpdate","contactToDelete","createContact","toggleModal","contactKey","filteredContact","ContactCard","ContactsModal","c","deleteData","deleteListingQuery","standardSpecifications","flexSpecifications","entryPageScrollPositionSelector","kind","travelMode","distanceUnits","interestIndex","right","interestKinds","sectionHeading","Amenity","Restaurants","Hotel","Attractions","bind","poiSingle","interestKind","tempPlaces","sourceIndex","z","tempIndex","interestKindExists","addRow","transportationIndex","tt","Transit","Rail","Airport","Ferry","Shipyard","Highway","ttSingle","transportationKindExists","parkingType","interval","parkingSpace","ParkingsContainer","parkingsConfig","parkingDetails","parkingChangeHandler","ratio","ratioPer","ratioPerUnit","parkingData","baseData","isValue1Disabled","isValue2Disabled","isValue3Disabled","DemographicsContainer","demographicsConfig","previousData","setPreviousData","unusedOptions","setUnusedOptions","uom","unitOfMeasure","ReloadUnusedOptions","demoGraphicsChangeHandler","oldCategory","tempDemographicDetails","selectedOptions","newUnusedOptions","loadOption","demographicData","selectOption","unshift","previousIntervals","opacity","AuctionContainer","auctionDetails","auctionConfig","eventTimeHrs","eventTimeMinutes","month","getMonth","padStart","day","getDate","formattedDate","transformAuctionDate","EventDate","getEventDate","hours","minutes","isDuplicatingListingSelector","StyledHeaderRow","headerRow","lineHeight","ColHeader","colHeader","styledRow","borderTop","StyledCol","styledCol","alignItems","staticDisplay","columns","showHeader","column","renderFunction","dataField","Table","table","boxSizing","overflowY","StyledGrid","styledGrid","spacesImport","ActionColumn","ActionButton","StyledMessageContent","replaceColsForRow","showHeadersBeforeRow","assignBtn","assignHandler","unpublishBtn","actionButton","alternateAddressData","alternatePostalAddresses","replacementRow","atIndex","replacementRows","replaceCol","replaceAt","findReplacementRow","GLTableRow","tableRow","Badge","textAlign","textTransform","priceStringFormatter","combineFields","rootString","appendString","appendAfter","ViewContainer","TableHeaderContainer","TableHeader","Left","Right","TableHeaderHelper","TableIdDisplay","TableContainer","PropertyCellContainer","PropertyImage","PropertyAddress","AddressHeader","AddressLine","BadgeContainer","IDDisplay","displayActionBtns","allowAssign","actionHandler","allowUnpublish","selectedAvailabilities","findCoverImage","primaryPhotos","photo","coverImageURL","DefaultPropertyImage","firstPhoto","base64String","selectAvailability","currentSpaces","setMiqSpacesResult","ph","commonColumns","lookup","badgeStyles","propertyTypeLabel","GLBadge","findSizeUsingSpecs","findPriceUsingSpecs","replacements","environmentCheck","WrapperElement","addressLine1","cityStateZip","renderAddressDom","nameField","availabilityLabel","recordExists","showAssignButton","showUnpublishButton","GLTable","RecordsDisplayContainer","PropertyResultContainer","records","assignMode","prepareRecordForAddEdit","prepareRecordForAssign","PropertyResultView","ModalOverlay","DialogContainer","MessageBlockContainer","StyledModalDismiss","addSpaces","tempSpaces","setTempSpaces","RecordsDisplayView","PendingAction","ListingEntryContainer","CustomDate","LabelText","SwitchLabel","GridContainer","TopFormContainer","FormContainerCol","APISelectContainer","DisableOverlay","InitialFocus","Disclaimer","currentData","setCurrentData","setCoordinates","setAPI","setForceValidate","pendingAction","setPendingAction","propertyValidations","setPropertyValidations","publishedExtra","setPublishedExtra","setManualErrors","mapError","setMapError","contactsError","setContactsError","highlightsError","setHighlightsError","sizesAndMeasurementsError","setSizesAndMeasurementsError","_useState27","_useState28","specificationError","setSpecificationError","_useState29","_useState30","_useState31","_useState32","_useState33","_useState34","spacesModal","setSpacesModal","_useState35","_useState36","publishingSiteList","setPublishingSiteList","_templateObject29","getFeedsByOfficeId","handleFormChanges","removeStateOrProvinceWhenSameAsCity","clearSpecificationFields","clearSpacesOn","changeSpacesOn","theListing","finishSave","SAVE","appendCurrencyCode","finishPublish","submitPublish","popupData","updateValidation","finishExport","finishDuplicate","scrollPosition","documentElement","scrollTop","urlArray","deleteListing","teamsEnabled","checkImagesForProcessing","valuesToUpdate","formatDateString","toISOString","scrollTo","SpacesImportModal","ListingNavbar","confirmTxt","FormController","errorInfo","isPropertyHasValue","property","manualErrorObj","isOnePhotoActive","manualValidations","minValue","specificationsError","spaceErrorCount","photoProcessing","extraPublishedValidationFunc","manual","checkManualErrors","ListingSidebar","justifyContent","displayAgentPointId","legalDisclosureText","ListingTeam","Property","APISelect","Parking","Demographics","amenities","Amenities","Highlights","isValid","isValidPropertyType","Specifications","Auction","ChargesAndModifiers","TransportationsType","PointsOfInterest","exists","validPropertyTypes","validPropertyType","propertyTypeExistsInSpacesConfig","Spaces","Contacts","LoadContainer","setLoading","fade","setFade","nav","setNav","forceNavUp","psuedoEditNav","reloadListingIdSelector","params","ListingEntryMemo","ListingEntry","LoadingContainer","BaseTeamMemberCard","MemberText","teamData","newName","updateTeamQuery","createNewTeamQuery","deleteTeamQuery","getUsersForSearch","dbUsers","edit","createNew","doneCreate","teamState","setTeamState","setTempState","editing","setEditing","confirmDeleteThisTeam","deleteTeam","BaseTeamCard","NameSection","tempteam","saveTeam","TeamNameTxt","EditButton","borderBottom","floor","TeamMemberSingle","removeUser","TeamsSection","TeamSingle","StyledTeamsHeader","allTeamsSelector","currentTeamSelector","TeamsMainContainer","NoTeamsContainer","BgMsg","createNewTeam","setCreateNewTeam","defaultTeam","doneCreateTeam","TeamCreateMemo","createTeam","TeamsHeader","TeamsMain","pageName","StyledPageHeader","GraySearchIcon","miqCurrentRecordsSelector","getMIQProperties","miqCountryCode","searchEdpProperties","convertAddressToLabel","street1","stateProvince","miqCurrentSelectionSelector","miqStatusSelector","SearchableInputContainer","selectionHandler","_uploadFile","checkForWatermarks","convertBase64ToFile","base64string","filename","mime","bstr","atob","u8arr","Uint8Array","charCodeAt","File","convertListingDataToSupportMultiRegional","convertDateToLocal","timezone","reformatParts","checkDatesForTimeZone","timeParts","tz","convertFilesAndDispatch","setPendingMIQAddEditRecord","_convertFilesAndDispatch","filesToUpload","checkPrimaryPhotos","checkFiles","processingFiles","uploadFiles","ensureOnePrimary","primaryCheck","_uploadFiles","fileToUpload","fileResult","t1","PageContainer","GrayDivider","DisclaimerContainer","SelectionContainer","RecordsContainer","PageHeader","MIQSidebar","SelectRecordView","selection","propertyAddress","selectMIQSearchResult","MoonLoader","miqExportMessageSelector","Header","IndicatorIcon","HeaderText","ErrorHeader","ErrorMessage","iconError","getIcon","miqRedirectSelector","TeamMembersHeader","ResultViewContainer","ResultViewButtonBar","NavigationButton","ButtonBar","assignees","tempAssignees","setTempAssignees","defaultCurrentListing","currentRecord","setCurrentRecord","showAssignUI","setShowAssignUI","referrer","handleUserConfirmUnpublishAction","prepareRecordForCreateAndUnpublish","ExportResultView","unpublishFromMIQExport","suggesteduser","tAssignees","filterArray","tempListing","InnerContainer","BoundingBox","DisplayHeader","HelperMessage","Indicator","Value","processData","startStopHandler","unknownProcessStatus","processRunning","defaultCode","runOptionCodes","currentRunCode","runOptionCode","setRunOptionCode","AdminModule","unprocessedImages","roCode","setProcessData","refreshWatermarkProcessData","watermarkDetectionProcessStatus","_setProcessStatus","AdminWatermarkDisplay","siteIcons","AE","DK","PT","FI","IN","IT","MX","NL","NO","PL","SG","UK","US","IM","AU","REAL","CBREIM","grantAccessToRegion","addUserToRegion","revokeAccessToRegion","removeUserFromRegion","iD","StyledOption","StyledIcon","tempuser","setTempUser","initialValue","setIntialValue","messageText","setMessageText","isError","setIsError","StyledContainer","StyledSelect","selectedRegion","grantAccess","revokeAccess","SiteIcon","AdminHeader","AdminWatermark","V2Link","AdminAccessRegion","insightsLoadingSelector","currentInsightsRecordSelector","LeadContainer","AnalyticsContainer","NoDataFound","AnalyticsDivider","AnalyticsDataContainer","CoverImageContainer","CoverImage","PropertyHeader","InfoRow","InfoHeader","InfoValue","BrokerRow","BrokerContainer","BrokerName","h4","leadsClick","insightData","setInsightData","_templateObject30","getAnalyticsByPropertyId","mapToAnalyticsObject","analyticsData","analyticsObj","leadCount","newUserCount","pDPClicks","shareCount","photoArr","generateCoverImage","generateAddressLine2","timeDiff","abs","ceil","getDaysOnMarket","toLocaleDateString","getDateListed","getLastUpdated","BackButton","showShareButton","showPrintButton","clickShareHandler","NavbarIconButton","backIcon","shareIcon","DialogHeader","CloseButton","DialogBody","InputCol1","InputCol2","StyledCopyButton","Message","shareLink","setMessage","iconCloseX","ta","execCommand","removeChild","Spacer","ViewPropertyLink","RowHeading","RowContent","showInsightsShareDialog","setShowInsightsShareDialog","leadsReport","setLeadsReport","InsightsNavBar","DiagnolArrowIcon","InsightsPropertyOverview","_templateObject31","getLeadsReport","emailAddress","companyName","contactName","phoneNumber","roleName","contactDate","InsightsShareDialog","ReportContainer","setError","mainMessaging","currentInsightRecord","listingId","alreadyLoadingId","loadCurrentInsightsRecord","InsightsRecordPage","getAllRegion","skipUserAccess","pullAllRegions","getAccessToRegion","addSelfToRegion","MainContainer","setRegions","regionsData","URLSearchParams","regionCountry","defaultRegion","StyledFileInput","SyledDropContainer","fileInputRef","setFile","fileUploadText","setFileUploadText","selectedFile","respone","BrokerImageUpload","Container404","GoHomeButton","Route","exact","path","Redirect","AdminContainer","Insights","Insights404","TeamsContainer","MIQImportContainer","MIQExportContainer","BrokerImageUploadContainer","UserAccess","_props$confirmationDi","confirmationDialogParams","copyTxt","cancelFunc","messageBlockRef","MessageBlock","as","_props$datasourcePopu","datasourcePopupDialogParams","dataSourceOptions","optionValues","setErrorMsg","setPopupData","PopupHeading","CloseIcon","Iconclose","CustomFormFieldLabel","DataSourceTags","dataSourceChangeHandler","runConfirm","currentRecordsData","selectedAddress","setSelectedAddress","runCancel","clearMiqAddressPopup","hideStateOrProvince","paddingTop","Root","Input","defaultChecked","aria-checked","Fill","addressUsage","updatedCurrentRecordsData","CancelButton","confirmDialogSelector","dataSourcePopupSelector","setMiqAddressPopup","refreshPLP","regionsFiltered","r","newSiteId","setCountryCode","noEntry","readOnlyRoutes","StyledReadOnlyContainer","setItem","Miq","Links","UserContainer","small","miqPopupAddress","displayMIQ","DataSourcePopupDialog","ConfirmationDialog","MiqPopupAddress","miqPopupAddressParams","Logo","RegionSelect","logOut","FooterRoot","footer","FooterContainer","supportLink","IconSupport","IconSupportArrow","l","xl","letterSpacing","media","screen","themeSelector","RoutesContainer","ConfigErrorContainer","siteIdCode","queryParams","paramSplit","newParams","param","valueSplit","decodeURIComponent","configLoaded","appInsights","ApplicationInsights","instrumentationKey","loggingLevelConsole","loadAppInsights","trackPageView","windowResize","newTake","rows","numberOfRecordsToTake","currentTake","scrollX","scrollY","intercomm","intercommAppId","Intercom","appID","ThemeProvider","ConnectedRouter","HeaderMain","Routes","Footer","analyticsBooleanSelector","analyticsEvent","_len","eventData","_key","eventModel","transport","nonInteraction","reduce","ReactGA","isBrowser","_args","googleTrackingId","Boolean","baseUrl","getElementsByTagName","getAttribute","createBrowserHistory","basename","buildStore","pendingCheck","processingTimerId","insightsLoading","rootElement","ReactDOM","GLAnalytics","App","module","webpackContext","req","webpackContextResolve","__webpack_require__","code","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","every","getter","__esModule","definition","chunkId","all","promises","miniCssF","g","globalThis","this","Function","inProgress","needAttach","scripts","charset","timeout","nc","onScriptComplete","onerror","doneFns","head","nmd","paths","installedChunks","179","installedChunkData","promise","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"mappings":"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n6G,QAAU,kzB,kBCAjBm6G,EAAOn6G,QAAU,sgH,kBCAjBm6G,EAAOn6G,QAAU,87B,kBCAjBm6G,EAAOn6G,QAAU,0T,kBCAjBm6G,EAAOn6G,QAAU,shB,kBCAjBm6G,EAAOn6G,QAAU,sa,kBCAjBm6G,EAAOn6G,QAAU,0b,kBCAjBm6G,EAAOn6G,QAAU,8vB,kBCAjBm6G,EAAOn6G,QAAU,8qE,kBCAjBm6G,EAAOn6G,QAAU,8zB,kBCAjBm6G,EAAOn6G,QAAU,sU,kBCAjBm6G,EAAOn6G,QAAU,kmB,kBCAjBm6G,EAAOn6G,QAAU,ssI,kBCAjBm6G,EAAOn6G,QAAU,0tB,iBCAjBm6G,EAAOn6G,QAAU,sY,iBCAjBm6G,EAAOn6G,QAAU,kgB,kBCAjBm6G,EAAOn6G,QAAU,8jB,kBCAjBm6G,EAAOn6G,QAAU,kX,kBCAjBm6G,EAAOn6G,QAAU,knB,kBCAjBm6G,EAAOn6G,QAAU,kV,kBCAjBm6G,EAAOn6G,QAAU,0d,kBCAjBm6G,EAAOn6G,QAAU,8U,kBCAjBm6G,EAAOn6G,QAAU,srF,kBCAjBm6G,EAAOn6G,QAAU,8jP,kBCAjBm6G,EAAOn6G,QAAU,kuB,iBCAjBm6G,EAAOn6G,QAAU,stC,iBCAjBm6G,EAAOn6G,QAAU,s1B,kBCAjBm6G,EAAOn6G,QAAU,80B,iBCAjBm6G,EAAOn6G,QAAU,k7B,kBCAjBm6G,EAAOn6G,QAAU,0f,kBCAjBm6G,EAAOn6G,QAAU,k1B,kBCAjBm6G,EAAOn6G,QAAU,0yC,kBCAjBm6G,EAAOn6G,QAAU,skB,kBCAjBm6G,EAAOn6G,QAAU,ke,kBCAjBm6G,EAAOn6G,QAAU,kX,kBCAjBm6G,EAAOn6G,QAAU,knB,kBCAjBm6G,EAAOn6G,QAAU,8e,kBCAjBm6G,EAAOn6G,QAAU,spB,kBCAjBm6G,EAAOn6G,QAAU,8vC,kBCAjBm6G,EAAOn6G,QAAU,0iC,kBCAjBm6G,EAAOn6G,QAAU,klC,kBCAjBm6G,EAAOn6G,QAAU,s8B,kBCAjBm6G,EAAOn6G,QAAU,kzB,kBCAjBm6G,EAAOn6G,QAAU,kvB,kBCAjBm6G,EAAOn6G,QAAU,kuC,gBCAjBm6G,EA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","file":"static/js/main.0a84611f.js","sourcesContent":[" \nexport const environmentConfigs = {\n default: {\n adalConfig: {\n tenant: \"0159e9d0-09a0-4edf-96ba-a3deea363c28\",\n clientId: \"1963a892-e605-4399-9fab-0d18ccb777f0\",\n endpoints: {\n api: \"1963a892-e605-4399-9fab-0d18ccb777f0\"\n },\n cacheLocation: \"localStorage\"\n }\n },\n urlMatches : [\n {\n urls: [\"dummy.cbre.com\"],\n adalConfig: {\n tenant: \"0159e9d0-09a0-4edf-96ba-a3deea363c28\",\n clientId: \"729c089d-91f6-404e-80ad-02710292ee99\",\n endpoints: {\n api: \"729c089d-91f6-404e-80ad-02710292ee99\"\n },\n cacheLocation: \"localStorage\"\n }\n }\n ]\n}\n","import { AuthenticationContext, adalFetch, withAdalLogin, AdalConfig } from 'react-adal';\nimport { environmentConfigs } from \"./config/adal-setups\";\n\nexport const findURLMatch = ():AdalConfig => {\n const matchingConfig = environmentConfigs.urlMatches.filter((urlMatch:any) => urlMatch.urls && urlMatch.urls.indexOf(window.location.hostname) > -1);\n let config = environmentConfigs.default.adalConfig;\n if(matchingConfig.length > 0){\n config = matchingConfig[0].adalConfig;\n }\n return {\n tenant: config.tenant,\n clientId: config.clientId,\n endpoints: config.endpoints,\n cacheLocation: config.cacheLocation && config.cacheLocation === \"localStorage\" || config.cacheLocation === \"sessionStorage\" ? config.cacheLocation : undefined,\n redirectUri: window.location.origin\n }\n}\n\nexport const adalConfig = findURLMatch();\n\nexport const authContext = new AuthenticationContext(adalConfig);\n\nauthContext.log = (loglevel, message, error) => {\n console.log(`loglevel: ${loglevel}, message: ${message}, error: ${error}`);\n}\n\nlet endpoint:string = '';\nif (adalConfig !== undefined){\n if (adalConfig.endpoints !== undefined) {\n endpoint = adalConfig.endpoints.api\n }\n}\n\nexport const adalApiFetch = (fetch: any, url: string, options: any = {}) => {\n return adalFetch(authContext, endpoint, fetch, url, options);\n}\n\nexport const withAdalLoginApi = withAdalLogin(authContext, endpoint)","import { runWithAdal } from 'react-adal';\nimport { authContext } from './adalConfig';\n\nconst parent = window.parent as any;\nif (parent && parent !== window && parent.location && parent.location.pathname && parent.location.pathname.startsWith(\"/v2\")) {\n const checks = [\n /[\\?|&|#]code=/,\n /[\\?|&|#]error=/,\n /[\\?|&|#]token=/,\n /[\\?|&|#]id_token=/,\n ];\n\n const isResponse = (str: string) => {\n if (!str) {\n return false;\n }\n\n for (const check of checks) {\n if (str.match(check)) {\n return true;\n }\n }\n\n return false;\n }\n\n const message = isResponse(location.hash)\n ? \"#\" + encodeURIComponent(location.hash.substring(1))\n : \"#\" + encodeURIComponent(location.search);\n\n console.log(\n \"Silent refresh iframe is posting to the parent application, message:\",\n message\n );\n\n (window.opener || window.parent).postMessage(message, location.origin);\n} else {\n const legacyRedirect = localStorage.getItem(\"legacy.redirect\");\n if (legacyRedirect) {\n const hash = window.location.hash || \"\";\n window.location.href = legacyRedirect + hash;\n } else {\n const DO_NOT_LOGIN = false;\n runWithAdal(authContext, () => {\n const usr = authContext.getCachedUser();\n if (usr && window.analytics) {\n fetch(`https://cbre-uuid-fa.azurewebsites.net/api/uuid-generator?code=oPCx-ErmxkzsACG-xrPfmGTqQnEBy5HA5ELSUAlwOVK7AzFuwF7pIg==&email=${usr.userName}`)\n .then(response => {\n return response.text();\n })\n .then(data => {\n window.analytics.identify((data),\n {\n email: usr.userName\n });\n }).catch((error) => {\n console.log(error);\n });\n window.analytics.track(\"DEUserLogin\", {\n user: usr.profile,\n siteId: localStorage.getItem(\"siteId\")\n });\n }\n\n // eslint-disable-next-line\n require('./indexApp.tsx');\n\n }, DO_NOT_LOGIN);\n }\n}","import { Listing } from './listing/listing';\nimport { Team } from './team/team';\nimport { Contact } from './listing/contact';\nimport { ConfigDetails } from './config/config';\nimport { DataSource } from './listing/datasource';\nimport { GLFile } from './listing/file';\nimport { Filter } from './listing/filters';\nimport { MIQSearchResult } from './miq/miqSearchResultInt';\nimport { MIQStatus } from './miq/miqStatus';\nimport { MIQExportMessage } from './miq/miqExportMessaging';\nimport { InsightsRecord } from './insights/insights-record';\n\nexport interface State {\n router: {\n location: {\n pathname: string,\n search: string,\n hash: string,\n key: string,\n }\n action: string\n }\n pagedListings: PagedListings,\n entry: EntryPage,\n mapping: Mapping,\n system: System,\n contacts: Contacts,\n teams : TeamsPage,\n miq: MIQ,\n insights: Insights,\n featureFlags: FeatureFlags\n}\n\nexport interface PagedListings {\n listings: Listing[],\n assignedListings: Listing[],\n skip: number,\n take: number,\n moreRecords: boolean,\n searchText: string,\n filters: Filter[]\n}\n\nexport interface EntryPage {\n currentListing: Listing,\n navbar: NavBarState,\n pendingOperations: EntryPendingOperations,\n processingImagesCheck: ProcessingImagesCheck,\n refreshImages: GLFile[],\n spaces?: any\n}\n\nexport interface NavBarState {\n listingDirty: boolean,\n previewStatus: PreviewStatusMessage,\n previewStatusTimerId: number\n}\n\nexport interface ProcessingImagesCheck {\n pendingCheck: boolean,\n listingId: number | null,\n imageIds: number[] | null,\n processingTimerId: number | null\n}\n\nexport interface EntryPendingOperations {\n savePending: boolean\n}\n\nexport enum PreviewStatusMessage {\n BLANK,\n LOADING,\n AVAILABLE,\n UNAVAILABLE,\n FAILED,\n OUTDATED,\n SAVE_TO_GENERATE\n}\n\nexport interface User {\n name: string,\n isAdmin: boolean | null,\n isExternalSystemBrokerAvatarUploadRole: boolean | null,\n isOnlyExternalSystemBrokerAvatarUploadRole: boolean | null\n regions: string[];\n}\n\nexport interface Mapping {\n country: string,\n selectedCountry?: string,\n countryCode?: string\n}\n\nexport interface TeamsPage {\n allTeams: Team[],\n currentTeam: Team\n}\n\nexport interface FeatureFlags {\n previewFeatureFlag: boolean,\n miqImportFeatureFlag: boolean,\n miqLimitSearchToCountryCodeFeatureFlag: boolean,\n autoCalculateSizeAndPrice?: boolean,\n searchBrokerFeatureFlag?: boolean\n} \n\nexport interface System {\n configDetails: ConfigDetails,\n mainMessage: MainMessaging,\n alertMessage : AlertMessaging,\n confirmDialog: ConfirmDialogParams,\n analytics: boolean,\n suffix: ListingSuffix,\n entryPageScrollPosition: number,\n dataSourcePopup: DataSourcePopupParams,\n reloadListingId: number,\n isDuplicatingListing: boolean,\n user: User,\n cancelAction: RedirectAction,\n saveAction: RedirectAction,\n homeSiteId?: string,\n setMiqAddress?: any\n}\n\nexport interface RedirectAction {\n goto?: string\n}\n\nexport interface MainMessaging { /* main message meaning a display to the user that takes up the content area of the screen */\n show: boolean,\n type?: MainMessageType,\n message?: string,\n messageLine2?: string\n home?: boolean\n}\n\nexport enum MainMessageType {\n LOADING = \"LOADING\",\n SAVING = \"SAVING\",\n ERROR = \"ERROR\",\n NOTICE = \"NOTICE\",\n NONE = \"NONE\"\n}\n\nexport interface AlertMessaging { /* alerts will only be visible in a small part of the screen */\n show: boolean,\n message?: string,\n type?: AlertMessagingType,\n allowClose?: boolean\n}\n\nexport enum AlertMessagingType {\n ERROR = \"ERROR\",\n WARNING = \"WARNING\",\n NOTICE = \"NOTICE\",\n SUCCESS = \"SUCCESS\",\n NONE = \"NONE\"\n}\n\nexport interface ConfirmDialogParams {\n show: boolean,\n showConfirmButton?: boolean,\n showCopyButton?: boolean,\n title?: string,\n message?: string,\n scrollable?: boolean,\n cancelTxt?: string,\n confirmTxt?: string,\n copyTxt?: string,\n cancelFunc?(): void,\n confirmFunc?(): void\n}\n\nexport interface ListingSuffix{\n measure: string,\n leaseTerm: string \n}\n\nexport interface Contacts {\n allContacts: Contact[]\n}\n\nexport interface DataSourcePopupParams {\n show: boolean,\n action: string,\n datasource: DataSource,\n confirmFunc?(popupdata: any): void\n}\n\nexport interface MIQ {\n show: boolean,\n selectedSearchOption: MIQSearchResult,\n currentRecords: Listing[],\n pendingAddEditRecord: Listing,\n status: MIQStatus,\n exportMessage: MIQExportMessage,\n redirect: string,\n spaces: any[]\n}\n\nexport interface Insights {\n loading: MainMessaging,\n current: InsightsRecord\n}","import Axios from 'axios';\nimport { adalApiFetch } from '../adalConfig';\n\nexport const axiosGet = (url: string) => {\n return adalApiFetch(Axios.get, url)\n .then(response => {\n return response.data\n })\n .catch((error) => {\n return error.message\n })\n}\n\nexport const axiosPost = (url: string, gqlData: {query:string, variables?:any} ) => {\n\n return adalApiFetch(Axios, url, {\n method: \"post\",\n headers: { \"Content-Type\": \"application/json\", Accepted: \"application/json\" },\n data: gqlData\n })\n .then(res => {\n return res.data\n })\n .catch((error) => {\n console.log(error);\n return error.message\n })\n}\n\nexport const axiosDownloadReport = (url: string) => {\n\n return adalApiFetch(Axios, url, {\n method: \"get\",\n headers: { 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'Content-Disposition': \"attachment; filename=DEReport.xlsx\"},\n responseType:'arraybuffer'\n })\n .then(res => {\n return res.data\n })\n .catch((error) => {\n console.log(error);\n return error.message\n })\n}\n\n\nexport const axiosGetParam = (url: string, paramName: string, paramValue: string, callback: (data: string) => void) => {\n\n const urlparams = url + \"?\" + paramName + \"=\" + paramValue;\n\n // return adalApiFetch(Axios.get, urlparams, {\n // headers: {\"Access-Control-Allow-Origin\":\"*\"}\n // })\n\n return adalApiFetch(Axios, urlparams, {\n method: \"get\",\n headers: { \"Content-Type\": \"application/json\", Accepted: \"application/json\", \"Access-Control-Allow-Origin\":\"*\"}\n })\n .then(response => {\n\n if (response.status === 200) {\n callback(response.data);\n } else {\n callback('error');\n }\n })\n .catch((error) => {\n console.log(error);\n return error.message\n })\n}\n\nexport const fetchPostFile = (url: string, data: any, callback: (data: string) => void) => {\n const formData = new FormData();\n formData.append('file', data);\n\n return adalApiFetch(fetch, url, {\n method: \"post\",\n body: formData,\n headers: {\n Accept: 'application/json',\n },\n })\n .then(response => {\n \n if (response.ok) {\n response.json().then((json: any) => {\n callback(json)\n });\n } else {\n callback('error');\n }\n })\n .catch((error) => {\n callback('error')\n console.log(error);\n })\n}\n\nexport async function getData(url: string) {\n return await axiosGet(url)\n}\n\nexport async function postData(gqlData: {query:string, variables?:any}) {\n return await axiosPost('/graphql/', gqlData)\n}\n\nexport async function postFileNoWatermarkCheck(body: any, callback: any) {\n return await fetchPostFile('/api/FileUpload/UploadImageNoChecks', body, callback);\n}\n\n// NOTE: this is the API endpoint that hits RESTB, so only use it when we are ready to incur API hits.\nexport async function postFileWithWatermarkCheck(body: any, callback: any) {\n return await fetchPostFile('/api/FileUpload/UploadImage', body, callback)\n}\n\n// this call is for our \"retry\" function when there is an error on an image check\nexport async function checkImage(imageId: string, callback: any) {\n return await axiosGetParam('/api/FileUpload/CheckImage', 'id', imageId, callback)\n}\n\n// this call is for admin watermark processing to check process status\nexport async function watermarkDetectionProcessStatus() {\n return await axiosGet('/api/WatermarkDetect/CheckImageProcessStatus')\n}\n\n// this call is for admin watermark processing to start/stop process - run needs to be a bool string (\"true\" or \"false\")\nexport async function watermarkDetectionProcessSetStatus(runcode: string, callback: any) {\n return await axiosGetParam('/api/WatermarkDetect/SetImageProcessStatus', 'runcode', runcode, callback);\n}\n\nexport async function postBulkUploadFile(body: File, regionId: string, callback: any) {\n return await fetchPostFile('/api/BulkUpload?regionId='+ regionId, body, callback);\n}","import { SpecsListingTypeFields, SpecsPropertyTypeFields } from '../../types/config/specs/specs';\nimport { Config } from '../../types/config/config';\n\nexport const findSpecificationFields = (config:Config, propertyType:string, listingType:string):SpecsListingTypeFields | undefined => {\n\n if(!config || !propertyType || propertyType.length === 0 || !listingType || propertyType.length === 0){\n return;\n }\n\n let fieldSetups:SpecsListingTypeFields | undefined;\n\n // find the correct field configuration\n if(config && config.specifications){\n // find the correct place where we will pull the fields from using the property type\n\n Object.keys(config.specifications).forEach(key => {\n\n if(config.specifications[key]){\n\n const propertyTypeCandidate:SpecsPropertyTypeFields = config.specifications[key];\n\n if(propertyTypeCandidate.values && propertyTypeCandidate.values.indexOf(propertyType) > -1){\n // we know we have the right propertyType bucket, now find the listing type bucket\n if(propertyTypeCandidate[listingType]){\n fieldSetups = propertyTypeCandidate[listingType];\n }\n }\n }\n });\n }\n\n return fieldSetups;\n}","import { Config } from '../../types/config/config';\nimport { SpacesListingTypeFields, SpacesPropertyTypeFields } from '../../types/config/spaces/spaces';\n\nexport const findSpacesFields = (config:Config, propertyType:string, listingType:string):SpacesListingTypeFields | undefined => {\n \n if(!config || !propertyType || propertyType.length === 0 || !listingType || propertyType.length === 0){\n return;\n }\n\n let fieldSetups:SpacesListingTypeFields | undefined;\n \n if(config && config.spaces && config.spaces.fields){\n config.spaces.fields.forEach((spacesPropertyTypeField:SpacesPropertyTypeFields) => {\n if(spacesPropertyTypeField.propertyTypes.indexOf(propertyType) > -1){\n if(spacesPropertyTypeField[listingType]){\n fieldSetups = spacesPropertyTypeField[listingType];\n }\n }\n });\n }\n return fieldSetups;\n}\n\n","import { GLFile } from '../types/listing/file';\n\n// this utility function is responsible for ensuring we have an order assigned to files\nexport const sortGLFiles = (filesToSort:GLFile[]):GLFile[] => {\n // for now, ensure that the primary photo is 1 (re-factor if we implement user order capability)\n filesToSort.sort((a,b) => a.order && b.order && b.order > a.order ? 1 : -1);\n filesToSort.sort((a,b) => (b.primary) ? 1 : -1);\n // ensure all files have an order\n let order = 1;\n filesToSort.forEach((file:GLFile) => {\n file.order = order;\n order++;\n });\n return filesToSort;\n}","import { Listing } from '../types/listing/listing';\nimport { Space } from '../types/listing/space'\nimport moment from 'moment';\nimport { Team } from '../types/team/team';\nimport { UserSearchFilter } from '../types/team/userSearchFilter';\nimport { Config } from '../types/config/config';\nimport { SpecsListingTypeFields, SpecsFieldSetup } from '../types/config/specs/specs';\nimport { findSpecificationFields } from '../utils/config/specifications-fields';\nimport { SpacesListingTypeFields, SpacesFieldSetup } from '../types/config/spaces/spaces';\nimport { findSpacesFields } from '../utils/config/spaces-fields';\nimport { GLFile } from '../types/listing/file';\nimport { Contact } from '../types/listing/contact';\nimport { sortGLFiles } from '../utils/sort-files';\nimport { Filter } from '../types/listing/filters';\nimport { MultiLangString } from '../types/listing/multi-lang-string';\nimport { isArray } from 'lodash';\nimport { gql } from 'graphql-tag'\nimport { print } from 'graphql/language/printer';\nimport { DocumentNode } from 'graphql/language/ast';\n\nexport const defaultRegionID = \"00000000-0000-0000-0000-000000000001\";\n\nexport const loadAppSettings = () => {\n return buildRequestData(\n gql`query {\n configs {\n homeSiteId\n aiKey\n previewFeatureFlag\n miqImportFeatureFlag\n miqLimitSearchToCountryCodeFeatureFlag\n googleMapsKey,\n googleMapsChannel\n }\n }`\n );\n}\n\nexport const pullRegions = () => {\n return buildRequestData(\n gql`query {\n regions {\n iD, \n name, \n homeSiteID, \n previewSiteID, \n listingPrefix, \n previewPrefix, \n cultureCode, \n countryCode\n }\n }`\n );\n}\n\nexport const pullAllRegions = (skipUserAccess: boolean) => {\n return buildRequestData(\n gql`query ($skipUserAccess: Boolean){\n regions(skipUserAccess: $skipUserAccess) {\n iD, \n name, \n homeSiteID, \n previewSiteID, \n listingPrefix, \n previewPrefix, \n cultureCode, \n countryCode\n }\n } `,\n {\n skipUserAccess: skipUserAccess\n }\n );\n}\n\n\nexport const addSelfToRegion = (regionId: string) => {\n return buildRequestData(\n gql`mutation(\n $regionId: String!\n ) {\n addSelfToRegion(\n regionId: $regionId\n )\n }`,\n {\n regionId\n });\n}\n\nexport const getAllContacts = (regionId: string | undefined) => {\n return buildRequestData(\n gql`query ($regionId: String){\n contacts (regionId: $regionId) {\n contactId\n firstName\n lastName\n email\n phone\n location\n title\n avatar\n additionalFields {\n license\n }\n }\n }`,\n {\n regionId: regionId\n }\n );\n}\n\nexport const isAdmin = (regionID: string | null) => {\n return buildRequestData(\n gql`query ($regionID: String){\n isAdmin (regionID: $regionID) \n }`,\n {\n regionID: regionID\n }\n );\n}\n\nexport const userRoles = (regionID: string | null) => {\n return buildRequestData(\n gql`query ($regionID: String){\n userRoles (regionID: $regionID){\n isAdmin\n isExternalSystemBrokerAvatarUploadRole\n } \n }`,\n {\n regionID: regionID\n }\n );\n}\n\nexport const countAssigned = () => {\n return buildRequestData(\n gql`query {\n count(\n filterOptions: [\n {type:\"MiqOnly\", value:\"true\"}\n {type:\"AssignmentStatus\", value:\"true\"}\n ]\n )\n }`);\n}\n\nexport const pullListingsPaged = (skip: number, take: number, filters: Filter[], region?: string | null) => {\n return buildRequestData(\n gql`query (\n $skip: Int = null\n $take: Int = null\n $filterOptions: [FilterInput] = null\n $regionID: String = null\n ) {\n listings(\n skip: $skip\n take: $take\n filterOptions: $filterOptions\n regionID: $regionID\n ) {\n id\n isDeleted \n propertyRecordName\n street\n city\n stateOrProvince\n postalCode\n propertyType\n listingType\n state\n published\n externalPublishUrl\n photos {\n primary\n url\n }\n specifications {\n contactBrokerForPrice\n totalSpace\n measure\n salePrice\n minPrice\n maxPrice\n leaseTerm\n showPriceWithUoM\n }\n contacts {\n firstName\n lastName\n avatar\n }\n listingAssignment {\n assignedBy\n assignmentFlag\n assignedDate\n }\n }\n }`,\n {\n skip,\n take,\n filterOptions: filters,\n regionID: region || defaultRegionID\n });\n};\n\nexport const findMiQProperties = (term: string, countryCode: string) => {\n return buildRequestData(\n gql`query (\n $term: String!\n $countryCode: String = null\n ) {\n searchEdpProperties(\n keyword:$term\n country:$countryCode\n ) {\n id\n name\n street1\n street2\n city\n stateProvince\n postalCode\n propertyType\n }\n }`,\n {\n term,\n countryCode\n }\n );\n}\n\nexport const getAllTeamsForUser = (regionId: string | undefined) => {\n return buildRequestData(\n gql`query(\n $regionId: String!\n ) {\n teams(regionID: $regionId) {\n name\n users {\n id\n firstName\n lastName \n }\n } \n }`,\n {\n regionId\n }\n );\n}\n\nexport const pullSingleListing = (id: number) => {\n return buildRequestData(\n gql`query(\n $id: Int!\n ) {\n listing(id: $id) {\n ...listingEditPageFields\n }\n }\n ${listingEditPageFields}`,\n {\n id\n });\n}\n\nexport const updateListingQuery = (listingData: Listing, config: Config, regionID?: any) => {\n return buildRequestData(\n gql`mutation(\n $listing: ListingInput!\n ) {\n updateListing(listing: $listing) {\n ...listingEditPageFields\n }\n }\n ${listingEditPageFields}`,\n {\n listing: getListingDTO(listingData, config, regionID)\n }\n );\n}\n\nexport const createNewListingQuery = (listingData: Listing, config: Config, regionId?: string) => {\n const listing = getListingDTO(listingData, config, regionId);\n\n // Do not pass the listing id on create\n delete listing.id;\n\n return buildRequestData(\n gql`mutation(\n $listing: ListingInput!\n ) {\n createListing(\n listing: $listing\n )\n {\n ...listingEditPageFields\n }\n }\n ${listingEditPageFields}`,\n {\n listing\n }\n );\n}\n\nexport const createNewTeamQuery = (teamData: Team, regionId: string) => {\n const userList: string[] = teamData.users.map((member: any) => member.email);\n\n return buildRequestData(\n gql`mutation(\n $name: String!\n $users: [String!] = null\n $regionId: String!\n ) {\n createTeam(\n name: $name,\n users: $users,\n regionId: $regionId\n )\n }`,\n {\n name: teamData.name,\n users: Array.isArray(userList) ? userList : [],\n regionId: regionId\n });\n}\n\nexport const updateTeamQuery = (teamData: Team, regionId: string) => {\n const userList: string[] = teamData.users.map((member: any) => member.email);\n\n return buildRequestData(\n gql`\n mutation(\n $name: String!\n $newName: String = null\n $users: [String!] = null,\n $regionId: String!\n ) {\n updateTeam(\n name: $name,\n newName: $newName,\n users: $users,\n regionId: $regionId\n )\n }\n `,\n {\n name: teamData.id,\n newName: teamData.name,\n users: Array.isArray(userList) ? userList : [],\n regionId: regionId\n });\n}\n\nexport const deleteTeamQuery = (id: string) => {\n return buildRequestData(\n gql`mutation(\n $name: String!\n ) {\n deleteTeam(\n name: $name\n )\n }`,\n {\n name: id\n });\n}\n\nexport const getUsers = (userData: UserSearchFilter) => {\n return buildRequestData(\n gql`query(\n $term: String = null\n $blacklist: [String] = null\n $skip: Int = null\n $take: Int = null\n ) {\n users(\n term: $term\n blacklist: $blacklist\n skip: $skip\n take: $take\n )\n {\n id\n fullName\n firstName\n lastName\n }\n }`,\n {\n term: userData.term || ``,\n blacklist: Array.isArray(userData.blacklist) ? userData.blacklist : null,\n skip: userData.skip || null,\n take: userData.take || null\n });\n}\n\nexport const addUserToRegion = (user: string, regionId: string | undefined) => {\n return buildRequestData(\n gql`mutation(\n $user: String!,\n $regionId: String!\n ) {\n addUserToRegion(\n user: $user,\n regionId: $regionId\n )\n }`,\n {\n user,\n regionId\n });\n}\n\n\n\nexport const removeUserFromRegion = (user: string, regionId: string | undefined) => {\n return buildRequestData(\n gql`mutation(\n $user:String!,\n $regionId: String!\n ) {\n removeUserFromRegion(\n user:$user,\n regionId: $regionId\n )\n }`,\n {\n user,\n regionId\n });\n}\n\n\n\nexport const getUsersOrTeams = (userData: UserSearchFilter) => {\n return buildRequestData(\n gql`query(\n $term: String = null\n $blacklist: [String] = null\n $skip: Int = null\n $take: Int = null\n ) {\n claimants(\n term: $term\n blacklist: $blacklist\n skip: $skip\n take: $take\n )\n {\n name\n fullName\n firstName\n lastName\n isTeam\n }\n }`,\n {\n term: userData.term || ``,\n blacklist: Array.isArray(userData.blacklist) ? userData.blacklist : null,\n skip: userData.skip || null,\n take: userData.take || null\n });\n}\n\nexport const deleteListingQuery = (id: number) => {\n return buildRequestData(\n gql`mutation(\n $id: Int!\n ) {\n deleteListing(\n id: $id\n )\n }`,\n {\n id\n });\n}\n\nexport const checkForNewSpaces = (id: number) => {\n return buildRequestData(\n gql`query (\n $id: Int!\n ) {\n spaces(id: $id) { \n id \n miqId \n availableFrom \n name { \n cultureCode \n text \n } \n spaceDescription { \n cultureCode \n text \n } \n spaceType \n status \n specifications { \n contactBrokerForPrice \n currencyCode \n leaseTerm \n leaseType \n maxPrice \n maxSpace \n measure \n minPrice \n minSpace \n totalSpace \n salePrice \n } \n photos { \n id \n active \n displayText \n primary \n order \n url \n watermark \n watermarkProcessStatus \n userOverride \n } \n floorplans { \n id \n active \n displayText \n primary \n order \n url \n watermark \n watermarkProcessStatus \n userOverride \n } \n brochures { \n active \n displayText \n primary \n url \n } \n video \n walkThrough \n spaceSizes { \n sizeKind \n amount \n measureUnit\n }\n }\n }`,\n {\n id\n }\n );\n}\n\nexport const publish = (id: number) => {\n return buildRequestData(\n gql`mutation(\n $id: Int!\n ) {\n publishListing(\n id: $id\n ) \n {\n id\n state\n }\n }`,\n {\n id\n });\n}\n\nexport const unpublish = (id: number) => {\n return buildRequestData(\n gql`mutation(\n $id: Int!\n ) {\n unpublishListing(\n id: $id\n )\n {\n id\n state\n }\n }`,\n {\n id\n });\n}\n\nexport const saveContact = (contact: Contact, regionId?: string | undefined) => {\n return buildRequestData(\n gql`mutation(\n $contactId: Int\n $firstName: String\n $lastName: String\n $location: String\n $title: String\n $avatar: String\n $phone: String\n $email: String\n $license: String\n $regionId: String\n ) {\n saveContact(\n broker:{\n contactId: $contactId\n firstName: $firstName\n lastName: $lastName\n location: $location\n title: $title\n phone: $phone\n email: $email\n avatar: $avatar\n additionalFields:{\n license: $license\n }\n },\n regionId: $regionId\n )\n {\n contactId,\n firstName\n lastName\n location\n title\n phone\n email\n avatar\n additionalFields\n {\n license\n }\n }\n }`,\n {\n contactId: contact.contactId || null,\n firstName: contact.firstName || ``,\n lastName: contact.lastName || ``,\n location: contact.location || ``,\n title: contact.title || ``,\n phone: contact.phone || ``,\n email: contact.email || ``,\n avatar: contact.avatar || ``,\n license: contact.additionalFields && contact.additionalFields.license || ``,\n regionId: regionId\n });\n}\n\nexport const checkImagesProcessingStatus = (listingId: number | null, imageIds: number[] | null) => {\n return buildRequestData(\n gql`query(\n $listingId: Int = null\n $imageIds: [Int] = null\n ) {\n images(\n listingId: $listingId\n imageIds: $imageIds\n ) {\n id\n url\n watermarkProcessStatus\n }\n }`,\n {\n listingId,\n imageIds\n });\n}\n\nexport const importEDPProperties = (miqID: number, regionID: string) => {\n return buildRequestData(\n gql`query(\n $id: Int!\n $regionID: String = null\n ) { \n getEdpImportProperty(\n id: $id\n regionID: $regionID\n ) {\n ...listingEditPageFields \n floorplans {\n base64String \n } \n brochures {\n base64String \n } \n epcGraphs {\n base64String \n } \n photos {\n base64String \n } \n spaces {\n photos {\n base64String \n } \n floorplans {\n base64String \n } \n brochures {\n base64String \n }\n } \n } \n }\n ${listingEditPageFields}`,\n {\n id: miqID,\n regionID: regionID || defaultRegionID\n });\n}\n\nexport const getFeedsByOfficeId = (id: string) => {\n return buildRequestData(\n gql`query($id: String!) {\n getFeedsByOfficeId(id:$id)\n {\n id\n name\n } \n }`,\n {\n id\n });\n}\n\nexport const getAnalyticsByPropertyId = (id: number) => {\n return buildRequestData(\n gql`mutation(\n $id: Int!\n ) {\n getAnalyticsByPropertyId(\n listingId: $id\n )\n {\n leadCount\n newUserCount\n pDPClicks\n shareCount\n }\n }`,\n {\n id\n });\n}\n\nexport const getLeadsReport = (id: number) => {\n return buildRequestData(\n gql`mutation(\n $id: Int!\n ) {\n getLeadsReport(\n propertyId: $id\n )\n {\n emailAddress\n companyName\n contactName\n phoneNumber\n roleName\n requestType\n contactDate\n }\n }`,\n {\n id\n });\n}\n\nfunction buildRequestData(doc: DocumentNode, variables?: any) {\n return {\n \"query\": print(doc),\n \"variables\": variables\n }\n};\n\nconst listingEditPageFields = gql`fragment listingEditPageFields on Listing {\n id\n miqId\n regionID\n externalId\n state\n propertyName\n propertyRecordName\n configId\n street\n street2\n city\n stateOrProvince\n postalCode\n country\n operator\n lat\n lng\n alternatePostalAddresses {\n street\n street2\n city\n stateOrProvince\n postalCode\n country\n lat\n lng\n addressUsage\n }\n energyRating\n externalRatings {\n ratingType\n ratingLevel\n }\n buildingDescription {\n cultureCode\n text\n }\n locationDescription {\n cultureCode\n text\n }\n investmentDescription {\n cultureCode\n text\n }\n listingType\n propertyType\n propertyTypes\n propertySubType\n propertyUseClass\n status\n availableFrom\n syndicationFlag\n syndicationMarket\n website\n brochureURL\n displayAddress\n tenancy\n officeId\n salesOpportunity\n portfolio\n exclusivity\n authority\n majorEnergySources\n externalPropertyId\n externalPlatformId\n headline {\n cultureCode\n text\n }\n video\n walkThrough\n importedData\n owner\n floors\n yearBuilt\n zoning\n aspects\n previewSearchApiEndPoint\n externalPreviewUrl\n externalPublishUrl\n dateCreated\n dateUpdated\n datePublished\n dateListed\n isDeleted\n chargesAndModifiers {\n chargeType\n chargeModifier\n term\n amount\n perUnitType\n year\n currencyCode\n }\n propertySizes{\n sizeKind\n measureUnit\n amount\n }\n parkings {\n ratio \n ratioPer \n ratioPerUnit \n parkingDetails {\n parkingType \n parkingSpace \n amount \n interval\n currencyCode\n }\n }\n demoGraphics{\n uom,\n interval1,\n interval2,\n interval3,\n cultureCode,\n demoGraphicsDetails{\n value1,\n value2,\n value3,\n category,\n usageType\n }\n }\n auction {\n eventDate \n eventTime\n eventPlace\n }\n pointsOfInterests{\n interestKind \n places{\n name\n type\n distances\n distanceUnits\n duration\n travelMode\n order\n }\n }\n transportationTypes{\n type\n places{\n name\n duration\n distanceUnits\n distances\n travelMode\n order\n }\n }\n users {\n id\n firstName\n lastName\n fullName\n }\n teams {\n name\n users {\n id\n firstName\n lastName\n fullName\n }\n }\n floorplans {\n id\n active\n displayText\n primary\n url\n watermark\n watermarkProcessStatus\n userOverride\n order\n }\n brochures {\n active\n displayText\n primary\n url\n }\n epcGraphs {\n active\n displayText\n primary\n url\n }\n highlights {\n order\n cultureCode\n text \n miqId\n }\n\n microMarkets {\n order\n value\n }\n dataSource {\n dataSources\n other\n }\n photos {\n id\n active\n displayText\n primary\n url\n watermark\n watermarkProcessStatus\n userOverride\n order\n }\n specifications {\n contactBrokerForPrice\n showPriceWithUoM\n currencyCode\n leaseTerm\n leaseType\n leaseRateType\n maxPrice\n maxSpace\n salePrice\n yieldPercentage\n measure\n minPrice\n minSpace\n totalSpace\n taxModifer\n bedrooms\n autoCalculateMinSpace\n autoCalculateTotalSpace\n autoCalculateMinPrice\n autoCalculateMaxPrice\n autoCalculateTotalPrice\n externalAvailabilityId\n }\n microMarkets {\n order\n value\n }\n listingAssignment {\n assignedBy\n assignmentFlag\n assignedDate\n }\n spaces {\n id\n miqId\n availableFrom\n name {\n cultureCode\n text\n }\n spaceDescription {\n cultureCode\n text\n }\n spaceType\n status\n specifications {\n contactBrokerForPrice\n currencyCode\n leaseTerm\n leaseType\n maxPrice\n maxSpace\n measure\n minPrice\n minSpace\n totalSpace\n salePrice\n externalAvailabilityId\n }\n photos {\n id\n active\n displayText\n primary\n order\n url\n watermark\n watermarkProcessStatus\n userOverride\n }\n floorplans {\n id\n active\n displayText\n primary\n order\n url\n watermark\n watermarkProcessStatus\n userOverride\n }\n brochures {\n active\n displayText\n primary\n url\n }\n video\n walkThrough\n spaceSizes {\n sizeKind\n amount\n measureUnit\n }\n }\n contacts {\n contactId\n firstName\n lastName\n location\n title\n phone\n email\n avatar\n additionalFields {\n license\n }\n }\n externalPublishingState {\n feedId\n name\n value\n published\n }\n demoGraphics{\n uom\n interval1\n interval2\n interval3\n cultureCode\n demoGraphicsDetails{\n value1\n value2\n value3\n category\n usageType\n }\n }\n}`\n\nfunction getListingDTO(listingData: Listing, config: Config, regionID?: string) {\n const data: Listing = prepareListingData(listingData, config);\n const useLeaseRateType: boolean = config && config.featureFlags.leaseRateTypeEnabled;\n const saveDataSource: boolean = config && config.dataSource && config.dataSource.show;\n\n console.log(data.specifications);\n\n return {\n id: data.id,\n miqId: data.miqId,\n regionID: regionID ? regionID : \"00000000-0000-0000-0000-000000000001\",\n externalId: data.externalId ? data.externalId : null,\n published: data.published || null,\n propertyName: data.propertyName,\n propertyRecordName: data.propertyRecordName,\n configId: config && config.siteId || ``,\n propertyType: data.propertyType,\n propertyTypes: data.propertyTypes,\n propertySubType: data.propertySubType || ``,\n propertyUseClass: data.propertyUseClass || ``,\n listingType: data.listingType,\n street: data.street || ``,\n street2: data.street2 || ``,\n website: data.website || ``,\n brochureURL: data.brochureURL || '',\n operator: data.operator || ``,\n headline: Array.isArray(data.headline) ? data.headline : [],\n video: data.video || ``,\n walkThrough: data.walkThrough || ``,\n city: data.city || ``,\n stateOrProvince: data.stateOrProvince || ``,\n postalCode: data.postalCode ? String(data.postalCode) : ``,\n country: data.country ? String(data.country) : ``,\n lat: data.lat || null,\n lng: data.lng || null,\n floors: data.floors || null,\n yearBuilt: data.yearBuilt || null,\n zoning: data.zoning || null,\n energyRating: data.energyRating || ``,\n externalRatings: data.externalRatings || [],\n externalPropertyId: data.externalPropertyId || ``,\n externalPlatformId: data.externalPlatformId || null,\n buildingDescription: Array.isArray(data.buildingDescription) ? data.buildingDescription : [],\n locationDescription: Array.isArray(data.locationDescription) ? data.locationDescription : [],\n investmentDescription: Array.isArray(data.investmentDescription) ? data.investmentDescription : [],\n externalPublishingState: data.externalPublishingState || [],\n exclusivity: data.exclusivity,\n authority: data.authority,\n displayAddress: data.displayAddress,\n tenancy: data.tenancy,\n salesOpportunity: data.salesOpportunity,\n officeId: data.officeId,\n portfolio: data.portfolio,\n status: data.status || ``,\n syndicationFlag: data.syndicationFlag || null,\n syndicationMarket: data.syndicationMarket || ``,\n availableFrom: data.availableFrom && data.availableFrom !== '' ? data.availableFrom : null,\n photos: data.photos,\n brochures: data.brochures,\n floorplans: data.floorplans,\n highlights: data.highlights,\n epcGraphs: data.epcGraphs,\n propertySizes: data.propertySizes,\n chargesAndModifiers: data.chargesAndModifiers,\n specifications: {\n contactBrokerForPrice: data.specifications.contactBrokerForPrice || false,\n showPriceWithUoM: data.specifications.showPriceWithUoM || false,\n leaseTerm: data.specifications.leaseTerm || ``,\n leaseType: data.specifications.leaseType || ``,\n leaseRateType: useLeaseRateType && data.specifications.leaseRateType || ``,\n minPrice: data.specifications.minPrice || null,\n maxPrice: data.specifications.maxPrice || null,\n minSpace: data.specifications.minSpace || null,\n maxSpace: data.specifications.maxSpace || null,\n totalSpace: data.specifications.totalSpace || null,\n salePrice: data.specifications.salePrice || null,\n yieldPercentage: data.specifications.yieldPercentage || null,\n measure: data.specifications.measure || ``,\n taxModifer: data.specifications.taxModifer || `None`,\n bedrooms: data.specifications.bedrooms ? parseInt(data.specifications.bedrooms, 10) : null,\n currencyCode: data.specifications.currencyCode || config && config.currencyCode || `USD`,\n autoCalculateMinSpace: data.specifications.autoCalculateMinSpace || false,\n autoCalculateTotalSpace: data.specifications.autoCalculateTotalSpace || false,\n autoCalculateMinPrice: data.specifications.autoCalculateMinPrice || false,\n autoCalculateMaxPrice: data.specifications.autoCalculateMaxPrice || false,\n autoCalculateTotalPrice: data.specifications.autoCalculateTotalPrice || false\n },\n microMarkets: Array.isArray(data.microMarkets) ? data.microMarkets : [],\n spaces: Array.isArray(data.spaces) ? data.spaces : [],\n contacts: Array.isArray(data.contacts) ? data.contacts : [],\n userNames: Array.isArray(data.userList) ? data.userList : [],\n parkings: data.parkings || null,\n demoGraphics: data.demoGraphics || null,\n pointsOfInterests: Array.isArray(data.pointsOfInterests) ? data.pointsOfInterests : [],\n transportationTypes: Array.isArray(data.transportationTypes) ? data.transportationTypes : [],\n teamNames: Array.isArray(data.teamList) ? data.teamList : [],\n aspects: Array.isArray(data.aspects) ? data.aspects : [],\n dataSource: {\n dataSources: saveDataSource && data.datasource.datasources || [],\n other: saveDataSource && data.datasource.other || ``\n },\n listingAssignment: data.listingAssignment || null,\n auction: {\n eventPlace: data.auction && data.auction.eventPlace || null,\n eventDate: data.auction && data.auction.eventDate || null,\n eventTime: data.auction && data.auction.eventTime || null\n },\n majorEnergySources: data.majorEnergySources,\n }\n}\n\n// Format dates for save, stripping time and timezone. Datepicker tends to\n// produce a datetime at local midnight converted to UTC, sometimes resulting\n// in the wrong date. This function reverts back to local time to extract the\n// calendar date, then passes the date as a UTC date at 11AM. 11AM is the\n// same date in all timezones.\nconst prepareDate = (value: string) => {\n if (value) {\n return moment(value).local().format(\"YYYY-MM-DDT11:00:00\");\n }\n return value;\n}\n\nconst scrubMultiLangString = (value: MultiLangString[], config: Config): MultiLangString[] => {\n return Array.isArray(value) && value\n .filter(v => v.text && v.text !== '')\n .map((v, i): MultiLangString => {\n return {\n text: v.text || \"\",\n cultureCode: v.cultureCode || (config && config.defaultCultureCode) || ''\n }\n }) || [];\n};\n\n// prepare data that we receive before we send to the server\n// this function is basically a final check on data and ensuring it is in a certain form to limit save errors, etc.\nconst prepareListingData = (listing: Listing, config: Config) => {\n\n let cultureCodeStr: string = \"en-US\";\n if (config && config.defaultCultureCode) {\n cultureCodeStr = config.defaultCultureCode;\n }\n\n if (!listing.datasource) {\n listing.datasource = {};\n }\n // TODO: Need to seprate with another method and get this logic implemented over there.\n if (config && config.addToTeam) {\n const teamList: Team[] = [];\n listing.teams = listing.teams ? listing.teams : [];\n const teamDetails = config.addToTeam.properties.find(t => t.propertyType.toLocaleLowerCase() === listing.propertyType.toLocaleLowerCase()\n && t.listingType.toLocaleLowerCase() === listing.listingType.toLocaleLowerCase());\n if (teamDetails) {\n const teams = teamDetails.teamName.split(',');\n teams.forEach((t: any) => {\n const isTeamExist = teamList.filter(tl => tl.name === t);\n if (isTeamExist.length === 0) {\n const newTeam: any = {\n name: t,\n id: \"\",\n users: []\n };\n teamList.push(newTeam);\n }\n });\n }\n listing.teams = teamList;\n }\n\n if (!(config && config.languages)) {\n // convert any single string values to cultureCode array\n\n\n\n listing.headline = [];\n if (listing.headlineSingle) {\n listing.headline.push({ cultureCode: cultureCodeStr, text: listing.headlineSingle })\n }\n\n listing.buildingDescription = [];\n if (listing.buildingDescriptionSingle) {\n listing.buildingDescription.push({ cultureCode: cultureCodeStr, text: listing.buildingDescriptionSingle })\n }\n\n listing.locationDescription = [];\n if (listing.locationDescriptionSingle) {\n listing.locationDescription.push({ cultureCode: cultureCodeStr, text: listing.locationDescriptionSingle })\n }\n\n listing.investmentDescription = [];\n if (listing.investmentDescriptionSingle) {\n listing.investmentDescription.push({ cultureCode: cultureCodeStr, text: listing.investmentDescriptionSingle })\n }\n\n if (listing.spaces) {\n listing.spaces.forEach((space: Space) => {\n space.name = [];\n if (space.nameSingle) {\n space.name.push({ cultureCode: cultureCodeStr, text: space.nameSingle })\n }\n\n space.spaceDescription = [];\n if (space.spaceDescriptionSingle) {\n space.spaceDescription.push({ cultureCode: cultureCodeStr, text: space.spaceDescriptionSingle })\n }\n\n });\n }\n\n }\n else {\n listing.headline = scrubMultiLangString(listing.headline, config);\n listing.buildingDescription = scrubMultiLangString(listing.buildingDescription, config);\n listing.locationDescription = scrubMultiLangString(listing.locationDescription, config);\n listing.investmentDescription = scrubMultiLangString(listing.investmentDescription, config);\n if (listing.spaces) {\n listing.spaces.forEach((space: Space) => {\n if (space.nameSingle && listing.propertyType === 'flexOffice') {\n space.name = [{ cultureCode: cultureCodeStr, text: space.nameSingle }];\n }\n else {\n space.name = scrubMultiLangString(space.name, config);\n }\n space.spaceDescription = scrubMultiLangString(space.spaceDescription, config);\n });\n }\n }\n\n if (listing.externalPropertyId) {\n listing.externalPropertyId = String(listing.externalPropertyId);\n }\n\n // ensure files are sorted with primary always being 1 with an order of 1\n if (listing.photos) {\n listing.photos = sortGLFiles(listing.photos);\n }\n if (listing.floorplans) {\n listing.floorplans = sortGLFiles(listing.floorplans);\n }\n if (listing.spaces) {\n listing.spaces.forEach((space: Space) => {\n if (space.photos) {\n space.photos = sortGLFiles(space.photos);\n }\n if (space.floorplans) {\n space.floorplans = sortGLFiles(space.floorplans);\n }\n\n });\n }\n\n\n // delete remnant object properties that breaks api\n const imageArrays: string[] = ['photos', 'floorplans', 'brochures', 'epcGraphs'];\n\n // specifications level \n imageArrays.map(object => {\n if (listing[object] && listing[object].length > 0) {\n listing[object].map((file: any) => {\n let fileExtension = '';\n if (file && file.name) {\n fileExtension = file.name.substr(file.name.lastIndexOf('.'), file.name.length);\n }\n if (file.hasOwnProperty(\"errorDisplay\")) {\n delete file.errorDisplay;\n }\n if (file.hasOwnProperty(\"loadingMsg\")) {\n delete file.loadingMsg;\n }\n // special one off case for PDF\n if (fileExtension === \".pdf\" && file.hasOwnProperty(\"userOverride\")) {\n delete file.userOverride;\n }\n if (object === \"brochures\" || object === \"epcGraphs\") {\n if (file.hasOwnProperty(\"userOverride\")) {\n delete file.userOverride;\n }\n if (file.hasOwnProperty(\"id\")) {\n delete file.id;\n }\n if (file.hasOwnProperty(\"watermarkProcessStatus\")) {\n delete file.watermarkProcessStatus;\n }\n }\n });\n }\n });\n\n // highlight check (should be no blank highlights)\n if (listing.highlights) {\n const scrubbedHighlights: any[] = [];\n listing.highlights.forEach((highlight: any) => {\n if (highlight && highlight.value && highlight.value.length > 0) {\n let highlightOrder: number | undefined = highlight.order\n if (!highlight.order && highlight.id && typeof highlight.id === \"string\") {\n highlightOrder = Number(highlight.id);\n delete highlight.id;\n }\n if (highlightOrder && typeof highlightOrder === \"string\") {\n highlightOrder = Number(highlight.order);\n }\n highlight.value.forEach((multiLangEntry: MultiLangString) => {\n if (multiLangEntry.text && multiLangEntry.text.trim().length > 0) {\n scrubbedHighlights.push({\n order: highlightOrder,\n text: multiLangEntry.text,\n cultureCode: multiLangEntry.cultureCode,\n miqId: multiLangEntry.miqId\n });\n }\n });\n }\n });\n listing.highlights = [...scrubbedHighlights];\n }\n\n // clear out empty string distances\n if (listing.pointsOfInterests && isArray(listing.pointsOfInterests)) {\n listing.pointsOfInterests.forEach((poi: any, index: number) => {\n if (poi.places) {\n poi.places.forEach((place: any, i: number) => {\n if (place.distances == null || place.distances.length === 0) { // tslint:disable-line\n listing.pointsOfInterests[index].places[i].distances = null; // tslint:disable-line\n }\n if (place.duration == null || place.duration.length === 0) { // tslint:disable-line\n listing.pointsOfInterests[index].places[i].duration = null; // tslint:disable-line\n }\n })\n }\n })\n }\n if (listing.transportationTypes && isArray(listing.transportationTypes)) {\n listing.transportationTypes.forEach((poi: any, index: number) => {\n if (poi.places) {\n poi.places.forEach((place: any, i: number) => {\n if (place.distances == null || place.distances.length === 0) { // tslint:disable-line\n listing.transportationTypes[index].places[i].distances = null; // tslint:disable-line\n }\n if (place.duration == null || place.duration.length === 0) { // tslint:disable-line\n listing.transportationTypes[index].places[i].duration = null; // tslint:disable-line\n }\n })\n }\n })\n }\n\n // contacts : handle cleaning out temp ids for creates\n for (const contact of listing.contacts) {\n if (contact.tempId && contact.tempId === true) {\n delete contact.tempId;\n delete contact.contactId;\n }\n }\n if (!listing.chargesAndModifiers) {\n const type = \"chargesAndModifiers\"\n listing[type] = []\n }\n\n\n\n // grab the field config given the property type and listing type\n const spaceFieldSetups: SpacesListingTypeFields | undefined = findSpacesFields(config, listing.propertyType, listing.listingType);\n\n if (spaceFieldSetups) {\n // resolve spaces data\n const spaces: Space[] = [];\n if (listing.spaces && listing.spaces.length > 0) {\n listing.spaces.map((space: any) => {\n // first, strip out any values that don't belong to this property/type listing type combo to kill stale values that might be sticking around\n const spaceLevelAllowedFields: string[] = [\"id\", \"miqId\", \"specifications\", \"photos\", \"floorplans\", \"brochures\", \"video\", \"walkThrough\"]; // initialize with any \"hidden\" fields not a part of the config\n const specsAllowedFields: string[] = [\"currencyCode\"];\n\n // go through the field setups and find only the fields that we should include (NON specifications level)\n Object.keys(spaceFieldSetups).forEach((fieldSetupName: string) => {\n const fieldSetup: SpacesFieldSetup = spaceFieldSetups[fieldSetupName];\n if (fieldSetup && fieldSetup.show && fieldSetup.properties && fieldSetup.properties.hasOwnProperty(\"name\")) {\n\n if (fieldSetup.properties.name.indexOf(\"specifications\") === -1) {\n // space level because the name doesnt include specifications\n if (fieldSetup.properties.hasOwnProperty(\"dbName\")) {\n spaceLevelAllowedFields.push(fieldSetup.properties.dbName);\n }\n else {\n spaceLevelAllowedFields.push(fieldSetup.properties.name);\n }\n } else if (fieldSetup.properties.name.indexOf(\"specifications\") > -1) {\n // specifications level\n const specsName = fieldSetup.properties.name.replace(\"specifications.\", \"\");\n specsAllowedFields.push(specsName)\n }\n }\n });\n // now strip out any fields that aren't allowed\n Object.keys(space).forEach((propertyName: string) => {\n if (spaceLevelAllowedFields.indexOf(propertyName) === -1) {\n space[propertyName] = null;\n }\n });\n // now we have to do the same thing at the specifications level for the space\n Object.keys(space.specifications).forEach((propertyName: string) => {\n if (specsAllowedFields.indexOf(propertyName) === -1) {\n space.specifications[propertyName] = null;\n }\n });\n\n // ensure space data is setup properly\n const scrubbedSpace: any = {\n id: space.id ? space.id : null,\n miqId: space.miqId ? space.miqId : null,\n availableFrom: space.availableFrom && space.availableFrom !== '' ? prepareDate(space.availableFrom) : null,\n name: space.name ? space.name : [],\n spaceDescription: space.spaceDescription ? space.spaceDescription : [],\n spaceType: space.spaceType ? space.spaceType : \"\",\n status: space.status ? space.status : \"\",\n specifications: {\n leaseTerm: space.specifications.leaseTerm ? space.specifications.leaseTerm : \"\",\n leaseType: space.specifications.leaseType ? space.specifications.leaseType : \"\",\n measure: space.specifications.measure ? space.specifications.measure : \"\",\n minPrice: space.specifications.minPrice ? space.specifications.minPrice : null,\n maxPrice: space.specifications.maxPrice ? space.specifications.maxPrice : null,\n minSpace: space.specifications.minSpace ? space.specifications.minSpace : null,\n maxSpace: space.specifications.maxSpace ? space.specifications.maxSpace : null,\n totalSpace: space.specifications.totalSpace ? space.specifications.totalSpace : null,\n salePrice: space.specifications.salePrice ? space.specifications.salePrice : null,\n yieldPercentage: space.specifications.yieldPercentage ? space.specifications.yieldPercentage : null,\n contactBrokerForPrice: space.specifications.contactBrokerForPrice ? space.specifications.contactBrokerForPrice : null,\n currencyCode: (listing.specifications && listing.specifications.currencyCode) ? listing.specifications.currencyCode : config && config.currencyCode ? config.currencyCode : \"USD\",\n externalAvailabilityId: space.specifications.externalAvailabilityId ? String(space.specifications.externalAvailabilityId) : null,\n },\n photos: space.photos ? space.photos : [],\n floorplans: space.floorplans ? space.floorplans : [],\n brochures: space.brochures ? space.brochures : [],\n video: space.video ? space.video : \"\",\n walkThrough: space.walkThrough ? space.walkThrough : \"\",\n spaceSizes: space.spaceSizes ? space.spaceSizes : []\n }\n\n // resolve image issues\n imageArrays.map(imageArr => {\n if (scrubbedSpace[imageArr] && scrubbedSpace[imageArr].length > 0) {\n scrubbedSpace[imageArr].map((spaceFile: any) => {\n if (spaceFile.hasOwnProperty(\"errorDisplay\")) {\n delete spaceFile.errorDisplay;\n }\n if (spaceFile.hasOwnProperty(\"loadingMsg\")) {\n delete spaceFile.loadingMsg;\n }\n if (imageArr === \"brochures\" && spaceFile.hasOwnProperty(\"id\")) {\n delete spaceFile.id;\n }\n if (imageArr === \"brochures\" && spaceFile.hasOwnProperty(\"userOverride\")) {\n delete spaceFile.userOverride;\n }\n });\n }\n });\n spaces.push(scrubbedSpace);\n });\n }\n listing.spaces = spaces;\n } else {\n listing.spaces = [];\n }\n\n // user list\n if (listing.users) {\n const userList: string[] = [];\n listing.users.forEach((user: any) => {\n userList.push(user.email);\n });\n listing.userList = userList;\n }\n\n // team list\n if (listing.teams) {\n const teamList: string[] = [];\n listing.teams.forEach((team: any) => {\n teamList.push(team.name);\n });\n listing.teamList = teamList;\n }\n\n // this is a TEMPORARY solution to avoid saving issues. REMOVE this when the validations have been properly added to address this\n if (listing.photos && listing.photos.length > 0) {\n const photos: GLFile[] = [];\n listing.photos.forEach((file: GLFile) => {\n if (file && file.id && file.id > 0) {\n photos.push(file);\n }\n });\n listing.photos = photos;\n }\n\n if (listing.floorplans && listing.floorplans.length > 0) {\n const floorplans: GLFile[] = [];\n listing.floorplans.forEach((file: GLFile) => {\n if (file && file.id && file.id > 0) {\n floorplans.push(file);\n }\n });\n listing.floorplans = floorplans;\n }\n\n if (listing.spaces && listing.spaces.length > 0) {\n\n const spaces: Space[] = [];\n listing.spaces.forEach((space: Space) => {\n const spacePhotos: GLFile[] = [];\n space.photos.forEach((file: GLFile) => {\n if (file && file.id && file.id > 0) {\n spacePhotos.push(file);\n }\n });\n space.photos = spacePhotos;\n\n const spaceFloorplans: GLFile[] = [];\n space.floorplans.forEach((file: GLFile) => {\n if (file && file.id && file.id > 0) {\n spaceFloorplans.push(file);\n }\n });\n space.floorplans = spaceFloorplans;\n spaces.push(space);\n });\n listing.spaces = spaces;\n }\n\n // END TEMPORARY SOLUTION TO REMOVE\n\n // specifications : ensure that we are only passing thed data we should be based on property type/listing type\n const fieldSetups: SpecsListingTypeFields | undefined = findSpecificationFields(config, listing.propertyType, listing.listingType);\n\n if (fieldSetups) {\n const allowedFields: string[] = [\"currencyCode\", \"taxModifer\"]; // initialize with any \"hidden\" fields not a part of the config\n // now we have the field setups, but we need to go through the list and create a hash to know which properties we have available\n Object.keys(fieldSetups).forEach((fieldSetupName: string) => {\n const fieldSetup: SpecsFieldSetup = fieldSetups[fieldSetupName];\n if (fieldSetup && fieldSetup.show && fieldSetup.properties && fieldSetup.properties.hasOwnProperty(\"name\")) {\n allowedFields.push(fieldSetup.properties.name);\n }\n });\n\n // now strip out any fields that aren't allowed\n Object.keys(listing.specifications).forEach((propertyName: string) => {\n if (allowedFields.indexOf(propertyName) === -1) {\n listing.specifications[propertyName] = null;\n }\n });\n }\n\n if (!listing.externalRatings || listing.externalRatings) {\n listing.externalRatings = [];\n }\n\n // To send name only for externalPublishingState\n if (listing.externalPublishingState && listing.externalPublishingState.length > 0) {\n listing.externalPublishingState = listing.externalPublishingState.map(({ feedId, name, published, ...rest }) => ({ feedId, name, published }));\n }\n\n /*Convering the energy rating fields to an array of objects*/\n if (listing.wellRating || listing.energyRating || listing.leedRating || listing.epcRating || listing.dgnbRating || listing.nabersRating) {\n listing.externalRatings.push({ ratingType: \"WELL\", ratingLevel: listing.wellRating })\n listing.externalRatings.push({ ratingType: \"LEED\", ratingLevel: listing.leedRating })\n listing.externalRatings.push({ ratingType: \"BREEAM\", ratingLevel: listing.energyRating })\n listing.externalRatings.push({ ratingType: \"EPC\", ratingLevel: listing.epcRating })\n listing.externalRatings.push({ ratingType: \"DGNB\", ratingLevel: listing.dgnbRating });\n listing.externalRatings.push({ ratingType: \"NABERS\", ratingLevel: listing.nabersRating });\n\n delete listing.wellRating;\n delete listing.leedRating;\n delete listing.epcRating;\n delete listing.dgnbRating;\n delete listing.nabersRating;\n }\n\n // Prevent this field from being imported from MIQ in regions where it's not shown in DataEntry\n if (!(config.yearField && config.yearField.show)) {\n listing.yearBuilt = null;\n }\n\n // Prevent unexpected sizes from being imported from MIQ\n if (config.sizesandmeasurements && config.sizesandmeasurements.sizeType) {\n if (listing.propertySizes) {\n for (let i = 0; i < listing.propertySizes.length; i++) {\n if (!sizeKindIsValid(listing.propertySizes[i].sizeKind, listing.propertyType, config)) {\n listing.propertySizes.splice(i, 1);\n i--;\n }\n }\n }\n if (listing.spaces) {\n for (const space of listing.spaces) {\n if (space.spaceSizes) {\n for (let i = 0; i < space.spaceSizes.length; i++) {\n if (!sizeKindIsValid(space.spaceSizes[i].sizeKind, listing.propertyType, config)) {\n space.spaceSizes.splice(i, 1);\n i--;\n }\n }\n }\n }\n }\n }\n\n // Map Currency Value to Demographics Object\n if (listing && listing.demoGraphics && listing.demoGraphics.demoGraphicsDetails && listing.demoGraphics.demoGraphicsDetails.length > 0) {\n const demographics = listing.demoGraphics;\n const allCategories = config.demographics.categoryOptions;\n demographics.cultureCode = cultureCodeStr;\n\n for (const detail of demographics.demoGraphicsDetails) {\n const category = allCategories.find(x => x.value === detail.category);\n if (category && category.usageType) {\n detail.usageType = category.usageType;\n }\n }\n\n listing.demoGraphics = demographics;\n }\n\n // Map EnergyType Value to MajorEnergySources Object\n listing.majorEnergySources = [];\n if (listing && listing.majorEnergySource) {\n listing.majorEnergySources.push(listing.majorEnergySource);\n }\n\n return listing;\n}\n\nconst sizeKindIsValid = (sizeKind: string, propertyType: string, config: Config) => {\n if (!(config.sizesandmeasurements && config.sizesandmeasurements.sizeType)) {\n return false;\n }\n const sizeType = config.sizesandmeasurements.sizeType.find(s =>\n s.PropertyTypes.includes(propertyType));\n return sizeType && sizeType.options.find(o => o.value === sizeKind);\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State } from '../../../types/state';\n\n// constants\nexport const SET_SKIP = 'SET_SKIP';\nexport const SET_MORE_RECORDS = 'SET_MORE_RECORDS';\nexport const SET_TAKE = 'SET_TAKE';\n\n// types\nexport type SetSkipAction = ActionPayload & {\n type: typeof SET_SKIP\n};\n\nexport type SetMoreRecordsAction = ActionPayload & {\n type: typeof SET_MORE_RECORDS\n};\n\nexport type SetTakeAction = ActionPayload & {\n type: typeof SET_TAKE\n};\n\nexport const setSkip = (payload:number) : SetSkipAction => ({\n type: SET_SKIP,\n payload\n});\n\nexport const setMoreRecords = (payload:boolean) : SetMoreRecordsAction => ({\n type: SET_MORE_RECORDS,\n payload\n});\n\nexport const setTake = (payload:number) : SetTakeAction => ({\n type: SET_TAKE,\n payload\n});\n\nexport const checkTake = (newTake:number) => (dispatch: Function, getState: () => State) => {\n // check the current take\n const currentTake = getState().pagedListings.take;\n if(newTake !== currentTake){\n dispatch(setTake(newTake));\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { MainMessaging, State, MainMessageType } from '../../../types/state';\n\n// constants\nexport const SET_MAIN_MESSAGE = 'SET_MAIN_MESSAGE';\n\n// types\nexport type SetMainMessageAction = ActionPayload & {\n type: typeof SET_MAIN_MESSAGE\n};\n\nexport const setMainMessage = (payload:MainMessaging) : SetMainMessageAction => ({\n type: SET_MAIN_MESSAGE,\n payload\n});\n\nexport const clearMessage = (dispatch:Function) => {\n const message:MainMessaging = {\n show: false,\n type: MainMessageType.NONE,\n message: \"\"\n }\n dispatch(setMainMessage(message));\n}","export interface Filter {\n type: string,\n value: string\n}\n\nexport enum FilterType {\n KEYWORD = \"Keyword\", /* search */\n PROPERTY_TYPE = \"PropertyType\", /* values vary per site, front end will pass in based on config to match db value */\n PUBLISHING_STATUS = \"PublishingStatus\", /* draft / published /pending /deleted (UI will allow only one) */\n BULK_UPLOAD = \"BulkUploadOnly\",\n DELETED = \"Deleted\",\n MIQ = \"MiqOnly\"\n}\n\nexport interface FilterSetup {\n uid?: string,\n label?: string,\n selected?: boolean,\n value?: string,\n allowMultiple?: boolean,\n category?: string,\n clearAll?: boolean,\n filter?: Filter\n divider?: boolean\n}","import { FilterSetup, Filter, FilterType } from '../types/listing/filters';\n\n// utility function to extract the raw filters from the UI filter setup selections (and piggyback on the search)\nexport const extractFilters = (setups:FilterSetup[], search:string):Filter[] => {\n const filters:Filter[] = [];\n\n // we treat the search value like a filter and create a filter object to send to the backend\n if(search && search.trim().length > 0){\n filters.push({\n type: FilterType.KEYWORD.valueOf(),\n value: search\n })\n }\n\n // go through the other filter setups, include the filter data if selected and there is a filter attached to the setup data (i.e., for \"View All\" there won't be)\n if(setups){\n setups.forEach((setup:FilterSetup) => {\n if(setup.selected && setup.filter){\n filters.push(setup.filter);\n } \n });\n }\n\n return filters;\n}","import { ActionPayload } from '../../../types/common/action';\nimport { FilterSetup, Filter } from '../../../types/listing/filters';\nimport { State } from '../../../types/state';\nimport { resetPagedListings, getListingsPaged } from './load-listings-paged';\nimport { extractFilters } from '../../../utils/extract-filters';\n\n// constants\nexport const CHANGE_FILTERS = 'CHANGE_FILTERS';\nexport const SETUP_FILTERS = 'SETUP_FILTERS';\n\n// types\nexport type ChangeFiltersAction = ActionPayload & {\n type: typeof CHANGE_FILTERS\n};\n\nexport type SetupFiltersAction = ActionPayload & {\n type: typeof SETUP_FILTERS\n};\n\nexport const changeFilters = (payload:FilterSetup[]) : ChangeFiltersAction => ({\n type: CHANGE_FILTERS,\n payload\n});\n\nexport const setupFilters = (payload:FilterSetup[]) : SetupFiltersAction => ({\n type: SETUP_FILTERS,\n payload\n});\n\nexport const filtersChanged = (filterSetups:FilterSetup[]) => (dispatch: Function, getState: () => State) => {\n // (1) We need to clear out the current set of listings using the clear function - this will also reset the skip to 0\n resetPagedListings(dispatch, false);\n // (2) ensure we've changed the current filters in redux for next time (and to affect the dropdown menu)\n dispatch(changeFilters(filterSetups));\n // (3) Pull the new set of paged listings (pull in any search text to create that filter)\n const searchText = getState().pagedListings.searchText;\n const backendFilters:Filter[] = extractFilters(filterSetups, searchText);\n dispatch(getListingsPaged(0, getState().pagedListings.take, backendFilters)); \n}","import { ActionPayload } from '../../../types/common/action';\nimport { State, MainMessageType } from '../../../types/state';\nimport { Listing } from '../../../types/listing/listing';\nimport { postData } from '../../../api/glAxios';\nimport { pullListingsPaged } from '../../../api/glQueries';\nimport { setSkip, setMoreRecords } from './set-paging-params';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { Filter } from '../../../types/listing/filters';\nimport { authContext } from '../../../adalConfig';\nimport { TeamMember } from '../../../types/team/teamMember';\nimport { changeFilters } from '../../../redux/actions/pagedListings/change-filters';\n\n// constants\nexport const LISTINGS_LOADED_PAGED = 'LISTINGS_LOADED_PAGED';\nexport const ASSIGNED_LISTINGS_LOADED_PAGED = 'ASSIGNED_LISTINGS_LOADED_PAGED';\n\n// types\nexport type ListingsLoadedPagedAction = ActionPayload & {\n type: typeof LISTINGS_LOADED_PAGED\n};\n\nexport const listingsLoadedPaged = (payload:Listing[]) : ListingsLoadedPagedAction => ({\n type: LISTINGS_LOADED_PAGED,\n payload\n});\n\nexport type AssignedListingsLoadedPagedAction = ActionPayload & {\n type: typeof ASSIGNED_LISTINGS_LOADED_PAGED\n};\n\nexport const assignedlistingsLoadedPaged = (payload:Listing[]) : AssignedListingsLoadedPagedAction => ({\n type: ASSIGNED_LISTINGS_LOADED_PAGED,\n payload\n});\n\nexport const getListingsPaged = (skip:number, take:number, filters:Filter[]) => (dispatch: Function, getState: () => State) => { \n\n const currentNormalListings:Listing[] = getState().pagedListings.listings;\n const currentAssignedListings:Listing[] = getState().pagedListings.assignedListings;\n const currentSkip:number = getState().pagedListings.skip;\n\n if(skip === 0){\n dispatch(setMainMessage({show: true, type: MainMessageType.LOADING, message: \"Loading...\"}));\n } \n\n const siteId = (typeof getState().mapping.selectedCountry === 'string') ? getState().mapping.selectedCountry : \"00000000-0000-0000-0000-000000000001\";\n \n\n postData(pullListingsPaged(skip,take,filters, siteId))\n .then((response: any) => {\n dispatch(clearMessage);\n if (typeof response.data === 'undefined'){\n dispatch(setMainMessage({show: true, type: MainMessageType.ERROR, message: \"There was an error loading your listings.\"}));\n }else if(response.data.listings && response.data.listings.length === 0){\n\n // we need to know why its 0: no listings at all, no listings given this search/filter combo, or just at the end of the recordset\n if(getState().pagedListings.listings && getState().pagedListings.listings.length === 0){\n\n if(skip === 0 && (!filters || filters === null || filters.length === 0)){\n // no filters applied, we have no listings, and the skip is 0 - so we don't have any listings\n dispatch(setMainMessage({show: true, type:MainMessageType.NOTICE, message: \"There are no existing listings.\",messageLine2: \"Go ahead and create one.\"}));\n }else if(filters && filters !== null && filters.length > 0){\n // otherwise, we assume a search/filter is causing the listing return to be 0, and since we know we dont have listings we can safely make that assumption\n dispatch(setMainMessage({show: true, type:MainMessageType.NOTICE, message: \"There are no listings using the current search/filters.\",messageLine2: \"Please change or clear you search/filters.\"}))\n } \n }\n dispatch(setMoreRecords(false));\n }else{\n const loadedListings:Listing[] = response.data.listings;\n // figure out which \"buckets\" the listings should fall in\n const loadedNormal:Listing[] = [];\n const loadedAssigned:Listing[] = [];\n if(loadedListings){\n loadedListings.forEach((listing:Listing) => {\n // to fall in the \"assigned\" bucket:\n // (1) the assignment flag needs to be true (isAssigned)\n // (2) the logged in user cannot be the assigner\n // (3) the logged in user must be an actual team member, indicating assignment (otherwise admin gets all assignments)\n if(isAssigned(listing) && !isAssigner(listing) && isTeamMember(listing)){\n loadedAssigned.push(listing);\n }else{\n loadedNormal.push(listing);\n }\n }); \n }\n dispatch(listingsLoadedPaged([...currentNormalListings, ...loadedNormal]));\n dispatch(assignedlistingsLoadedPaged([...currentAssignedListings, ...loadedAssigned]))\n dispatch(setSkip(currentSkip + loadedListings.length));\n if(loadedListings.length < take){ // if the loaded listing length is less than the take, we are out of records\n dispatch(setMoreRecords(false));\n }\n }\n });\n};\n\nexport const resetPagedListings = (dispatch: Function, reload: boolean) => {\n dispatch(setSkip(0));\n dispatch(setMoreRecords(true));\n dispatch(listingsLoadedPaged([]));\n dispatch(assignedlistingsLoadedPaged([]));\n\n if(reload){\n dispatch(changeFilters([]));\n dispatch(reloadListingsPaged);\n }\n}\n\n// this function will reload the listings based on the current skip, take, and filters\nexport const reloadListingsPaged = (dispatch: Function, getState: () => State) => {\n \n const skip:number = getState().pagedListings.skip;\n const take:number = getState().pagedListings.take;\n const filters:Filter[] = getState().pagedListings.filters;\n \n dispatch(getListingsPaged(skip,take,filters));\n} \n\n// helper functions to help divide into buckets\nconst isAssigned = (listing:Listing):boolean => {\n if(listing && listing.listingAssignment && listing.listingAssignment.assignmentFlag){\n return true;\n }\n return false;\n}\n\nconst isAssigner = (listing:Listing):boolean => {\n const user:any = authContext.getCachedUser();\n const email:string = user && user.userName ? user.userName.toLowerCase() : \"\";\n if(listing && listing.listingAssignment && listing.listingAssignment.assignedBy \n && (email.length === 0 || email === listing.listingAssignment.assignedBy.toLowerCase())){\n return true;\n }\n return false;\n}\n\nconst isTeamMember = (listing:Listing):boolean => {\n if(listing.users){\n const user:any = authContext.getCachedUser();\n const email:string = user && user.userName ? user.userName.toLowerCase() : \"\";\n const members:TeamMember[] = listing.users.filter(userObj => userObj.id && userObj.id.toLowerCase() === email);\n if(members.length > 0){\n return true;\n }\n }\n return false;\n}","import {combineReducers} from 'redux';\nimport listingsReducer from './listings-reducer';\nimport assignedListingsReducer from './assigned-listings-reducer';\nimport skipReducer from './skip-reducer';\nimport takeReducer from './take-reducer';\nimport moreRecordsReducer from './more-records-reducer';\nimport searchTextReducer from './search-text-reducer';\nimport filtersReducer from './filters-reducer';\n\nexport default combineReducers({\n listings: listingsReducer,\n assignedListings: assignedListingsReducer,\n skip: skipReducer,\n take: takeReducer,\n moreRecords: moreRecordsReducer,\n searchText: searchTextReducer,\n filters: filtersReducer\n});","import {listingsLoadedPaged, LISTINGS_LOADED_PAGED} from '../../actions/pagedListings/load-listings-paged';\nimport { ActionType } from 'typesafe-actions';\n\nexport type ListingsLoadedPagedAction = ActionType;\n\nexport default(state = {}, action: ListingsLoadedPagedAction) => {\n switch(action.type){\n case LISTINGS_LOADED_PAGED:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import {assignedlistingsLoadedPaged, ASSIGNED_LISTINGS_LOADED_PAGED} from '../../actions/pagedListings/load-listings-paged';\nimport { ActionType } from 'typesafe-actions';\n\nexport type AssignedListingsLoadedAction = ActionType;\n\nexport default(state = {}, action: AssignedListingsLoadedAction) => {\n switch(action.type){\n case ASSIGNED_LISTINGS_LOADED_PAGED:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { setSkip, SET_SKIP} from '../../actions/pagedListings/set-paging-params';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetSkipAction = ActionType;\n\nexport default(state = {}, action: SetSkipAction) => {\n switch(action.type){\n case SET_SKIP:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setTake, SET_TAKE} from '../../actions/pagedListings/set-paging-params';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetTakeAction = ActionType;\n\nexport default(state = {}, action: SetTakeAction) => {\n switch(action.type){\n case SET_TAKE:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import {setMoreRecords, SET_MORE_RECORDS} from '../../actions/pagedListings/set-paging-params';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMoreRecordsAction = ActionType;\n\nexport default(state = {}, action: SetMoreRecordsAction) => {\n switch(action.type){\n case SET_MORE_RECORDS:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import {changeSearch,UPDATE_SEARCH} from '../../actions/pagedListings/update-search-text'\nimport { ActionType } from 'typesafe-actions';\n\nexport type UpdateSearchAction = ActionType;\n\nexport default(state = {}, action: UpdateSearchAction) => {\n switch(action.type){\n case UPDATE_SEARCH:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State } from '../../../types/state';\nimport { resetPagedListings, getListingsPaged } from './load-listings-paged';\nimport { extractFilters } from '../../../utils/extract-filters';\nimport { FilterSetup, Filter } from '../../../types/listing/filters';\n\n// constants\nexport const UPDATE_SEARCH = 'UPDATE_SEARCH';\n\n// types\nexport type UpdateSearchAction = ActionPayload & {\n type: typeof UPDATE_SEARCH\n};\n\nexport const changeSearch = (payload:string) : UpdateSearchAction => ({\n type: UPDATE_SEARCH,\n payload\n});\n\nexport const searchChanged = (searchText:string) => (dispatch: Function, getState: () => State) => { \n // if filters are changed, we need to perform a few actions:\n // (1) ensure that the search text has actually changed\n const currentSearchText:string = getState().pagedListings.searchText;\n if(searchText.trim() !== currentSearchText.trim()){\n // if yes, then (1) reset the current paged listings (this will clear out the skip too)\n resetPagedListings(dispatch, false);\n // ensure we change the search text in redux for next time\n dispatch(changeSearch(searchText));\n // grab our current filters, and then pull a new set of listings\n const filterSetups:FilterSetup[] = getState().pagedListings.filters;\n const backendFilters:Filter[] = extractFilters(filterSetups, searchText);\n dispatch(getListingsPaged(0, getState().pagedListings.take, backendFilters));\n } \n}","import {CHANGE_FILTERS, SETUP_FILTERS} from '../../actions/pagedListings/change-filters';\n\nexport default(state = {}, action: any) => {\n switch(action.type){\n case CHANGE_FILTERS:\n return [...action.payload];\n break;\n\n case SETUP_FILTERS:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { Listing } from '../../types/listing/listing';\n\nconst defaultListing:Listing = {\n \"id\": \"\",\n \"externalId\" : \"\",\n \"miqId\" : \"\",\n \"isDeleted\": false,\n \"propertyId\": \"\",\n \"pending\": false,\n \"state\": \"\",\n \"published\": false,\n \"exclusivity\": \"\",\n \"authority\": \"\",\n \"editable\": true,\n \"propertyName\": \"\",\n \"propertyType\": \"\",\n \"propertyTypes\": [],\n \"propertyRecordName\": \"\",\n \"propertySubType\": \"\",\n \"propertyUseClass\": \"\",\n \"listingType\": \"\",\n \"officeId\":null,\n \"displayAddress\": null,\n \"street\": \"\",\n \"street2\": \"\",\n \"city\": \"\",\n \"stateOrProvince\": \"\",\n \"country\": \"\",\n \"postalCode\": \"\",\n \"energyRating\": \"\",\n \"salesOpportunity\": \"\",\n \"buildingDescriptionSingle\": \"\",\n \"buildingDescription\": [],\n \"tenancy\": null,\n \"alternatePostalAddresses\": [],\n \"locationDescription\": [],\n \"locationDescriptionSingle\": \"\",\n \"investmentDescription\": [],\n \"investmentDescriptionSingle\": \"\",\n \"status\": \"\",\n \"availableFrom\": null,\n \"syndicationFlag\": false,\n \"syndicationMarket\": \"\",\n \"website\": \"\",\n \"externalPropertyId\": \"\",\n \"externalPlatformId\": null,\n \"operator\": \"\",\n \"headlineSingle\": \"\",\n \"headline\": [],\n \"parkings\": {\n \"ratio\": 0,\n \"ratioPer\": 0,\n \"ratioPerUnit\": \"\",\n \"parkingDetails\": []\n },\n \"demoGraphics\": {\n \"uom\": \"\",\n \"interval1\": 1,\n \"interval2\": 3,\n \"interval3\": 5,\n \"cultureCode\": \"en-US\", // \"en-US\" or \"de-DE\n \"demoGraphicsDetails\": []\n },\n \"auction\":{\n \"eventDate\": null,\n \"eventTime\": null,\n \"eventPlace\": null,\n \"eventTimeHrs\": null,\n \"eventTimeMinutes\": null\n },\n \"pointsOfInterests\": [],\n \"transportationTypes\": [],\n \"video\": \"\",\n \"walkThrough\": \"\",\n \"importedData\": \"\",\n \"aspects\": [],\n \"lng\": 0,\n \"lat\": 0,\n \"photos\": [],\n \"floorplans\": [],\n \"brochures\": [],\n \"brochureURL\": \"\",\n \"highlights\": [],\n \"epcGraphs\": null,\n \"teams\": [],\n \"externalPublishingState\": [],\n \"floors\": null,\n \"portfolio\": null,\n \"yearBuilt\": null,\n \"zoning\": null,\n \"specifications\": {\n \"leaseType\": \"\",\n \"leaseRateType\": \"\",\n \"measure\": \"\",\n \"leaseTerm\": \"\",\n \"minSpace\": 0,\n \"maxSpace\": 0,\n \"totalSpace\": 0,\n \"minPrice\": 0,\n \"maxPrice\": 0,\n \"salePrice\": 0,\n \"contactBrokerForPrice\": false,\n \"showPriceWithUoM\": false,\n \"plusSalesTax\": false,\n \"includingSalesTax\": false,\n \"currencyCode\": \"USD\",\n \"yieldPercentage\": 0\n },\n \"chargesAndModifiers\": [],\n \"propertySizes\": [],\n \"microMarkets\" : [],\n \"microMarket\": \"\",\n \"spaces\": [],\n \"spacesCount\": 0,\n \"contacts\": [],\n \"externalPublishUrl\": \"\",\n \"triggers\": {\n addressChange: 0\n },\n \"previewSearchApiEndPoint\": \"\",\n \"datasource\" : {\n datasources: [],\n other: \"\"\n },\n \"externalPreviewUrl\": \"\", \n \"listingAssignment\" : {\n assignedBy: \"\",\n assignmentFlag: false,\n assignedDate: new Date()\n },\n \"majorEnergySource\": \"\",\n \"majorEnergySources\": [],\n \"dateCreated\": new Date(),\n \"dateUpdated\": new Date(),\n \"datePublished\": new Date(),\n \"dateListed\": new Date()\n}\n\nexport default defaultListing;","import { ActionPayload } from '../../../types/common/action';\nimport { State } from '../../../types/state';\nimport { Contact } from '../../../types/listing/contact';\nimport { postData } from '../../../api/glAxios';\nimport { getAllContacts } from '../../../api/glQueries';\n\n// constants\nexport const ALL_CONTACTS_LOADED = 'ALL_CONTACTS_LOADED';\n\n// types\nexport type AllContactsLoadedAction = ActionPayload & {\n type: typeof ALL_CONTACTS_LOADED\n};\n\nexport const allContactsLoaded = (payload: Contact[]): AllContactsLoadedAction => ({\n type: ALL_CONTACTS_LOADED,\n payload\n});\n\nexport const refreshAllContacts = () => (dispatch: Function, getState: () => State) => {\n const region = getState().mapping.selectedCountry;\n postData(getAllContacts(region))\n .then((response: any) => {\n if(response.data && response.data.contacts){\n dispatch(allContactsLoaded(response.data.contacts));\n }\n });\n}","import { ActionPayload } from '../../../types/common/action';\nimport { NavBarState, State, PreviewStatusMessage } from '../../../types/state';\nimport { Listing } from '../../../types/listing/listing';\nimport moment from 'moment';\n\n// constants\nexport const UPDATE_LISTING_DIRTY = 'UPDATE_LISTING_DIRTY';\nexport const UPDATE_PREVIEW_STATUS = 'UPDATE_PREVIEW_STATUS';\nexport const UPDATE_PREVIEW_STATUS_TIMER_ID = 'UPDATE_PREVIEW_STATUS_TIMER_ID';\n\n// types\nexport type UpdateListingDirtyAction = ActionPayload & {\n type: typeof UPDATE_LISTING_DIRTY;\n};\n\nexport type UpdatePreviewStatusAction = ActionPayload & {\n type: typeof UPDATE_PREVIEW_STATUS\n};\n\nexport type UpdatePreviewStatusTimerIdAction = ActionPayload & {\n type: typeof UPDATE_PREVIEW_STATUS_TIMER_ID\n};\n\nexport const updateListingDirty = (payload:boolean): UpdateListingDirtyAction => ({\n type: UPDATE_LISTING_DIRTY,\n payload\n});\n\nexport const updatePreviewStatus = (payload: PreviewStatusMessage): UpdatePreviewStatusAction => ({\n type: UPDATE_PREVIEW_STATUS,\n payload\n});\n\nexport const updatePreviewStatusTimerId = (payload: number): UpdatePreviewStatusTimerIdAction => ({\n type: UPDATE_PREVIEW_STATUS_TIMER_ID,\n payload\n});\n\n// important note: if calling this externally (outside of the preview loop), grab the timerId from the store.\nexport const stopPreviewPing = (dispatch:Function, timerId:number) => {\n if(timerId > 0){\n clearInterval(timerId);\n dispatch(updatePreviewStatusTimerId(0));\n }\n}\n\nconst checkForPreview = (url: string): Promise => {\n return new Promise((resolve, reject) => {\n \n fetch(url, {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"text/plain\"\n }\n }).then(response => {\n const responseJSON = response.json();\n resolve(responseJSON);\n }).catch((error) => {\n reject(error.message);\n });\n\n\n });\n}\n\nexport const setDirtyListing = (dirty: boolean) => (dispatch: Function, getState: () => State) => {\n if(dirty === true){\n // if dirty, we can stop asking for a preview to save pings\n stopPreviewPing(dispatch,getState().entry.navbar.previewStatusTimerId);\n }\n dispatch(updateListingDirty(dirty));\n}\n\nexport const checkPreviewStatus = (dispatch:Function, store:State, savedListing:Listing) => {\n\n if(store && store.featureFlags.previewFeatureFlag === false){\n return;\n }\n\n const navbarState:NavBarState = store.entry.navbar;\n\n // if we have an existing timer id, clear it out before we create a new one\n stopPreviewPing(dispatch, navbarState.previewStatusTimerId);\n\n // don't start the timer in the following circumstances:\n // (1) state is publishing or unpublishing\n\n if (savedListing.state && (savedListing.state.toLowerCase() === \"publishing\" || savedListing.state.toLowerCase() === \"unpublishing\")) {\n return;\n }\n\n if(!savedListing.id){\n // if we don't have a listing id, it's new\n dispatch(updatePreviewStatus(PreviewStatusMessage.SAVE_TO_GENERATE));\n return;\n }\n\n const checkForPreviewInterval = () => {\n\n if (savedListing.previewSearchApiEndPoint) {\n checkForPreview(savedListing.previewSearchApiEndPoint).then((response: any) => {\n \n let lastUpdated;\n let storeApiDate;\n\n if(response.Found){\n lastUpdated = response.Documents[0][0][\"Common.LastProcessed\"];\n storeApiDate = new Date(lastUpdated);\n }\n \n // outdated preview upon publish fix\n // preview save time within last 3 seconds of save time would be current preview\n if (response.Found && storeApiDate && savedListing.dateUpdated && (storeApiDate < (moment(savedListing.dateUpdated).subtract(3, 'seconds').toDate()))) {\n dispatch(updatePreviewStatus(PreviewStatusMessage.OUTDATED));\n } else if (response.Found) {\n dispatch(updatePreviewStatus(PreviewStatusMessage.AVAILABLE));\n stopPreviewPing(dispatch, timerId);\n } else {\n dispatch(updatePreviewStatus(PreviewStatusMessage.UNAVAILABLE));\n }\n })\n .catch((ex) => {\n console.log(ex);\n dispatch(updatePreviewStatus(PreviewStatusMessage.FAILED));\n });\n }\n }\n\n dispatch(updatePreviewStatus(PreviewStatusMessage.LOADING)); // default state before we start timer\n\n checkForPreviewInterval();\n // we need to keep pinging the preview status until we get a response\n const timerId:number = setInterval(() => {\n checkForPreviewInterval();\n }, 30000); // 30 seconds\n dispatch(updatePreviewStatusTimerId(timerId)); // record the timer id in redux \n};","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const UPDATE_SAVE_PENDING = 'UPDATE_SAVE_PENDING';\n\n// types\nexport type UpdatingSavePendingAction = ActionPayload & {\n type: typeof UPDATE_SAVE_PENDING;\n};\n\nexport const updateSavePending = (payload: boolean): UpdatingSavePendingAction => ({\n type: UPDATE_SAVE_PENDING,\n payload\n}); ","import { ActionPayload } from '../../../types/common/action';\nimport { ListingSuffix } from '../../../types/state';\n\n// constants\nexport const SET_LISTING_SUFFIX = 'SET_LISTING_SUFFIX';\n\n// types\nexport type SetListingSuffixAction = ActionPayload & {\n type: typeof SET_LISTING_SUFFIX\n};\n\nexport const setListingSuffix = (payload:ListingSuffix) : SetListingSuffixAction => ({\n type: SET_LISTING_SUFFIX,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { AlertMessaging } from '../../../types/state';\n\n// constants\nexport const SET_ALERT_MESSAGE = 'SET_ALERT_MESSAGE';\n\n// types\nexport type SetAlertMessageAction = ActionPayload & {\n type: typeof SET_ALERT_MESSAGE\n};\n\nexport const setAlertMessage = (payload:AlertMessaging) : SetAlertMessageAction => ({\n type: SET_ALERT_MESSAGE,\n payload\n});\n\nexport const clearAlertMessage = (dispatch:Function) => {\n const message:AlertMessaging = {\n show: false,\n message: \"\"\n }\n dispatch(setAlertMessage(message));\n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const RELOAD_LISTING_ID = 'RELOAD_LISTING_ID';\n\n// types\nexport type SetReloadListingIdAction = ActionPayload & {\n type: typeof RELOAD_LISTING_ID\n};\n\nexport const setReloadListingId = (payload:number) : SetReloadListingIdAction => ({\n type: RELOAD_LISTING_ID,\n payload\n});","import { Listing } from '../../../types/listing/listing';\nimport { postData } from '../../../api/glAxios';\nimport { publish } from '../../../api/glQueries';\nimport { push } from 'connected-react-router';\nimport { clearMessage } from '../system/set-main-message';\nimport { setAlertMessage } from '../../../redux/actions/system/set-alert-message';\nimport { AlertMessagingType } from '../../../types/state';\nimport { currentListingLoaded} from '../../../redux/actions/listingEntry/load-current-listing';\nimport { updateSavePending } from './update-pending-operation';\nimport { resetPagedListings } from '../pagedListings/load-listings-paged';\nimport { setReloadListingId } from '../system/set-reload-listing-id';\n\nconst publishData = (id: any) => {\n const query = publish(id);\n const data = postData(query);\n return data;\n}\n\nexport const publishListing = (listing:Listing) => (dispatch: Function) => {\n\n publishData(listing.id).then((result:any) => {\n if (result.data && result.data.publishListing){\n clearMessage(dispatch);\n dispatch(setAlertMessage({show: true, message: \"Listing Successfully Submitted for Publishing\", type: AlertMessagingType.SUCCESS, allowClose: true}));\n // reset paging and reload \n resetPagedListings(dispatch, true);\n dispatch(push('/'));\n dispatch(updateSavePending(false));\n } \n else {\n // error state\n clearMessage(dispatch);\n dispatch(setAlertMessage({show: true, message: \"There was an Error while publishing this listing.\", type: AlertMessagingType.ERROR, allowClose: true}));\n dispatch(setReloadListingId(listing.id));\n dispatch(currentListingLoaded(listing)); \n dispatch(updateSavePending(false));\n }\n });\n}","import { ActionPayload } from '../../../types/common/action';\nimport { ConfirmDialogParams } from '../../../types/state';\n\n// constants\nexport const SET_CONFIRM_DIALOG = 'SET_CONFIRM_DIALOG';\n\n// types\nexport type SetConfirmDialogAction = ActionPayload & {\n type: typeof SET_CONFIRM_DIALOG\n};\n\nexport const setConfirmDialog = (payload:ConfirmDialogParams) : SetConfirmDialogAction => ({\n type: SET_CONFIRM_DIALOG,\n payload\n});\n\nexport const clearConfirmDialog = (dispatch:Function) => {\n const dialogSetting:ConfirmDialogParams = {\n show: false,\n title: undefined,\n message: undefined,\n cancelTxt: undefined,\n confirmTxt : undefined,\n cancelFunc: undefined,\n confirmFunc: undefined,\n showConfirmButton: undefined,\n showCopyButton: undefined\n }\n dispatch(setConfirmDialog(dialogSetting));\n}","import { Listing } from '../../../types/listing/listing';\r\nimport { setConfirmDialog } from '../system/set-confirm-dialog';\r\nimport cloneDeep from 'clone-deep';\r\nimport { Highlight } from '../../../types/listing/highlight';\r\nimport { Space } from '../../../types/listing/space';\r\nimport { Contact } from '../../../types/listing/contact';\r\nimport { Config } from '../../../types/config/config';\r\n\r\nexport const exportListing = (listing: Listing, config: Config) => (dispatch: Function) => {\r\n const filteredListing: Listing = filterListingData(listing, config);\r\n const formattedListing: string = formatListing(filteredListing);\r\n dispatch(\r\n setConfirmDialog(\r\n {\r\n show: true,\r\n title: \"Exported Listing\",\r\n message: formattedListing,\r\n cancelTxt: \"Close\",\r\n showConfirmButton: false,\r\n showCopyButton: true\r\n }));\r\n}\r\n\r\nfunction filterListingData(listing:Listing, config:Config):Listing {\r\n const filteredListing: any = cloneDeep(listing);\r\n\r\n delete filteredListing.aspects;\r\n delete filteredListing.brochures;\r\n delete filteredListing.bulkUploadFileName;\r\n delete filteredListing.chargesAndModifiers;\r\n delete filteredListing.datasource;\r\n delete filteredListing.dataSource;\r\n delete filteredListing.dateCreated;\r\n delete filteredListing.dateUpdated;\r\n delete filteredListing.externalPreviewUrl;\r\n delete filteredListing.externalPublishUrl;\r\n delete filteredListing.floorplans;\r\n delete filteredListing.floors;\r\n delete filteredListing.yearBuilt;\r\n delete filteredListing.id;\r\n delete filteredListing.isBulkUpload;\r\n delete filteredListing.isDeleted;\r\n delete filteredListing.microMarkets;\r\n delete filteredListing.operator;\r\n delete filteredListing.owner;\r\n delete filteredListing.photos;\r\n delete filteredListing.previewSearchApiEndPoint;\r\n delete filteredListing.propertyRecordName;\r\n delete filteredListing.propertySubType;\r\n delete filteredListing.published;\r\n delete filteredListing.spacesCount;\r\n delete filteredListing.state;\r\n delete filteredListing.teamList;\r\n delete filteredListing.teams;\r\n delete filteredListing.userList;\r\n delete filteredListing.users;\r\n delete filteredListing.epcGraphs;\r\n\r\n if (filteredListing.contacts) {\r\n filteredListing.contacts.forEach((v: Contact) => {\r\n delete v.contactId;\r\n delete v.avatar;\r\n\r\n // Remove empty license number\r\n if (v.additionalFields && v.additionalFields.license && v.additionalFields.license === \"0\") {\r\n delete v.additionalFields.license;\r\n }\r\n });\r\n }\r\n\r\n // Remove sort order from highlights\r\n filteredListing.highlights = filteredListing.highlights.map((v: Highlight) => v.value);\r\n\r\n if (filteredListing.spaces) {\r\n filteredListing.spaces.forEach((v: Space) => {\r\n delete v.brochures;\r\n delete v.floorplans;\r\n delete v.id;\r\n delete v.photos;\r\n\r\n if (v.specifications !== null) {\r\n delete v.specifications.bedrooms;\r\n delete v.specifications.contactBrokerForPrice;\r\n delete v.specifications.currencyCode;\r\n delete v.specifications.taxModifer;\r\n }\r\n });\r\n }\r\n\r\n if (filteredListing.specifications !== null) {\r\n delete filteredListing.specifications.bedrooms;\r\n delete filteredListing.specifications.contactBrokerForPrice;\r\n delete filteredListing.specifications.currencyCode;\r\n delete filteredListing.specifications.taxModifer;\r\n }\r\n\r\n return filteredListing;\r\n}\r\n\r\nfunction formatListing(obj:object): string {\r\n let result: string = \"\";\r\n if (obj === null || obj === undefined) {\r\n return result;\r\n }\r\n if (Array.isArray(obj)) {\r\n const innerResult: string[] = [];\r\n let isComplex: boolean = false;\r\n (obj as object[]).forEach(value => {\r\n const formattedValue = formatListing(value);\r\n if (formattedValue.indexOf(\"\\n\") !== -1) {\r\n isComplex = true;\r\n }\r\n innerResult.push(formatListing(value));\r\n });\r\n result = innerResult.join(isComplex ? \"\\n\\n\" : \"\\n\");\r\n }\r\n else if (typeof obj === \"object\") {\r\n const lines: string[] = [];\r\n for (const prop in obj) {\r\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n continue;\r\n }\r\n const value = obj[prop];\r\n const innerResult = formatListing(value).replace(/\\n/g, \"\\n\\t\");\r\n if (innerResult.length > 0) {\r\n lines.push(`${prop}:${innerResult.indexOf(\"\\n\") !== -1 ? \"\\n\\t\" : \" \"}${innerResult}`);\r\n }\r\n }\r\n result = lines.join(\"\\n\");\r\n }\r\n else {\r\n result = (obj as object).toString();\r\n }\r\n return result;\r\n}","import { ActionPayload } from '../../../types/common/action';\nimport { Listing } from '../../../types/listing/listing';\n\n// constants\nexport const SET_MIQ_CURRENT_RECORDS_RESULT = 'SET_MIQ_CURRENT_RECORDS_RESULT';\n\n// types\nexport type SetMiqCurrentRecordsResultAction = ActionPayload & {\n type: typeof SET_MIQ_CURRENT_RECORDS_RESULT\n};\n\nexport const setMiqCurrentRecordsResult = (payload:Listing[]) : SetMiqCurrentRecordsResultAction => ({\n type: SET_MIQ_CURRENT_RECORDS_RESULT,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { MIQStatus } from '../../../types/miq/miqStatus';\n\n// constants\nexport const SET_MIQ_STATUS = 'SET_MIQ_STATUS';\n\n// types\nexport type SetMIQStatusAction = ActionPayload & {\n type: typeof SET_MIQ_STATUS\n};\n\nexport const setMIQStatus = (payload:MIQStatus) : SetMIQStatusAction => ({\n type: SET_MIQ_STATUS,\n payload\n});","export enum MIQResultType {\n SUCCESS,\n ERROR\n}\n\nexport interface MIQExportMessage {\n show: boolean,\n type?: MIQResultType,\n header?: string,\n body?: any\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State } from '../../../types/state';\nimport { MIQExportMessage, MIQResultType } from '../../../types/miq/miqExportMessaging';\n\n// constants\nexport const SET_MIQ_EXPORT_MESSAGE = 'SET_MIQ_EXPORTSET_MIQ_EXPORT_MESSAGE_RESULT';\n\n// types\nexport type SetMiqExportMessageAction = ActionPayload & {\n type: typeof SET_MIQ_EXPORT_MESSAGE\n};\n\nexport const setMIQExportMessage = (payload:MIQExportMessage) : SetMiqExportMessageAction => ({\n type: SET_MIQ_EXPORT_MESSAGE,\n payload\n});\n\nexport const showMIQExportSuccess = (header: string, body: string) => (dispatch: Function, getState: () => State) => {\n const exportMessage:MIQExportMessage = {\n \"show\": true,\n \"header\": header,\n \"body\": body,\n \"type\": MIQResultType.SUCCESS\n }\n dispatch(setMIQExportMessage(exportMessage));\n}\n\nexport const showMIQExportError = (header: string, body: string) => (dispatch: Function, getState: () => State) => {\n const exportMessage:MIQExportMessage = {\n \"show\": true,\n \"header\": header,\n \"body\": body,\n \"type\": MIQResultType.ERROR\n }\n dispatch(setMIQExportMessage(exportMessage));\n}\n\nexport const clearMIQExportMessage = () => (dispatch: Function, getState: () => State) => {\n const exportMessage:MIQExportMessage = { show: false };\n dispatch(setMIQExportMessage(exportMessage));\n}","import { ActionPayload } from '../../../types/common/action';\nimport { AutoCompleteResult } from '../../../types/common/auto-complete';\nimport { importEDPProperties } from '../../../api/glQueries';\nimport { postData } from '../../../api/glAxios';\nimport { setMiqCurrentRecordsResult } from './set-miq-current-records-result';\nimport { State } from '../../../types/state';\nimport { Listing,AlternatePostalAddresses } from '../../../types/listing/listing';\nimport { Config } from '../../../types/config/config';\nimport { Space } from '../../../types/listing/space';\nimport { setMIQStatus } from './set-miq-status';\nimport { showMIQExportError } from './set-miq-export-message';\nimport { useEffect } from 'react';\n\n// constants\nexport const SET_MIQ_SEARCH_RESULT = 'SET_MIQ_SEARCH_RESULT';\n\n// types\nexport type SetMIQSearchResultAction = ActionPayload & {\n type: typeof SET_MIQ_SEARCH_RESULT\n};\n\nexport const setMIQSearchResult = (payload:AutoCompleteResult | undefined) : SetMIQSearchResultAction => ({\n type: SET_MIQ_SEARCH_RESULT,\n payload\n});\n\nexport const selectMIQSearchResult = (selection:AutoCompleteResult) => (dispatch: Function, getState: () => State) => {\n // record the selection in memory\n dispatch(setMIQSearchResult(selection));\n dispatch(setMIQStatus({loading: true, error: false, message: \"\"}));\n const region = getState().mapping.selectedCountry;\n\n postData(importEDPProperties(selection.value.id, region)).then((result:any) => {\n\n dispatch(setMIQStatus({loading: false, error: false, message: \"\"}));\n\n if(result && result.data){\n const listings:Listing[] = result.data.getEdpImportProperty;\n if (listings && listings[0].alternatePostalAddresses && listings[0].alternatePostalAddresses.length > 0) {\n const propertyAddress: AlternatePostalAddresses = {\n street: listings[0].street,\n street2: listings[0].street2,\n city: listings[0].city,\n stateOrProvince: listings[0].stateOrProvince,\n postalCode: listings[0].postalCode,\n country: listings[0].country,\n lat: listings[0].lat,\n lng: listings[0].lng,\n }\n listings[0].alternatePostalAddresses.push(propertyAddress);\n }\n\n dispatch(setMiqCurrentRecordsResult(listings));\n }else{\n // todo: throw error\n dispatch(showMIQExportError(\"Error\",\"There was a problem loading the requested listing.\"));\n }\n });\n}","import { State } from '../../../types/state';\nimport { setMiqCurrentRecordsResult } from './set-miq-current-records-result';\nimport { setMIQSearchResult } from './set-miq-search-result';\n\nexport const clearMIQData = () => (dispatch: Function, getState: () => State) => { \n // clear out our current search result\n dispatch(setMIQSearchResult(undefined));\n // clear out current records\n dispatch(setMiqCurrentRecordsResult([]));\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State, MainMessageType } from '../../../types/state';\n\nimport { postData } from '../../../api/glAxios';\nimport { countAssigned } from '../../../api/glQueries';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { MainMessaging, AlertMessaging, User } from '../../../types/state';\nimport { setAlertMessage } from '../../../redux/actions/system/set-alert-message';\nimport { AlertMessagingType } from '../../../types/state';\n\n\n// constants\nexport const ASSIGNED_LISTINGS_COUNT = 'ASSIGNED_LISTINGS_COUNT';\n\n// types\nexport type AssignedListingsCountAction = ActionPayload & {\n type: typeof ASSIGNED_LISTINGS_COUNT\n};\n\nexport const assignedListingsCount = (payload:number) : AssignedListingsCountAction => ({\n type: ASSIGNED_LISTINGS_COUNT,\n payload\n});\n\nexport const getAssignedListingsCount = () => (dispatch: Function, getState: () => State) => { \n \n\n postData(countAssigned())\n .then((response: any) => {\n dispatch(clearMessage);\n if (typeof response.data === 'undefined'){\n dispatch(setMainMessage({show: true, type: MainMessageType.ERROR, message: \"There was an error getting assigned listing count.\"}));\n }else if(response.data.count && response.data.count > 0){\n\n const assignedMsg:string = \"You have \" + response.data.count.toString() + \" Listing(s) assigned to you\";\n dispatch(setAlertMessage({ show: true, message: assignedMsg, type: AlertMessagingType.NOTICE, allowClose: true }));\n }\n });\n};\n\n","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const IS_DUPLICATING_LISTING = 'IS_DUPLICATING_LISTING';\n\n// types\nexport type SetIsDuplicatingListingAction = ActionPayload & {\n type: typeof IS_DUPLICATING_LISTING\n};\n\nexport const setIsDuplicatingListing = (payload:Boolean) : SetIsDuplicatingListingAction => ({\n type: IS_DUPLICATING_LISTING,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { AutoCompleteResult } from '../../../types/common/auto-complete';\nimport { importEDPProperties } from '../../../api/glQueries';\nimport { postData } from '../../../api/glAxios';\nimport { setMiqCurrentRecordsResult } from './set-miq-current-records-result';\nimport { State } from '../../../types/state';\nimport { Listing } from '../../../types/listing/listing';\nimport { Config } from '../../../types/config/config';\nimport { Space } from '../../../types/listing/space';\nimport { setMIQStatus } from './set-miq-status';\nimport { showMIQExportError } from './set-miq-export-message';\n\n// constants\nexport const SET_MIQ_EXPORT_RESULT = 'SET_MIQ_EXPORT_RESULT';\n\n// types\nexport type SetMIQExportResultAction = ActionPayload & {\n type: typeof SET_MIQ_EXPORT_RESULT\n};\n\nexport const setMIQExportResult = (payload:string | undefined) : SetMIQExportResultAction => ({\n type: SET_MIQ_EXPORT_RESULT,\n payload\n});\n\nexport const selectMIQExportResult = (id:string) => (dispatch: Function, getState: () => State) => {\n // record the selection in memory\n dispatch(setMIQExportResult(id));\n dispatch(setMIQStatus({loading: true, error: false, message: \"\"}));\n\n const region: any = getState().mapping.selectedCountry\n\n postData(importEDPProperties(parseInt(id, 10), region)).then((result:any) => {\n\n dispatch(setMIQStatus({loading: false, error: false, message: \"\"}));\n\n if(result && result.data){\n let listings:Listing[] = result.data.getEdpImportProperty;\n if(listings &&listings.length > 0){\n listings = prepareResults(listings, getState().system.configDetails.config);\n dispatch(setMiqCurrentRecordsResult(listings));\n }else{\n dispatch(showMIQExportError(\"Error\",\"The requested listing returned no data from MIQ\"));\n }\n }else{\n dispatch(showMIQExportError(\"Error\",\"There was a problem loading the requested listing.\"));\n }\n });\n}\n\nconst prepareResults = (listings:Listing[], config:Config) => {\n\n // massage the data back as needed\n // (1) reconcile any regional data that needs to be single\n const convertRegional:boolean = !config.languages || config.languages.length > 0; \n\n listings.forEach((listing:Listing) => {\n\n if(convertRegional){\n // TODO: we may need to convert the following: headline, property description, building description, highlights\n // spaces\n if(listing.spaces && listing.spaces.length > 0){\n listing.spaces.forEach((space:Space) => {\n if(!space.nameSingle || !(space.nameSingle.trim().length === 0) && space.name){\n if(space.name[0]){ // assumption is that we only have one text field coming in during a \"single\" region situation\n space.nameSingle = space.name[0].text;\n }\n }\n }); \n }\n }\n });\n\n return listings;\n}","import { Listing } from '../../../types/listing/listing';\nimport { postData } from '../../../api/glAxios';\nimport { unpublish } from '../../../api/glQueries';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { MainMessageType } from '../../../types/state';\nimport { setAlertMessage } from '../../../redux/actions/system/set-alert-message';\nimport { AlertMessagingType } from '../../../types/state';\nimport { push } from 'connected-react-router';\nimport { setMIQStatus } from '../miq/set-miq-status';\nimport { showMIQExportError } from '../miq/set-miq-export-message';\nimport { selectMIQExportResult } from '../miq/set-miq-export-result';\n\n\nexport enum UnpublishType {\n LISTINGENTRY = \"LISTINGENTRY\",\n MIQ_NEW = \"MIQ_NEW\",\n MIQ_EXISTING = \"MIQ_EXISTING\"\n}\n\nconst unpublishData = (id: any) => {\n const query = unpublish(id)\n const data = postData(query);\n return data;\n}\n\nconst handleError = (listing: Listing, unpublishType: UnpublishType, dispatch: Function) => {\n if (unpublishType === UnpublishType.LISTINGENTRY) {\n dispatch(setMainMessage({ show: true, type: MainMessageType.ERROR, message: \"There was an error while unpublishing.\" }));\n }\n else if (unpublishType === UnpublishType.MIQ_EXISTING || unpublishType === UnpublishType.MIQ_NEW) {\n dispatch(showMIQExportError(\"Error\", \"There was an error while unpublishing.\"));\n dispatch(setMIQStatus({ loading: false, error: false, message: \"\" }));\n }\n}\n\nexport const unpublishListing = (listing: Listing, unpublishType: UnpublishType) => (dispatch: Function) => {\n dispatch(setMainMessage({ show: true, type: MainMessageType.SAVING, message: \"Unpublishing Listing...\" }));\n unpublishData(listing.id)\n .then((result: any) => {\n if (result.data && result.data.unpublishListing) {\n clearMessage(dispatch);\n\n let message = \"Listing Successfully Submitted for Unpublishing\";\n if (unpublishType === UnpublishType.MIQ_NEW) {\n message = \"Listing queued to be unpublished. We saved a copy of this listing in your listings to be edited in the future. If not longer needed you can delete the property.\";\n } else if (unpublishType === UnpublishType.MIQ_EXISTING) {\n message = \"Listing queued to be unpublished.\";\n }\n\n dispatch(setAlertMessage({\n show: true,\n message: message,\n type: AlertMessagingType.SUCCESS,\n allowClose: true\n }));\n\n if (unpublishType === UnpublishType.LISTINGENTRY) {\n dispatch(push('/'));\n }\n else if (unpublishType === UnpublishType.MIQ_EXISTING || unpublishType === UnpublishType.MIQ_NEW) {\n if (listing.miqId) {\n // reload listings to get updated publishing states\n dispatch(selectMIQExportResult(listing.miqId));\n } else {\n // it should always have an miqId, but if it doesn't then hide the loading prompt to return control to\n dispatch(setMIQStatus({ loading: false, error: false, message: \"\" }));\n }\n }\n }\n else {\n // error state\n handleError(listing, unpublishType, dispatch);\n }\n })\n .catch((reason: any) => {\n handleError(listing, unpublishType, dispatch);\n });\n}","import { State, MainMessageType, RedirectAction } from '../../../types/state';\nimport { Listing } from '../../../types/listing/listing';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { postData } from '../../../api/glAxios'\nimport { updateListingQuery, createNewListingQuery } from '../../../api/glQueries'\nimport { publishListing } from '../listingEntry/publish-listing';\nimport { exportListing } from '../listingEntry/export-listing';\nimport { setAlertMessage } from '../../../redux/actions/system/set-alert-message';\nimport { AlertMessagingType } from '../../../types/state';\nimport { Config } from '../../../types/config/config';\nimport { currentListingLoaded} from '../../../redux/actions/listingEntry/load-current-listing';\nimport { setReloadListingId } from '../system/set-reload-listing-id';\nimport { updateSavePending } from './update-pending-operation';\nimport { resetPagedListings } from '../pagedListings/load-listings-paged';\nimport { clearMIQData } from '../miq/clear-miq-data';\nimport { checkAssignFlag } from '../../../utils/miq/remove-assign-flag';\nimport { showMIQExportError, showMIQExportSuccess } from '../miq/set-miq-export-message';\nimport { getAssignedListingsCount } from '../miq/get-assigned-listings-count';\nimport { push } from 'connected-react-router';\nimport { authContext } from '../../../adalConfig';\nimport { TeamMember } from '../../../types/team/teamMember';\nimport { setIsDuplicatingListing } from '../system/set-is-duplicating-listing';\nimport { unpublishListing, UnpublishType } from './unpublish-listing';\nimport { setMIQStatus } from '../miq/set-miq-status';\nimport moment from 'moment';\nimport { Space } from '../../../types/listing/space'\n\nconst saveData = (listing:Listing, config:Config, regionId?: string) => {\n let data:any;\n if(listing.demoGraphics)\n {\n const temp = listing.demoGraphics.demoGraphicsDetails;\n if(listing.demoGraphics.interval1 === null)\n {\n temp.forEach(detail => {\n detail.value1 = null;\n });\n }\n \n if(listing.demoGraphics.interval2 === null)\n {\n temp.forEach(detail => {\n detail.value2 = null;\n });\n }\n \n if(listing.demoGraphics.interval3 === null)\n {\n temp.forEach(detail => {\n detail.value3 = null;\n });\n }\n }\n\n if (listing.id){\n const query = updateListingQuery(listing, config, regionId);\n data = postData(query)\n } else { \n const query = createNewListingQuery(listing, config, regionId)\n data = postData(query);\n }\n \n return data;\n}\n\nexport enum SaveType {\n SAVE = \"SAVE\",\n PUBLISH = \"PUBLISH\",\n EXPORT = \"EXPORT\",\n ASSIGN = \"ASSIGN\",\n DUPLICATE = \"DUPLICATE\", // Save the current listing before duplicating. On success begin a 2nd save with type = SAVEDUPLICATE\n SAVEDUPLICATE = \"SAVEDUPLICATE\", // Save a duplicate of the listing by calling CreateListing with the same data\n UNPUBLISH_FROM_MIQ = \"UNPUBLISH\",\n}\n\n// thunks\nexport const saveListing = (listing:Listing, saveType:SaveType, config:Config) => (dispatch: Function, getState: () => State) => {\n\n // this helps us ensure only one save operation is occurring at a time.\n if(getState().entry.pendingOperations.savePending === true && saveType !== \"SAVEDUPLICATE\"){\n return;\n }\n \n if (!listing.id && !listing.owner) {\n const currentUser = authContext.getCachedUser();\n listing.owner = currentUser.userName;\n const ownerUser: TeamMember = { \n teamMemberId: \"\", \n firstName: currentUser.profile.given_name, \n lastName: currentUser.profile.family_name, \n id: currentUser.userName, \n email: currentUser.userName };\n if (!listing.users) {\n listing.users = [];\n }\n listing.users.push(ownerUser);\n }\n\n // Check if the currect authContext user exists in the listing's user data, if not, add user to the listing before save\n if (listing.users && listing.users.length > 0){\n const currentUser = authContext.getCachedUser();\n let matchFound = false;\n listing.users.forEach((user: TeamMember) => { // do an email match\n if (user.id === currentUser.userName || user.email === currentUser.userName || user.email === currentUser.profile.upn || user.id === currentUser.profile.unique_name){\n matchFound = true;\n }\n })\n \n if (!matchFound){\n const ownerUser: TeamMember = { \n teamMemberId: \"\", \n firstName: currentUser.profile.given_name, \n lastName: currentUser.profile.family_name, \n id: currentUser.userName, \n email: currentUser.userName \n };\n listing.users.push(ownerUser);\n }\n }\n\n if (getState().miq.pendingAddEditRecord) {\n listing.importedData = JSON.stringify(getState().miq.pendingAddEditRecord);\n }\n\n // set save pending = true to avoid double operations occurring\n dispatch(updateSavePending(true)); \n\n let messageToUser = \"Saving Listing...\";\n if(saveType === SaveType.PUBLISH){\n messageToUser = \"Publishing Listing...\";\n }else if(saveType === SaveType.EXPORT){\n messageToUser = \"Exporting...\";\n }else if (saveType === SaveType.UNPUBLISH_FROM_MIQ){\n messageToUser = \"Unpublishing Listing...\";\n }else if (saveType === SaveType.SAVEDUPLICATE){\n messageToUser = \"Duplicating Listing...\";\n }\n dispatch(setMainMessage({ show: true, type: MainMessageType.SAVING, message: messageToUser }));\n\n // check for MIQ assignment to turn off the assigned flag on save\n let assignFlagChange:boolean = false;\n if(saveType !== SaveType.ASSIGN && checkAssignFlag(listing)){\n assignFlagChange = true;\n if(listing && listing.listingAssignment){\n listing.listingAssignment.assignmentFlag = false;\n }\n }\n\n // if the property is toggled as \"Send to Toimitilat\" and availablelFrom value is null then populating\n // the value with current date while publishing a record for Finland\n if( listing.syndicationFlag && getState().mapping.countryCode === \"fi\" && saveType === SaveType.PUBLISH)\n {\n if(!listing.availableFrom)\n {\n listing.availableFrom = moment().local().format(\"YYYY-MM-DDT11:00:00\");\n }\n \n if(listing.spaces && listing.spaces.length > 0)\n {\n listing.spaces.forEach((space: Space) => {\n if (!space.availableFrom) {\n space.availableFrom = moment().local().format(\"YYYY-MM-DDT11:00:00\");\n }\n })\n }\n }\n const regionId = getState().mapping.selectedCountry;\n\n saveData(listing, config, regionId).then((result: any) => {\n\n // if data returns a create listing or update listing object, it worked & push to home \n if (result && result.data && (result.data.createListing || result.data.updateListing)){\n \n resetPagedListings(dispatch, false); // this will force a refresh on the listing page \n dispatch(clearMIQData()); // ensure any miq data screens are reset\n\n // This flag is used by load-current-listing to indicate that the user clicked the duplicate button after we save changes to the original listing.\n dispatch(setIsDuplicatingListing(saveType === SaveType.DUPLICATE));\n\n if (result.data.createListing){\n clearMessage(dispatch);\n listing.id = result.data.createListing.id; \n if (saveType !== SaveType.ASSIGN) {\n dispatch(currentListingLoaded(listing));\n }\n }\n\n if (saveType === SaveType.PUBLISH) {\n if(assignFlagChange) { dispatch(getAssignedListingsCount) };\n dispatch(publishListing(listing));\n } else if (saveType === SaveType.EXPORT) {\n dispatch(exportListing(listing, config));\n dispatch(updateSavePending(false));\n clearMessage(dispatch); // this probably should be moved to the export thunk\n } else if (saveType === SaveType.ASSIGN) {\n clearMessage(dispatch);\n dispatch(setAlertMessage({ show: true, message: 'Listing Assigned Successfully', type: AlertMessagingType.NOTICE, allowClose: true }));\n dispatch(showMIQExportSuccess(\"Listing has been assigned to\",\"the user(s) you have selected.\"));\n dispatch(updateSavePending(false));\n } else if (saveType === SaveType.DUPLICATE) {\n dispatch(setAlertMessage({ show: true, message: 'A copy has been made of your listing. Be sure to save after making any necessary updates.', type: AlertMessagingType.NOTICE, allowClose: false }));\n dispatch(push(`/le/${listing.id}`));\n dispatch(setReloadListingId(listing.id));\n dispatch(updateSavePending(false));\n } else if (saveType === SaveType.SAVEDUPLICATE) {\n dispatch(setAlertMessage({ show: true, message: 'A copy of your listing has been saved.', type: AlertMessagingType.NOTICE, allowClose: true }));\n dispatch(push(`/le/${listing.id}`));\n dispatch(setReloadListingId(listing.id));\n dispatch(updateSavePending(false));\n } else if (saveType === SaveType.UNPUBLISH_FROM_MIQ) {\n dispatch(unpublishListing(listing, UnpublishType.MIQ_NEW));\n } else {\n clearMessage(dispatch);\n if(assignFlagChange) { dispatch(getAssignedListingsCount) };\n dispatch(setAlertMessage({ show: true, message: 'Listing Saved Successfully', type: AlertMessagingType.NOTICE, allowClose: true }));\n \n const saveAction:RedirectAction = getState().system.saveAction;\n if(saveAction && saveAction.goto){\n dispatch(showMIQExportSuccess(\"Save Successful\", \"Your MIQ Listing has been created in Global Listings\"));\n dispatch(push(saveAction.goto));\n }else{\n dispatch(push(`/le/${listing.id}`));\n dispatch(setReloadListingId(listing.id));\n }\n dispatch(updateSavePending(false));\n }\n } else{\n // error state\n clearMessage(dispatch);\n dispatch(updateSavePending(false));\n \n if (saveType === SaveType.ASSIGN) {\n dispatch(setAlertMessage({show: true, message: \"There was an Error while saving.\", type: AlertMessagingType.ERROR, allowClose: true}));\n dispatch(showMIQExportError(\"Error\",\"There was an error assigning this listing.\"));\n } else if (saveType === SaveType.UNPUBLISH_FROM_MIQ) {\n dispatch(setAlertMessage({show: true, message: \"Unable to automatically save a copy of your listing. Please use the create button to resolve the issues and unpublish the listing.\", type: AlertMessagingType.ERROR, allowClose: true}));\n dispatch(setMIQStatus({loading: false, error: false, message: \"\"}));\n } else {\n mapHighlightsObject();\n dispatch(currentListingLoaded(listing)); // ensure the UI is refreshed with the copy we tried to save, otherwise the user loses anything they've done\n let errorMessage = \"There was an Error while saving.\";\n if (saveType === SaveType.DUPLICATE) {\n errorMessage = \"There was an error while duplicating your listing. Be sure to save after making any necessary updates.\";\n }\n dispatch(setAlertMessage({show: true, message: errorMessage, type: AlertMessagingType.ERROR, allowClose: true}));\n }\n }\n })\n\n // Re-Construction Highlights object to it's original structure.\n // As it is converted to DB Model while saving/updating the listing. \n const mapHighlightsObject = () => {\n const listingHighlights: any[] = [];\n\n listing.highlights.forEach((scrubbedHighlight: any) => {\n const { order, text, cultureCode, miqId } = scrubbedHighlight;\n\n if (!listingHighlights[order]) {\n listingHighlights[order] = {\n value: [],\n };\n }\n\n listingHighlights[order].value.push({\n text,\n cultureCode,\n miqId,\n });\n });\n\n listing.highlights = listingHighlights;\n }\n}","import { Listing } from '../../types/listing/listing';\n\nexport const checkAssignFlag = (listing:Listing):boolean => {\n if(listing && listing.listingAssignment && listing.listingAssignment.assignmentFlag){\n return true;\n }\n return false;\n}","import { ActionPayload } from '../../../types/common/action';\nimport { Space } from '../../../types/listing/space';\n// constants\nexport const UPDATE_SPACES = 'UPDATE_SPACES';\n\n// types\nexport type UpdateSpaces = ActionPayload & {\n type: typeof UPDATE_SPACES;\n};\n\nexport const updateSpaces = (payload: Space[]): UpdateSpaces => ({\n type: UPDATE_SPACES,\n payload\n}); ","import { ActionPayload } from '../../../types/common/action';\nimport { State, MainMessageType, ListingSuffix } from '../../../types/state';\nimport { Listing } from '../../../types/listing/listing';\nimport defaultListing from '../../../api/defaults/listing';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { pullSingleListing } from '../../../api/glQueries'\nimport { postData } from '../../../api/glAxios'\nimport { refreshAllContacts } from '../contacts/refresh-all-contacts';\nimport { authContext } from '../../../adalConfig';\nimport { TeamMember } from '../../../types/team/teamMember'\nimport cloneDeep from 'clone-deep';\nimport { GLFile } from '../../../types/listing/file';\nimport { checkPreviewStatus, setDirtyListing } from '../../actions/listingEntry/update-navbar';\nimport { updateSavePending } from './update-pending-operation';\nimport { Config } from '../../../types/config/config';\nimport { setListingSuffix } from '../system/set-suffix-string';\nimport { Specifications } from '../../../types/listing/specifications';\nimport { Space } from '../../../types/listing/space';\nimport { saveListing, SaveType } from './save-listing';\nimport { updateSpaces } from './update-spaces';\n\n// constants\nexport const CURRENT_LISTING_LOADED = 'CURRENT_LISTING_LOADED';\n\n// types\nexport type CurrentListingLoadedAction = ActionPayload & {\n type: typeof CURRENT_LISTING_LOADED\n};\n\nexport const currentListingLoaded = (payload: Listing): CurrentListingLoadedAction => ({\n type: CURRENT_LISTING_LOADED,\n payload\n});\n\nconst getData = (id: string) => {\n const query = pullSingleListing(parseInt(id, 10))\n const data = postData(query)\n return data\n}\n\nexport const loadCurrentListing = (id: string, config: Config, duplicate: Boolean = false) => (dispatch: Function, getState: () => State) => {\n // tests if there's numbers in the pathname\n // const isNumeric = (n:any) => {\n // return /\\d/.test(n);\n // }\n\n // ensure the dirty check on the listing is false\n dispatch(setDirtyListing(false));\n // ensure that we clear out the pending save flag\n dispatch(updateSavePending(false));\n\n dispatch(refreshAllContacts()); // ensure that the contacts are updated\n if (id !== undefined && id.length > 0) {\n\n dispatch(setMainMessage({ show: true, type: MainMessageType.LOADING, message: duplicate ? \"Duplicating Listing...\" : \"Loading Listing...\" }));\n\n getData(id).then(result => {\n if (result.data && result.data.listing) {\n const listing: Listing = massage(result.data.listing, config);\n\n // Tech debt: manually set the primary to false for floorplans and brochures\n // We need to figure out why it set them as true when pass to graphql\n listing.brochures.map((p: GLFile) => { p.primary = false });\n listing.floorplans.map((p: GLFile) => { p.primary = false });\n if (listing.epcGraphs) {\n listing.epcGraphs.map((p: GLFile) => { p.primary = false });\n }\n\n let defaultCultureCode: string = \"\";\n if (config && config.defaultCultureCode) {\n defaultCultureCode = config.defaultCultureCode;\n }\n\n listing.headlineSingle = \"\";\n if (listing.headline && listing.headline.length > 0) {\n listing.headlineSingle = listing.headline[0].text;\n if (defaultCultureCode !== \"\") {\n const headlineDefault = listing.headline.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (headlineDefault.length > 0) {\n listing.headlineSingle = headlineDefault[0].text;\n }\n }\n }\n\n listing.buildingDescriptionSingle = \"\";\n if (listing.buildingDescription && listing.buildingDescription.length > 0) {\n listing.buildingDescriptionSingle = listing.buildingDescription[0].text;\n if (defaultCultureCode !== \"\") {\n const buildingDescriptionDefault = listing.buildingDescription.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (buildingDescriptionDefault.length > 0) {\n listing.buildingDescriptionSingle = buildingDescriptionDefault[0].text;\n }\n }\n }\n\n listing.majorEnergySource = \"\";\n if (listing.majorEnergySources && listing.majorEnergySources.length > 0) {\n listing.majorEnergySource = listing.majorEnergySources[0];\n }\n\n listing.locationDescriptionSingle = \"\";\n if (listing.locationDescription && listing.locationDescription.length > 0) {\n listing.locationDescriptionSingle = listing.locationDescription[0].text;\n if (defaultCultureCode !== \"\") {\n const locationDescriptionDefault = listing.locationDescription.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (locationDescriptionDefault.length > 0) {\n listing.locationDescriptionSingle = locationDescriptionDefault[0].text;\n }\n }\n }\n\n listing.investmentDescriptionSingle = \"\";\n if (listing.investmentDescription && listing.investmentDescription.length > 0) {\n listing.investmentDescriptionSingle = listing.investmentDescription[0].text;\n if (defaultCultureCode !== \"\") {\n const investmentDescriptionDefault = listing.investmentDescription.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (investmentDescriptionDefault.length > 0) {\n listing.locationDescriptionSingle = investmentDescriptionDefault[0].text;\n }\n }\n }\n\n if (listing.spaces) {\n listing.spaces.map((space: any) => {\n space.brochures.map((p: GLFile) => { p.primary = false });\n space.floorplans.map((p: GLFile) => { p.primary = false });\n\n space.nameSingle = \"\";\n if (space.name && space.name.length > 0) {\n space.nameSingle = space.name[0].text;\n if (defaultCultureCode !== \"\") {\n const spaceNameDefault = space.name.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (spaceNameDefault.length > 0) {\n space.nameSingle = spaceNameDefault[0].text;\n }\n }\n }\n\n space.spaceDescriptionSingle = \"\";\n if (space.spaceDescription && space.spaceDescription.length > 0) {\n space.spaceDescriptionSingle = space.spaceDescription[0].text;\n if (defaultCultureCode !== \"\") {\n const spaceDescriptionDefault = space.spaceDescription.filter((d: any) => {\n return d.cultureCode === defaultCultureCode;\n });\n if (spaceDescriptionDefault.length > 0) {\n space.spaceDescriptionSingle = spaceDescriptionDefault[0].text;\n }\n }\n }\n })\n }\n\n if (getState().miq.spaces && getState().miq.spaces.length > 0) {\n getState().miq.spaces.forEach(space => {\n if (listing.spaces && !listing.spaces.some((sp: any) => sp.miqId === space.miqId)) {\n listing.spaces.push(space)\n }\n })\n }\n\n if (result.data.listing.dataSource) {\n const datasource = {\n datasources: result.data.listing.dataSource.dataSources ? result.data.listing.dataSource.dataSources : [],\n other: result.data.listing.dataSource.other ? result.data.listing.dataSource.other : \"\"\n };\n\n listing.datasource = datasource;\n }\n\n // if a country is not set and we have a defualt setup, be sure to set it here before it goes out\n if (config && config.country && config.country.show\n && config.stateOrProvince && config.stateOrProvince.defaultCountry\n && (!listing.country || listing.country.trim().length === 0)) {\n listing.country = config.stateOrProvince.defaultCountry;\n }\n\n // find the listing suffix if it exists\n if (listing && listing.specifications) {\n const listingSuffix: ListingSuffix = {\n measure: listing.specifications.measure,\n leaseTerm: listing.specifications.leaseTerm\n }\n dispatch(setListingSuffix(listingSuffix));\n }\n\n if (duplicate) {\n // User has clicked the duplicate button, and the original has been saved. Initialize the duplicate \n // listing to prepare to save.\n\n // Reset IDs\n listing.id = defaultListing.id;\n listing.externalId = null;\n listing.externalPlatformId = null;\n\n // Update name to indicate a duplicate\n listing.propertyRecordName += \" - Copy\";\n\n // Clear out old timestamps and ensure current user is assigned as the owner\n initCreatedListing(listing);\n\n // Initialize form in case of errors while saving\n dispatch(currentListingLoaded(listing));\n\n //\n dispatch(updateSpaces(listing.spaces));\n\n // Begin a 2nd pass through save flow to save the newly duplicated listing\n dispatch(saveListing(listing, SaveType.SAVEDUPLICATE, config));\n } else {\n dispatch(currentListingLoaded(listing));\n //\n dispatch(updateSpaces(listing.spaces));\n\n // kick off the preview check so the navbar can update the preview status easily\n checkPreviewStatus(dispatch, getState(), listing);\n clearMessage(dispatch);\n }\n } else {\n dispatch(setMainMessage({ show: true, type: MainMessageType.ERROR, message: \"Unauthorized content\", home: true }));\n }\n })\n } else {\n\n let listingToClone: Listing;\n const miqListing: any = getState().miq.pendingAddEditRecord;\n if (miqListing && miqListing.constructor === Object && Object.keys(miqListing).length !== 0) {\n listingToClone = miqListing;\n } else {\n listingToClone = defaultListing;\n }\n // create the listing object and prepare it for the create page\n const newCreatedListing = cloneDeep(listingToClone);\n\n initCreatedListing(newCreatedListing);\n massage(newCreatedListing, config);\n dispatch(updateSpaces(newCreatedListing.spaces));\n dispatch(currentListingLoaded(newCreatedListing));\n clearMessage(dispatch);\n\n // ensure that we try to kill off any existing preview check\n checkPreviewStatus(dispatch, getState(), newCreatedListing);\n }\n}\n\nexport const massage = (listing: any, config: Config) => {\n // any data that needs to be \"massaged\" on the front end before loading in\n\n if (listing.users && listing.users.length) {\n listing.users.forEach((user: any) => {\n if (user.id) {\n user.email = user.id;\n }\n });\n }\n\n if (listing.teams && listing.teams.length) {\n listing.teams.forEach((team: any) => {\n team.id = team.name;\n });\n }\n\n if (listing.microMarkets && listing.microMarkets.length > 0 && listing.microMarkets[0]) {\n listing.microMarket = listing.microMarkets[0].value;\n }\n\n if (listing.dateCreated) {\n listing.dateCreated = new Date(Date.parse(listing.dateCreated))\n }\n\n if (listing.dateUpdated) {\n listing.dateUpdated = new Date(Date.parse(listing.dateUpdated));\n }\n\n if (listing.datePublished) {\n const publishedDate = new Date(Date.parse(listing.datePublished));\n if (publishedDate.getFullYear() > 1999) {\n listing.datePublished = publishedDate;\n }\n else {\n listing.datePublished = null;\n }\n }\n else {\n listing.datePublished = null;\n }\n\n if (listing.dateListed) {\n const listedDate = new Date(Date.parse(listing.dateListed));\n if (listedDate.getFullYear() > 1999) {\n listing.dateListed = listedDate;\n }\n else {\n listing.dateListed = null;\n }\n }\n else {\n listing.dateListed = null;\n }\n\n if (listing.specifications) {\n verifyCurrencyCodes(listing.specifications, config);\n }\n if (listing.spaces && listing.spaces.length > 0) {\n listing.spaces.map((space: Space) => {\n if (space.specifications) {\n verifyCurrencyCodes(space.specifications, config);\n }\n })\n }\n\n // convert highlights to format for front end\n if (listing.highlights && listing.highlights.length > 0 && !listing.highlights[0].value) {\n\n // first determine language configuration to only pull the highlights in supported languages\n let supportedLangs: any[] = [];\n if (config && config.languages) {\n supportedLangs = config.languages;\n } else if (config && config.defaultCultureCode) {\n supportedLangs.push(config.defaultCultureCode);\n } else {\n supportedLangs.push(\"en-US\"); // temp default language\n }\n\n\n const tempSortedLangHighlights: any[] = [];\n\n\n // sort only languages in config by order number\n listing.highlights.forEach((highlight: any) => {\n if (supportedLangs.includes(highlight.cultureCode)) {\n\n // using loop for performance/IE support \n let i = 0;\n for (i = 0; i < tempSortedLangHighlights.length; i++) {\n if (highlight.order.value >= tempSortedLangHighlights[i].order) {\n break;\n }\n }\n tempSortedLangHighlights.splice(i, 0, highlight);\n }\n\n });\n\n // convert sorted array to UI format\n const convertedHighlights: any[] = [];\n let x = 0;\n let highlightMultiLangValues: any[] = [];\n for (x = 0; x < tempSortedLangHighlights.length; x++) {\n\n highlightMultiLangValues.push(tempSortedLangHighlights[x]);\n if ((x === (tempSortedLangHighlights.length - 1)) || (tempSortedLangHighlights[x + 1].order > tempSortedLangHighlights[x].order)) {\n convertedHighlights.push({ order: convertedHighlights.length, value: highlightMultiLangValues.slice(0) });\n highlightMultiLangValues = [];\n }\n\n }\n\n listing.highlights = convertedHighlights;\n }\n\n if (listing.externalRatings && listing.externalRatings.length > 0) {\n const epcObject = listing.externalRatings.find((rating: any) => rating.ratingType === 'EPC');\n listing.epcRating = (epcObject && epcObject.ratingLevel && epcObject.ratingLevel !== null) ? epcObject.ratingLevel.replaceAll('+', 'Plus') : null;\n \n listing.wellRating = listing.externalRatings.find((rating: any) => rating.ratingType === 'WELL') ? listing.externalRatings.find((rating: any) => rating.ratingType === 'WELL').ratingLevel : null;\n listing.energyRating = listing.externalRatings.find((rating: any) => rating.ratingType === 'BREEAM') ? listing.externalRatings.find((rating: any) => rating.ratingType === 'BREEAM').ratingLevel : null;\n listing.leedRating = listing.externalRatings.find((rating: any) => rating.ratingType === 'LEED') ? listing.externalRatings.find((rating: any) => rating.ratingType === 'LEED').ratingLevel : null;\n listing.dgnbRating = listing.externalRatings.find((rating: any) => rating.ratingType === 'DGNB') ? listing.externalRatings.find((rating: any) => rating.ratingType === 'DGNB').ratingLevel : null; \n listing.nabersRating = listing.externalRatings.find((rating: any) => rating.ratingType === 'NABERS') ? listing.externalRatings.find((rating: any) => rating.ratingType === 'NABERS').ratingLevel : null; \n\n delete listing.externalRatings;\n }\n else {\n listing.wellRating = '';\n listing.energyRating = '';\n listing.epcRating = '';\n listing.leedRating = '';\n listing.dgnbRating = '';\n listing.nabersRating = '';\n }\n\n return listing;\n}\n\nexport const listingFieldCheck = (listing: any) => {\n const payload: any = listing;\n for (const key in listing) {\n if (payload[key] === null) {\n payload[key] = defaultListing[key]\n }\n }\n return payload;\n}\n\nfunction initCreatedListing(newCreatedListing: Listing) {\n newCreatedListing.dateUpdated = undefined;\n newCreatedListing.dateCreated = undefined;\n newCreatedListing.datePublished = undefined;\n newCreatedListing.dateListed = undefined;\n\n if (!newCreatedListing.users) {\n newCreatedListing.users = [];\n }\n const currentUser = authContext.getCachedUser();\n if (currentUser\n && currentUser.userName\n && (\n !newCreatedListing.owner\n || currentUser.userName !== newCreatedListing.owner)) {\n newCreatedListing.owner = currentUser.userName;\n if (!newCreatedListing.users.some(u => u.email === currentUser.userName)) {\n const ownerUser: TeamMember = {\n teamMemberId: \"\",\n firstName: currentUser.profile.given_name,\n lastName: currentUser.profile.family_name,\n id: currentUser.userName,\n email: currentUser.userName\n };\n newCreatedListing.users.push(ownerUser);\n }\n }\n}\n\nfunction verifyCurrencyCodes(specifications: Specifications, config: Config) {\n if (config.currencyCode && specifications) {\n if (specifications.currencyCode && specifications.currencyCode.toUpperCase() !== config.currencyCode.toUpperCase()) {\n // Reset prices for incorrect currency codes\n specifications.minPrice = 0;\n specifications.maxPrice = 0;\n }\n // Set correct currency code if incorrect or missing\n specifications.currencyCode = config.currencyCode;\n }\n}","import {currentListingLoaded,CURRENT_LISTING_LOADED} from '../../actions/listingEntry/load-current-listing';\nimport { ActionType } from 'typesafe-actions';\n\nexport type CurrentListingLoadedAction = ActionType;\n\nexport default(state = {}, action: CurrentListingLoadedAction) => {\n switch(action.type){\n case CURRENT_LISTING_LOADED:\n return {...state,...action.payload};\n break;\n\n default:\n return state;\n }\n}","import {combineReducers} from 'redux';\nimport currentListingReducer from './current-listing-reducer';\nimport navbarReducer from './navbar-reducer';\nimport pendingOperationsReducer from './entry-pending-operations-reducer';\nimport processingImagesCheckReducer from './processing-images-reducer';\nimport refreshImagesReducer from './refresh-images-reducer';\nimport updateSpacesReducer from './update-spaces-reducer';\n\nexport default combineReducers({\n currentListing: currentListingReducer,\n navbar: navbarReducer,\n pendingOperations: pendingOperationsReducer,\n processingImagesCheck: processingImagesCheckReducer,\n refreshImages: refreshImagesReducer,\n spaces: updateSpacesReducer\n});","import { UPDATE_LISTING_DIRTY, UPDATE_PREVIEW_STATUS, UPDATE_PREVIEW_STATUS_TIMER_ID } from '../../actions/listingEntry/update-navbar';\n\nexport default(state = {}, action: any) => {\n switch(action.type){\n case UPDATE_LISTING_DIRTY:\n const dirty = { 'listingDirty': action.payload }; \n return {...state,...dirty};\n break;\n \n case UPDATE_PREVIEW_STATUS: \n const previewStatus = { 'previewStatus': action.payload }; \n return {...state,...previewStatus};\n break;\n\n case UPDATE_PREVIEW_STATUS_TIMER_ID:\n const timerId = { 'previewStatusTimerId': action.payload };\n return {...state,...timerId};\n break;\n\n default:\n return state;\n }\n}","import { UPDATE_SAVE_PENDING } from '../../actions/listingEntry/update-pending-operation';\n\nexport default(state = {}, action: any) => {\n switch(action.type){\n case UPDATE_SAVE_PENDING:\n const dirty = { 'savePending': action.payload }; \n return {...state,...dirty};\n break;\n\n default:\n return state;\n }\n}","import { SET_IMAGES_PROCESSING } from '../../actions/listingEntry/processing-images';\n\nexport default(state = {}, action: any) => {\n switch(action.type){\n case SET_IMAGES_PROCESSING:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { ProcessingImagesCheck } from '../../../types/state';\nimport { GLFile } from '../../../types/listing/file';\n\n// constants\nexport const SET_IMAGES_PROCESSING = 'SET_IMAGES_PROCESSING';\nexport const REFRESH_IMAGES = 'REFRESH_IMAGES';\n\n// types\nexport type SetImagesProcessingAction = ActionPayload & {\n type: typeof SET_IMAGES_PROCESSING;\n};\n\nexport type RefreshImagesAction = ActionPayload & {\n type: typeof REFRESH_IMAGES\n};\n\nexport const setImagesProcessing = (payload:ProcessingImagesCheck) => ({\n type: SET_IMAGES_PROCESSING,\n payload\n});\n\nexport const refreshImages = (payload:GLFile[]) => ({\n type: REFRESH_IMAGES,\n payload\n});","import { REFRESH_IMAGES } from '../../actions/listingEntry/processing-images';\n\nexport default(state = {}, action: any) => {\n switch(action.type){\n case REFRESH_IMAGES:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { UPDATE_SPACES } from '../../actions/listingEntry/update-spaces';\n\nexport default(state = [], action: any) => {\n switch(action.type){\n case UPDATE_SPACES:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import {combineReducers} from 'redux';\nimport countryReducer from './country-reducer';\nimport setCountry from './set-country';\nimport setCountryCode from './set-country-code-reducer';\n\nexport default combineReducers({\n country: countryReducer,\n selectedCountry: setCountry,\n countryCode: setCountryCode\n});","import { selectCountry, SELECT_COUNTRY} from '../../actions/mapping/select-country';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SelectCountryAction = ActionType;\n\nexport default(state = {}, action: SelectCountryAction) => {\n switch(action.type){\n case SELECT_COUNTRY:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SELECT_COUNTRY = 'SELECT_COUNTRY';\n\n// types\nexport type SelectCountryAction = ActionPayload & {\n type: typeof SELECT_COUNTRY\n};\n\nexport const selectCountry = (payload:string) : SelectCountryAction => ({\n type: SELECT_COUNTRY,\n payload\n});","import { setCountry, SET_COUNTRY} from '../../actions/mapping/set-country';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetCountryAction = ActionType;\n\nexport default(state = null, action: SetCountryAction) => {\n switch(action.type){\n case SET_COUNTRY:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SET_COUNTRY = 'SET_COUNTRY';\n\n// types\nexport type SetCountryAction = ActionPayload & {\n type: typeof SET_COUNTRY\n};\n\nexport const setCountry = (payload:string) : SetCountryAction => ({\n type: SET_COUNTRY,\n payload\n});","import { setCountryCode, SET_COUNTRY_CODE} from '../../actions/mapping/set-country-code';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetCountryCodeAction = ActionType;\n\nexport default(state = {}, action: SetCountryCodeAction) => {\n switch(action.type){\n case SET_COUNTRY_CODE:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SET_COUNTRY_CODE = 'SET_COUNTRY_CODE';\n\n// types\nexport type SetCountryCodeAction = ActionPayload & {\n type: typeof SET_COUNTRY_CODE\n};\n\nexport const setCountryCode = (payload:string) : SetCountryCodeAction => ({\n type: SET_COUNTRY_CODE,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { FeatureFlags } from '../../../types/state';\n\n// constants\nexport const UPDATE_FEATURE_FLAGS = 'UPDATE_FEATURE_FLAGS';\n\n// types\nexport type UpdateFeatureFlagsAction = ActionPayload & {\n type: typeof UPDATE_FEATURE_FLAGS;\n};\n\nexport const updateFeatureFlags = (payload:FeatureFlags) => ({\n type: UPDATE_FEATURE_FLAGS,\n payload\n});","import { Config } from \"../../types/config/config\";\n\nexport interface Environments {\n localhost: boolean,\n dev: boolean,\n uat: boolean,\n prod: boolean\n}\n\nexport const checkEnvironment = (config:Config, environments:Environments):boolean => {\n const url: string = window.location.href;\n if(config){\n if(environments.localhost && url.indexOf(\"localhost\") > -1){\n return true;\n }else if(environments.dev && url.indexOf(\"dev\") > -1){\n return true;\n }else if(environments.uat && url.indexOf(\"uat\") > -1){\n return true;\n }else if(environments.prod){ // if we are checking on prod, and we've gotten this far, assumption is we must be in prod\n return true;\n }\n }\n return false;\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State, User } from '../../../types/state';\nimport { postData } from '../../../api/glAxios';\nimport { defaultRegionID, userRoles } from '../../../api/glQueries';\nimport { Region } from '../../../types/config/config';\n\n\n// constants\nexport const SET_ADMIN = 'SET_ADMIN';\n\n// types\nexport type SetAdminAction = ActionPayload & {\n type: typeof SET_ADMIN\n};\n\nexport const setAdminLoaded = (payload:User) : SetAdminAction => ({\n type: SET_ADMIN,\n payload\n});\n\nexport async function checkAdmin(state:State, regions: Region) {\n\n const user = state.system.user;\n const region = state.mapping.selectedCountry || defaultRegionID;\n\n let userData:any;\n\n if(user && (!user.isAdmin || !user.isAdmin === null)){\n\n return await postData(userRoles(region))\n .then((response: any) => {\n\n if(response && response.data.isAdmin !== null){\n userData = Object.assign({},user);\n userData.regions = regions;\n userData.isAdmin = response.data.userRoles.isAdmin;\n userData.isExternalSystemBrokerAvatarUploadRole = response.data.userRoles.isExternalSystemBrokerAvatarUploadRole;\n if(!userData.isAdmin && userData.isExternalSystemBrokerAvatarUploadRole){\n userData.isOnlyExternalSystemBrokerAvatarUploadRole = true;\n }\n return userData;\n }else{\n return userData;\n }\n }); \n }else {\n return userData;\n } \n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SET_HOME_SITE_ID = 'SET_HOME_SITE_ID';\n\n// types\nexport type SetHomeSiteIdAction = ActionPayload & {\n type: typeof SET_HOME_SITE_ID\n};\n\nexport const setHomeSiteId = (payload:string) : SetHomeSiteIdAction => ({\n type: SET_HOME_SITE_ID,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { State, FeatureFlags, System, User } from '../../../types/state';\nimport { postData } from '../../../api/glAxios';\nimport { loadAppSettings, pullRegions } from '../../../api/glQueries';\nimport { ConfigDetails, Config, Region } from '../../../types/config/config';\nimport { PropertyTypeOption } from '../../../types/common/option';\nimport { updateFeatureFlags } from '../featureFlags/update-feature-flags';\nimport { checkEnvironment } from '../../../utils/helpers/check-environment';\nimport { checkAdmin, setAdminLoaded } from '../user/get-admin';\nimport { setHomeSiteId } from './set-home-site-id';\nimport { loadGoogleMaps } from './load-google-maps';\n\n// constants\nexport const CONFIG_DETAILS_LOADED = 'CONFIG_DETAILS_LOADED';\n\n// types\nexport type AllContactsLoadedAction = ActionPayload & {\n type: typeof CONFIG_DETAILS_LOADED\n};\n\nexport const configDetailsLoaded = (payload: ConfigDetails): AllContactsLoadedAction => ({\n type: CONFIG_DETAILS_LOADED,\n payload\n});\n\n// setup a property type color map for easy reference later on\nconst setupPropertyTypeColors = (config:Config) => {\n const colors:Map = new Map();\n if(config && config.propertyType && config.propertyType.options){\n config.propertyType.options.forEach((option:PropertyTypeOption) => {\n if(option.color && option.color.length > 0){\n colors.set(option.value,option.color);\n }\n });\n }\n return colors;\n}\n\n// setup a property type labels\nconst setupPropertyTypeLabels = (config:Config) => {\n const labels:Map = new Map();\n if(config && config.propertyType && config.propertyType.options){\n config.propertyType.options.forEach((option:PropertyTypeOption) => {\n if(option.label && option.label.length > 0){\n labels.set(option.value,option.label);\n }\n });\n }\n return labels;\n}\n\n// setup listing filters\nexport const loadConfig = (siteId?:string, overrideHomeSiteId?:boolean) => (dispatch: Function, getState: () => State) => {\n let loadRegions:Promise;\n const configRegions = getState().system.configDetails.regions;\n if (configRegions) {\n loadRegions = Promise.resolve(configRegions);\n } else {\n const query = pullRegions();\n loadRegions = postData(query).then((response:any) => {\n return response.data.regions as Region[];\n })\n }\n\n loadRegions.then(results => {\n setupAdmin(dispatch, getState(), siteId, results);\n if (overrideHomeSiteId && siteId) {\n dispatch(setHomeSiteId(siteId));\n }\n }); \n}\n\n// get admin first\nasync function setupAdmin(dispatch: Function, state:State, siteId?:string, regions?: any) {\n\n\n checkAdmin(state, regions).then((adminCheck: any) => {\n\n const isAdmin: boolean = adminCheck && adminCheck.isAdmin ? adminCheck.isAdmin : false;\n setupEnvironment(dispatch, state, isAdmin, siteId, regions);\n\n if(adminCheck){\n dispatch(setAdminLoaded(adminCheck));\n }\n });\n}\n\n// then setup our environment\nconst setupEnvironment = (dispatch:Function, state:State, isAdmin:boolean, siteId?:string, regions?: any) => {\n \n // todo: don't want to use any here, but typescript is not playing nice\n const configDetails:any = {\n loaded: false,\n forced: false,\n error: \"\",\n aiKey: \"\",\n regions: regions\n }\n if(siteId && siteId.length > 0){\n\n // we are forcing the site id instead of loading from graphql (i.e., switch [this should only happen in localhost/dev/uat])\n try{\n const config:Config = require(\"../../../config/\" + siteId + \".json\");\n configDetails.loaded = true;\n configDetails.forced = true;\n configDetails.config = config;\n configDetails.propertyTypeColors = setupPropertyTypeColors(config);\n configDetails.propertyTypeLabels = setupPropertyTypeLabels(config);\n\n // feature flags\n let ff:FeatureFlags = {\n previewFeatureFlag: false,\n miqImportFeatureFlag: false,\n miqLimitSearchToCountryCodeFeatureFlag: true\n };\n if(state.featureFlags){\n ff = state.featureFlags;\n } \n ff = checkForFeatureFlagOverrides(config, isAdmin, ff);\n\n dispatch(updateFeatureFlags(ff));\n\n\n }catch(error){\n if (typeof(Storage) !== \"undefined\") { localStorage.removeItem(\"siteId\"); } // prevents getting stuck on a siteid where the config doesn't exist\n configDetails.error = \"There was an error loading the requested configuration - please double check the siteId being passed\";\n }\n dispatch(configDetailsLoaded(configDetails));\n }else{\n // we don't have a site id passed in, so load from graphql (or local storage) and get the configured default site id\n const query = loadAppSettings();\n postData(query)\n .then((response: any) => {\n if(response.data){\n // Use SiteId from local storage first. If it's not there then fallback to graphql.\n const graphQLSiteId:string = typeof(Storage) !== \"undefined\" && localStorage.getItem(\"siteId\") ? localStorage.getItem(\"siteId\") : response.data.configs.homeSiteId;\n const aiKey:string = response.data.configs.aiKey;\n \n const previewFlag:boolean = JSON.parse(response.data.configs.previewFeatureFlag);\n const miqImportFlag:boolean = JSON.parse(response.data.configs.miqImportFeatureFlag);\n const miqLimitSearchFlag:boolean = JSON.parse(response.data.configs.miqLimitSearchToCountryCodeFeatureFlag);\n const googleMapsKey:string = response.data.configs.googleMapsKey;\n const googleMapsChannel:string = response.data.configs.googleMapsChannel;\n\n try{\n const config:Config = require(\"../../../config/\" + graphQLSiteId + \".json\");\n configDetails.loaded = true;\n configDetails.config = config;\n configDetails.aiKey = aiKey;\n configDetails.propertyTypeColors = setupPropertyTypeColors(config);\n configDetails.propertyTypeLabels = setupPropertyTypeLabels(config);\n dispatch(setHomeSiteId(graphQLSiteId))\n\n // update the feature flags in the store based on data loaded from the backend\n let featureFlags:FeatureFlags = {\n previewFeatureFlag: previewFlag,\n miqImportFeatureFlag: miqImportFlag,\n miqLimitSearchToCountryCodeFeatureFlag: miqLimitSearchFlag \n };\n featureFlags = checkForFeatureFlagOverrides(config, isAdmin, featureFlags);\n\n dispatch(updateFeatureFlags(featureFlags));\n\n // load google maps \n loadGoogleMaps(googleMapsKey, googleMapsChannel);\n\n\n }catch(error){\n configDetails.error = \"There was an error loading the site configuration.\";\n }\n dispatch(configDetailsLoaded(configDetails));\n }\n });\n }\n}\n\nconst checkForFeatureFlagOverrides = (config:Config, isAdmin:boolean | null, currentFeatureFlags: FeatureFlags):FeatureFlags => {\n // individual client config overrides\n // use case 1: India needs MIQ import in UAT (ADMINS only)\n if(config.featureFlags && config.featureFlags.overrides \n && config.featureFlags.overrides.uatImportFromMIQRequireAdmin \n && checkEnvironment(config,{localhost: true, dev: true, uat: true, prod: false})\n && isAdmin){\n currentFeatureFlags.miqImportFeatureFlag = config.featureFlags.overrides.uatImportFromMIQRequireAdmin;\n }\n return currentFeatureFlags;\n} ","export const loadGoogleMaps = (key:string, channel:string) => {\n if(!window.google){\n console.log(\"LOAD GOOGLE MAPS!\");\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = \"https://maps.googleapis.com/maps/api/js?v=3&key=\" + key + \"&channel=\" + channel + \"&libraries=places\";\n document.body.append(script);\n }\n};","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SET_SCROLL_POSITION = 'SET_SCROLL_POSITION';\n\n// types\nexport type SetScrollPositionAction = ActionPayload & {\n type: typeof SET_SCROLL_POSITION\n};\n\nexport const setEntryPageScrollPosition = (payload:number) : SetScrollPositionAction => ({\n type: SET_SCROLL_POSITION,\n payload\n});","import { DataSourcePopupParams } from '../../../types/state';\nimport { DataSource } from '../../../types/listing/datasource';\n\n// constants\nexport const SET_DATASOURCE_POPUP = 'SET_DATASOURCE_POPUP';\n\n\nexport const setDatasourcePopup = (payload:DataSourcePopupParams) => ({\n type: SET_DATASOURCE_POPUP,\n payload\n});\n\nexport const clearDatasourcePopup = (dispatch:Function) => {\n const dialogSetting:DataSourcePopupParams = {\n show: false,\n action: 'create',\n datasource: {datasources:[],other:''},\n confirmFunc: undefined\n }\n dispatch(setDatasourcePopup(dialogSetting));\n}","import { ActionPayload } from '../../../types/common/action';\nimport { RedirectAction } from '../../../types/state';\n\n// constants\nexport const SET_CANCEL_ACTION = 'SET_CANCEL_ACTION';\n\n// types\nexport type SetCancelAction = ActionPayload & {\n type: typeof SET_CANCEL_ACTION\n};\n\nexport const setCancelAction = (payload:RedirectAction) : SetCancelAction => ({\n type: SET_CANCEL_ACTION,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { RedirectAction } from '../../../types/state';\n\n// constants\nexport const SET_SAVE_ACTION = 'SET_SAVE_ACTION';\n\n// types\nexport type SetSaveAction = ActionPayload & {\n type: typeof SET_SAVE_ACTION\n};\n\nexport const setSaveAction = (payload:RedirectAction) : SetSaveAction => ({\n type: SET_SAVE_ACTION,\n payload\n});","import { ActionPayload } from '../../../types/common/action';\nimport { MainMessaging, State, MainMessageType } from '../../../types/state';\n\n// constants\nexport const SET_MIQ_ADDRESS = 'SET_MIQ_ADDRESS';\n\n// types\nexport type setMiqAddressAction = ActionPayload & {\n type: typeof SET_MIQ_ADDRESS\n};\n\nexport const setMiqAddress = (payload:MainMessaging) : setMiqAddressAction => ({\n type: SET_MIQ_ADDRESS,\n payload\n});\n\nexport const clearMiqAddressPopup = (dispatch:Function) => {\n const message:MainMessaging = {\n show: false,\n type: MainMessageType.NONE,\n message: \"\"\n }\n dispatch(setMiqAddress(message));\n}","import {combineReducers} from 'redux';\nimport mainMessagingReducer from './main-messaging-reducer';\nimport alertMessagingReducer from './alert-messaging-reducer';\nimport configDetailsReducer from './config-details-reducer';\nimport confirmDialogReducer from './confirm-dialog-reducer';\nimport setAnalyticsReducer from './set-analytics-boolean';\nimport setSuffixReducer from './set-suffix-string';\nimport entryPageScrollPositionReducer from './entry-page-scroll-position-reducer';\nimport reloadEntryIdReducer from './reload-listing-id-reducer';\nimport dataSourcePopupReducer from './datasource-popup-reducer';\nimport userReducer from '../system/set-user-reducer';\nimport cancelActionReducer from '../system/cancel-action-reducer';\nimport saveActionReducer from '../system/save-action-reducer';\nimport setHomeSiteId from '../system/set-home-site-id-reducer';\nimport isDuplicatingListingReducer from './is-duplicating-listing-reducer';\nimport setMiqAddressAction from './set-miq-address-reducer';\n\nexport default combineReducers({\n mainMessage: mainMessagingReducer,\n alertMessage: alertMessagingReducer,\n configDetails: configDetailsReducer,\n confirmDialog : confirmDialogReducer,\n analytics: setAnalyticsReducer,\n suffix: setSuffixReducer,\n entryPageScrollPosition: entryPageScrollPositionReducer,\n reloadListingId: reloadEntryIdReducer,\n isDuplicatingListing: isDuplicatingListingReducer,\n dataSourcePopup: dataSourcePopupReducer,\n user: userReducer,\n cancelAction: cancelActionReducer,\n saveAction: saveActionReducer,\n homeSiteId: setHomeSiteId,\n setMiqAddress: setMiqAddressAction\n});","import { setMainMessage, SET_MAIN_MESSAGE} from '../../actions/system/set-main-message';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMainMessageAction = ActionType;\n\nexport default(state = {}, action: SetMainMessageAction) => {\n switch(action.type){\n case SET_MAIN_MESSAGE:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setAlertMessage, SET_ALERT_MESSAGE} from '../../actions/system/set-alert-message';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetAlertMessageAction = ActionType;\n\nexport default(state = {}, action: SetAlertMessageAction) => {\n switch(action.type){\n case SET_ALERT_MESSAGE:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { configDetailsLoaded, CONFIG_DETAILS_LOADED } from '../../actions/system/load-config-details';\nimport { ActionType } from 'typesafe-actions';\n\nexport type ConfigLoadedAction = ActionType;\n\nexport default(state = {}, action: ConfigLoadedAction) => {\n switch(action.type){\n case CONFIG_DETAILS_LOADED:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setConfirmDialog, SET_CONFIRM_DIALOG} from '../../actions/system/set-confirm-dialog';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetConfirmDialogAction = ActionType;\n\nexport default(state = {}, action: SetConfirmDialogAction) => {\n switch(action.type){\n case SET_CONFIRM_DIALOG:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setAnalyticsBoolean, SET_ANALYTICS_BOOLEAN } from '../../actions/system/set-analytics-boolean';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetAnalyticsBooleanAction = ActionType;\n\nexport default(state = {}, action: SetAnalyticsBooleanAction) => {\n switch(action.type){\n case SET_ANALYTICS_BOOLEAN:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\n\n// constants\nexport const SET_ANALYTICS_BOOLEAN = 'SET_ANALYTICS_BOOLEAN';\n\n// types\nexport type SetAnalyticsBooleanAction = ActionPayload & {\n type: typeof SET_ANALYTICS_BOOLEAN\n};\n\nexport const setAnalyticsBoolean = (payload:boolean) : SetAnalyticsBooleanAction => ({\n type: SET_ANALYTICS_BOOLEAN,\n payload\n});","import { setListingSuffix, SET_LISTING_SUFFIX } from '../../actions/system/set-suffix-string';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetSuffixStringAction = ActionType;\n\nexport default(state = {}, action: SetSuffixStringAction) => {\n switch(action.type){\n case SET_LISTING_SUFFIX:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setEntryPageScrollPosition, SET_SCROLL_POSITION} from '../../actions/system/entry-page-scroll-position';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetEntryPageScrollPositionAction = ActionType;\n\nexport default(state = {}, action: SetEntryPageScrollPositionAction) => {\n switch(action.type){\n case SET_SCROLL_POSITION:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setReloadListingId, RELOAD_LISTING_ID} from '../../actions/system/set-reload-listing-id';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetReloadListingIdAction = ActionType;\n\nexport default(state = {}, action: SetReloadListingIdAction) => {\n switch(action.type){\n case RELOAD_LISTING_ID:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setIsDuplicatingListing, IS_DUPLICATING_LISTING } from '../../actions/system/set-is-duplicating-listing';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetIsDuplicatingListingAction = ActionType;\n\nexport default(state = {}, action: SetIsDuplicatingListingAction) => {\n switch(action.type){\n case IS_DUPLICATING_LISTING:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setDatasourcePopup, SET_DATASOURCE_POPUP} from '../../actions/system/set-datasource-popup';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetDatasourcePopupAction = ActionType;\n\nexport default(state = {}, action: SetDatasourcePopupAction) => {\n switch(action.type){\n case SET_DATASOURCE_POPUP:\n return Object.assign({},action.payload);\n break;\n default:\n return state;\n }\n}","import { setAdminLoaded, SET_ADMIN } from '../../actions/user/get-admin';\nimport { ActionType } from 'typesafe-actions';\n\nexport type UserLoadedAction = ActionType;\n\nexport default(state = {}, action: UserLoadedAction) => {\n switch(action.type){\n case SET_ADMIN:\n return action.payload;\n default:\n return state;\n }\n}","import { setCancelAction, SET_CANCEL_ACTION} from '../../actions/system/set-cancel-action';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetCancelActionType = ActionType;\n\nexport default(state = {}, action: SetCancelActionType) => {\n switch(action.type){\n case SET_CANCEL_ACTION:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setSaveAction, SET_SAVE_ACTION} from '../../actions/system/set-save-action';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetSaveActionType = ActionType;\n\nexport default(state = {}, action: SetSaveActionType) => {\n switch(action.type){\n case SET_SAVE_ACTION:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setHomeSiteId, SET_HOME_SITE_ID } from '../../actions/system/set-home-site-id';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetHomeSiteIdAction = ActionType;\n\nexport default(state = {}, action: SetHomeSiteIdAction) => {\n switch(action.type){\n case SET_HOME_SITE_ID:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { setMiqAddress, SET_MIQ_ADDRESS} from '../../actions/system/set-miq-address';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMiqAddressAction = ActionType;\n\nexport default(state = {}, action:SetMiqAddressAction) => {\n switch(action.type){\n case SET_MIQ_ADDRESS:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import {combineReducers} from 'redux';\nimport allContactsReducer from './all-contacts-reducer';\n\nexport default combineReducers({\n allContacts: allContactsReducer\n});","import {allContactsLoaded,ALL_CONTACTS_LOADED} from '../../actions/contacts/refresh-all-contacts';\nimport { ActionType } from 'typesafe-actions';\n\nexport type CurrentListingLoadedAction = ActionType;\n\nexport default(state = {}, action: CurrentListingLoadedAction) => {\n switch(action.type){\n case ALL_CONTACTS_LOADED:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { Team } from '../../types/team/team';\n\nconst defaultTeam:Team = {\n \"id\": \"\",\n \"name\" : \"\",\n \"users\" : []\n}\nexport default defaultTeam;","import { ActionPayload } from '../../../types/common/action';\nimport { State, MainMessageType } from '../../../types/state';\nimport { Team } from '../../../types/team/team';\nimport { postData } from '../../../api/glAxios';\nimport { getAllTeamsForUser } from '../../../api/glQueries';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport { authContext } from '../../../adalConfig';\n\n// constants\nexport const TEAMS_LOADED = 'LOAD_TEAMS';\n\n// types\nexport type TeamsLoadedAction = ActionPayload & {\n type: typeof TEAMS_LOADED\n};\n\nexport const teamsLoaded = (payload:Team[]) : TeamsLoadedAction => ({\n type: TEAMS_LOADED,\n payload\n});\n\n\n\nexport const loadTeams = () => (dispatch: Function, getState: () => State) => {\n \n dispatch(setMainMessage({ show: true, type: MainMessageType.LOADING, message: \"Loading Teams...\" }));\n const currentUser = authContext.getCachedUser();\n const region = getState().mapping.selectedCountry;\n\n postData(getAllTeamsForUser(region))\n .then((response: any) => {\n if (typeof response.data === 'undefined'){\n dispatch(setMainMessage({show: true, type: MainMessageType.ERROR, message: \"There was an error loading teams.\"}));\n // }else if(response.data.teams && response.data.teams.length === 0){\n // dispatch(setMainMessage({ show: true, type: MainMessageType.NOTICE, message: \"There are no existing listings.\", messageLine2: \"Go ahead and create one.\" }));\n }else{\n clearMessage(dispatch);\n \n \n const dbTeams:Team[] = response.data.teams.map(\n (m:any) => ({\n \"id\": m.name, \n \"name\":m.name, \n \"users\": m.users.map(\n (user:any) => ({\n \"firstName\": user.firstName? user.firstName : \"\",\n \"lastName\" : user.lastName? user.lastName : \"\",\n \"email\" : user.id? user.id : \"\",\n })\n ) \n })\n );\n \n dispatch(teamsLoaded(dbTeams));\n }\n });\n}","import {combineReducers} from 'redux';\nimport currentTeamReducer from './current-team-reducer';\nimport allTeamsReducer from './all-teams-reducer';\n\nexport default combineReducers({\n currentTeam: currentTeamReducer,\n allTeams: allTeamsReducer\n});","import {currentTeamLoaded,CURRENT_TEAM_LOADED} from '../../actions/teams/load-current-team';\nimport { ActionType } from 'typesafe-actions';\n\nexport type CurrentTeamLoadedAction = ActionType;\n\nexport default(state = {}, action: CurrentTeamLoadedAction) => {\n switch(action.type){\n case CURRENT_TEAM_LOADED:\n return {...state,...action.payload}\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { State, MainMessageType } from '../../../types/state';\nimport { Team } from '../../../types/team/team';\nimport defaultTeam from '../../../api/defaults/team';\nimport { setMainMessage, clearMessage } from '../system/set-main-message';\nimport cloneDeep from 'clone-deep';\nimport { authContext } from '../../../adalConfig';\n\n// constants\nexport const CURRENT_TEAM_LOADED = 'CURRENT_TEAM_LOADED';\n\n// types\nexport type CurrentTeamLoadedAction = ActionPayload & {\n type: typeof CURRENT_TEAM_LOADED\n};\n\nexport const currentTeamLoaded = (payload: Team): CurrentTeamLoadedAction => ({\n type: CURRENT_TEAM_LOADED,\n payload\n});\n\nconst getData = (id: string) => {\n // const query = pullSingleTeam(parseInt(id, 10));\n // const data = postData(query);\n const data = {\"id\": \"0\", \"name\": \"test\", \"users\" : []}\n return data;\n}\n\nexport const loadCurrentTeam = (id: string) => (dispatch: Function, getState: () => State) => {\n\n if (id !== undefined && id.length > 0) {\n \n // getData(id).then(result => {\n // if (result.data && result.data.team){\n // const team:Team = result.data.team;\n // dispatch(currentTeamLoaded(team));\n // clearMessage(dispatch);\n // } else {\n // // dispatch(setMainMessage({ show: true, type: MainMessageType.ERROR, message: \"Unauthorized content\", home:true }));\n // }\n // })\n } else {\n // default listing\n const newTeam = cloneDeep(defaultTeam);\n const currentUser = authContext.getCachedUser();\n newTeam.users.push({teamMemberId: \"\", firstName: currentUser.profile.given_name , lastName: currentUser.profile.family_name, email: currentUser.userName});\n dispatch(currentTeamLoaded(newTeam));\n clearMessage(dispatch);\n }\n}\n","import {teamsLoaded,TEAMS_LOADED} from '../../actions/teams/load-teams';\nimport { ActionType } from 'typesafe-actions';\n\nexport type TeamsLoadedAction = ActionType;\n\nexport default(state = {}, action: TeamsLoadedAction) => {\n switch(action.type){\n case TEAMS_LOADED:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { Listing } from '../../../types/listing/listing';\nimport { State } from '../../../types/state';\nimport { push } from 'connected-react-router';\n\n// constants\nexport const SELECT_MIQ_RECORD_ADD_EDIT = 'SELECT_MIQ_RECORD_ADD_EDIT';\n\n// types\nexport type SetMIQAddEditAction = ActionPayload & {\n type: typeof SELECT_MIQ_RECORD_ADD_EDIT\n};\n\nexport const setMIQAddEditRecord = (payload:Listing | null) : SetMIQAddEditAction => ({\n type: SELECT_MIQ_RECORD_ADD_EDIT,\n payload\n});\n\nexport const setPendingMIQAddEditRecord = (record:Listing) => (dispatch: Function, getState: () => State) => { \n // record the selection in memory\n dispatch(setMIQAddEditRecord(record));\n\n // redirect the user to the appropriate page using connected-react-router\n if(record.id > 0){ // edit path\n dispatch(push('/le/' + record.id));\n }else{ // create path\n dispatch(push('/le'));\n }\n}","import { ActionPayload } from '../../../types/common/action';\nimport { Listing } from '../../../types/listing/listing';\nimport { State } from '../../../types/state';\n\n// constants\nexport const SET_MIQ_SPACES = 'SET_MIQ_SPACES';\n\n// types\nexport type SetMiqSpaces = ActionPayload & {\n type: typeof SET_MIQ_SPACES\n}\n\nexport const setMiqSpaces = (payload:any[]) : SetMiqSpaces => ({\n type: SET_MIQ_SPACES,\n payload\n});\n\nexport const setMiqSpacesResult = (spaces:any, selected: boolean) => (dispatch: Function, getState: () => State) => {\n const currentSpaces = getState().miq.spaces;\n // determine whether to delete/add\n if (getState().miq.spaces.length > 0){\n getState().miq.spaces.forEach((space, index) => {\n if (space && space.miqId && selected && space.miqId !== spaces.miqId){\n currentSpaces.push(spaces)\n } else if (space && space.miqId && !selected && space.miqId === spaces.miqId){\n delete currentSpaces[index];\n }\n })\n } else if (selected) {\n currentSpaces.push(spaces)\n }\n\n // remove empty elements\n const filtered = currentSpaces.filter(el => {\n return el != null;\n });\n\n dispatch(setMiqSpaces(filtered));\n}","import {combineReducers} from 'redux';\nimport miqSearchSelection from './miq-search-selection';\nimport miqCurrentRecords from './miq-current-records';\nimport miqSetPendingRecord from './miq-pending-add-edit-record';\nimport miqStatus from './miq-status';\nimport miqExportMessage from './miq-export-message-reducer';\nimport miqRedirect from './miq-redirect-reducer';\nimport miqSpaces from './miq-spaces-reducer';\n\nexport default combineReducers({\n selectedSearchOption: miqSearchSelection,\n currentRecords: miqCurrentRecords,\n pendingAddEditRecord: miqSetPendingRecord,\n exportMessage: miqExportMessage,\n status: miqStatus,\n redirect: miqRedirect,\n spaces: miqSpaces\n});","import { setMIQSearchResult, SET_MIQ_SEARCH_RESULT } from '../../actions/miq/set-miq-search-result';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMiQSelectedProperty = ActionType;\n\nexport default(state = {}, action: SetMiQSelectedProperty) => {\n switch(action.type){\n case SET_MIQ_SEARCH_RESULT:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setMiqCurrentRecordsResult, SET_MIQ_CURRENT_RECORDS_RESULT } from '../../actions/miq/set-miq-current-records-result';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQCurrentRecords = ActionType;\n\nexport default(state = {}, action: SetMIQCurrentRecords) => {\n switch(action.type){\n case SET_MIQ_CURRENT_RECORDS_RESULT:\n return [...action.payload];\n break;\n\n default:\n return state;\n }\n}","import { setMIQAddEditRecord, SELECT_MIQ_RECORD_ADD_EDIT } from '../../actions/miq/select-miq-record-add-edit';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQAddEditRecord = ActionType;\n\nexport default(state = {}, action: SetMIQAddEditRecord) => {\n switch(action.type){\n case SELECT_MIQ_RECORD_ADD_EDIT:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setMIQExportMessage, SET_MIQ_EXPORT_MESSAGE } from '../../actions/miq/set-miq-export-message';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQExportMessageAction = ActionType;\n\nexport default(state = {}, action: SetMIQExportMessageAction) => {\n switch(action.type){\n case SET_MIQ_EXPORT_MESSAGE:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setMIQStatus, SET_MIQ_STATUS } from '../../actions/miq/set-miq-status';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQStatusAction = ActionType;\n\nexport default(state = {}, action: SetMIQStatusAction) => {\n switch(action.type){\n case SET_MIQ_STATUS:\n return Object.assign({},action.payload);\n break;\n\n default:\n return state;\n }\n}","import { dispatchMIQRedirect, SET_MIQ_REDIRECT } from '../../actions/miq/set-miq-redirect';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQRedirect = ActionType;\n\nexport default(state = {}, action: SetMIQRedirect) => {\n switch(action.type){\n case SET_MIQ_REDIRECT:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { ActionPayload } from \"../../../types/common/action\";\nimport { State } from \"../../../types/state\";\nimport { checkEnvironment } from \"../../../utils/helpers/check-environment\";\n\nexport const SET_MIQ_REDIRECT = 'SET_MIQ_REDIRECT ';\n\n// types\nexport type SetMIQRedirectAction = ActionPayload & {\n type: typeof SET_MIQ_REDIRECT\n};\n\nexport const dispatchMIQRedirect = (payload:string | undefined) : SetMIQRedirectAction => ({\n type: SET_MIQ_REDIRECT,\n payload\n});\n\nexport const setMIQRedirect = (redirect:string) => (dispatch: Function, getState: () => State) => { \n if(!redirect || redirect.trim().length === 0){\n const config = getState().system.configDetails.config;\n if(checkEnvironment(config, {localhost: true, dev: false, uat: false, prod: false})){\n redirect = \"https://marketiq-uat.cbre.com/\";\n }else if(checkEnvironment(config, {localhost: false, dev: true, uat: false, prod: false})){\n redirect = \"https://marketiq-dev.cbre.com/\";\n }else if(checkEnvironment(config, {localhost: false, dev: false, uat: true, prod: false})){\n redirect = \"https://marketiq-uat.cbre.com/\";\n }else{\n redirect = \"https://marketiq.cbre.com/\";\n }\n }\n // record the selection in memory\n dispatch(dispatchMIQRedirect(redirect));\n}","import { setMiqSpaces, SET_MIQ_SPACES } from '../../actions/miq/set-miq-spaces'\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetMIQSpaces = ActionType;\n\nexport default(state = {}, action: SetMIQSpaces) => {\n switch(action.type){\n case SET_MIQ_SPACES:\n return action.payload;\n break;\n\n default:\n return state;\n }\n}","import { State } from '../../../types/state';\n\nexport const configDetailsSelector = (state:State) => {\n return state.system.configDetails;\n}","import { createSelector } from 'reselect';\nimport { configDetailsSelector } from './config-details-selector';\nimport { ConfigDetails } from '../../../types/config/config';\n\nexport const configSelector = createSelector(\n configDetailsSelector, (configDetails:ConfigDetails) => {\n return configDetails.config;\n});","import { postData } from '../../../api/glAxios';\nimport { pullSingleListing } from '../../../api/glQueries';\nimport { ActionPayload } from '../../../types/common/action';\nimport { InsightsRecord } from '../../../types/insights/insights-record';\nimport { Listing } from '../../../types/listing/listing';\nimport { State, MainMessaging, MainMessageType } from '../../../types/state';\nimport { configSelector } from '../../selectors/system/config-selector';\nimport { massage } from '../listingEntry/load-current-listing';\n\n// constants\nexport const SET_INSIGHTS_LOADING = 'SET_INSIGHTS_LOADING';\nexport const SET_CURRENT_INSIGHTS_RECORD = 'SET_CURRENT_INSIGHTS_RECORD';\n\n// types\nexport type SetInsightsLoadingAction = ActionPayload & {\n type: typeof SET_INSIGHTS_LOADING\n};\n\nexport type SetCurrentInsightsRecord = ActionPayload & {\n type: typeof SET_CURRENT_INSIGHTS_RECORD\n};\n\n// functions\nexport const setInsightsLoading = (payload:MainMessaging) : SetInsightsLoadingAction => ({\n type: SET_INSIGHTS_LOADING,\n payload\n});\n\nexport const setCurrentInsightsRecord = (payload:InsightsRecord | undefined) => ({\n type: SET_CURRENT_INSIGHTS_RECORD,\n payload\n});\n\nexport const loadCurrentInsightsRecord = (id:number) => (dispatch: Function, getState: () => State) => { \n const config = configSelector(getState());\n \n // set loading indicator for insights\n dispatch(setInsightsLoading({ show: true, type: MainMessageType.LOADING, message: \"Loading Analytics...\" }));\n\n // load the insights record from our API\n // note: currently, we are just loading the existing listing and then wrapping with the InsightsRecord object,\n // but when we create the back end API we will switch this call over to the new API call\n\n postData(pullSingleListing(id)).then(result => {\n if (result.data && result.data.listing){\n const listing:Listing = massage(result.data.listing, config);\n const record:InsightsRecord = {\n 'listing': listing\n };\n dispatch(setInsightsLoading({show: false}));\n dispatch(setCurrentInsightsRecord(record));\n }else{\n dispatch(setInsightsLoading({show: false}));\n dispatch(setCurrentInsightsRecord(undefined));\n dispatch(setInsightsLoading({ show: true, type: MainMessageType.ERROR, message: \"Unauthorized Access\", home: true }));\n }\n });\n}","import {combineReducers} from 'redux';\nimport insightsLoadingReducer from './insights-loading-reducer';\nimport insightsCurrentReducer from './current-insights-reducer';\n\nexport default combineReducers({\n loading: insightsLoadingReducer,\n current: insightsCurrentReducer\n});","import { setInsightsLoading, SET_INSIGHTS_LOADING } from '../../actions/insights/load-insights-action';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetInsightsLoading = ActionType;\n\nexport default(state = {}, action: SetInsightsLoading) => {\n switch(action.type){\n case SET_INSIGHTS_LOADING:\n return Object.assign({}, action.payload);\n break;\n\n default:\n return state;\n }\n}","import { setCurrentInsightsRecord, SET_CURRENT_INSIGHTS_RECORD } from '../../actions/insights/load-insights-action';\nimport { ActionType } from 'typesafe-actions';\n\nexport type SetCurrentInsightsRecord = ActionType;\n\nexport default(state = {}, action: SetCurrentInsightsRecord) => {\n switch(action.type){\n case SET_CURRENT_INSIGHTS_RECORD:\n return Object.assign({}, action.payload);\n break;\n\n default:\n return state;\n }\n}","import pagedListings from './pagedListings';\nimport entry from './listingEntry';\nimport mapping from './mapping';\nimport system from './system';\nimport contacts from './contacts';\nimport teams from './teams';\nimport miq from './miq';\nimport insights from './insights';\nimport featureFlagsReducer from './featureFlags/feature-flags-reducer';\n\nexport default {\n pagedListings,\n entry,\n mapping,\n system,\n contacts,\n teams,\n miq,\n insights,\n featureFlags: featureFlagsReducer\n}","import { updateFeatureFlags, UPDATE_FEATURE_FLAGS} from '../../actions/featureFlags/update-feature-flags';\nimport { ActionType } from 'typesafe-actions';\n\nexport type UpdateFeatureFlagAction = ActionType;\n\nexport default(state = {}, action: UpdateFeatureFlagAction) => {\n switch(action.type){\n case UPDATE_FEATURE_FLAGS:\n return {...state,...action.payload}\n break;\n\n default:\n return state;\n }\n}","import { createStore, compose, applyMiddleware, combineReducers } from 'redux';\nimport { connectRouter, routerMiddleware } from 'connected-react-router';\nimport thunkMiddleware from 'redux-thunk';\nimport { createLogger } from 'redux-logger';\nimport { identity } from 'ramda'\nimport { History } from 'history';\nimport reducers from '../redux/reducers'\n\nconst createReducers = (history: History) =>\n combineReducers({\n router: connectRouter(history),\n ...reducers\n});\n\n/* istanbul ignore next */\nconst allowDebugging =\n process.env.NODE_ENV !== 'production' ||\n (localStorage && localStorage.getItem('reactDebug') === 'yes');\n \nconst buildStore = (initialState: any, history: History) => {\n\n /* eslint-disable no-underscore-dangle */\n const devToolsExt =\n allowDebugging && window.devToolsExtension\n ? window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\n : identity;\n\n const middleWare = false\n ? applyMiddleware(routerMiddleware(history), thunkMiddleware, createLogger())\n : applyMiddleware(routerMiddleware(history), thunkMiddleware);\n\n const store = createStore(\n createReducers(history),\n initialState as any,\n compose(\n middleWare,\n devToolsExt\n )\n );\n\n return store;\n};\nexport default buildStore;","export const RoutePaths = {\n listings: '/',\n listingEntry: '/le/:id',\n createListing: '/le',\n teams: '/myteams',\n admin: '/admin',\n miqImport: '/miq/import',\n miqExport: '/miq/create/:id',\n insights: '/insights/:id',\n insightsRoot: '/insights',\n brokerImageUpload: '/brokerimageupload',\n userAccess:\"/userAccess\"\n}; ","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\ninterface StyledButtonProps {\n buttonStyle?: string,\n primary?: boolean,\n styledSpan?: boolean,\n height?: string,\n backgroundColor?: string,\n borderRadius?: string,\n theme: any\n}\n\ntype Props = StyledButtonProps | any;\n\nconst StyledButton: FC = (props) => {\n\n const {buttonStyle, primary} = props;\n\n const onKeyPress = (e:KeyboardEvent) => {\n const keyCode = e.charCode || e.which;\n if(keyCode === 13 || keyCode === 32){ // enter or spacebar\n e.preventDefault();\n document.getElementsByName(props.name)['0'].click();\n }\n }\n \n return (\n (props.styledSpan) ? : \n ); \n};\n\nconst btnBackground1 = css` \n${props => (props.theme && props.theme.colors && props.theme.colors.primaryAccentLght ? props.theme.colors.primaryAccentLght : '#29BC9C')}; \n`\nconst btnBackground1primary = css` \n${props => (props.theme && props.theme.colors && props.theme.colors.secondaryAccent ? props.theme.colors.secondaryAccent : '#00B2DD')}; \n`\nconst btnBorderStyle2 = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#00B2DD')}; \n`\n\nconst style1 = css` \nbackground-color: ${(props: StyledButtonProps) => (props.primary ? btnBackground1primary : props.backgroundColor ? props.backgroundColor : btnBackground1)}; \ncolor: #ffffff; \nborder:0px;\npadding: 0.9em 1.7em;\n`\nconst style2 = css` \ncolor: ${props => (props.theme.colors ? '#006A4D' : '#00B2DD')}; \nborder: ${btnBorderStyle2};\nbackground: inherit;\npadding: 0.6em 1.5em;\n`\nconst BaseButton = styled.button`\n ${(inputProps: StyledButtonProps) => (inputProps.buttonStyle === '2') ? style2 : style1}\n height: ${(inputProps: StyledButtonProps) => inputProps.height ? inputProps.height : \"auto\"}\n cursor: pointer;\n border-radius: ${(inputProps: StyledButtonProps) => inputProps.borderRadius ? inputProps.borderRadius : \"20px\"};\n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: inline-block;\n flex-grow: 1 \n position: relative;\n text-align: middle;\n text-transform: capitalize;\n min-width:8em;\n font-family: ${props => (props.theme && props.theme.font && props.theme.font.primary ? props.theme.font.bold : 'inherit')}; \n font-size: 12px;\n text-transform:uppercase;\n &:hover {\n top:1px;\n }\n :focus {\n outline: none;\n border-color: ${props => props.theme && props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n`;\n\nconst BaseSpan = styled.span`\n ${(inputProps: StyledButtonProps) => (inputProps.buttonStyle === '2') ? style2 : style1}\n cursor: pointer;\n border-radius: 20px;\n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: inline-block;\n flex-grow: 1\n position: relative;\n text-align: middle;\n text-transform: capitalize;\n min-width:8em;\n font-family: ${props => (props.theme && props.theme.font && props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 12px;\n text-transform:uppercase;\n &:hover {\n top:1px;\n }\n :focus {\n outline: none;\n border-color: ${props => props.theme && props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n`;\n\nexport default StyledButton;","import { State } from '../../../types/state';\n\nexport const regionIdSelector = (state:State) => {\n return state.mapping.selectedCountry;\n}","import React, { FC } from 'react';\nimport StyledButton from '../styled-button/styled-button';\nimport styled from 'styled-components';\nimport { postBulkUploadFile } from '../../api/glAxios'\nimport UploadIcon from '../../assets/images/png/excelUploadIcon.png';\nimport { setAlertMessage } from '../../redux/actions/system/set-alert-message';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { AlertMessagingType, MainMessageType } from '../../types/state';\nimport { setMainMessage, clearMessage } from '../../redux/actions/system/set-main-message';\nimport { setConfirmDialog } from '../../redux/actions/system/set-confirm-dialog';\nimport { resetPagedListings } from '../../redux/actions/pagedListings/load-listings-paged';\nimport { regionIdSelector } from '../../redux/selectors/system/config-region-id-selector';\nimport { defaultRegionID } from '../../api/glQueries';\n\n// TODO: We really should not have axios logic within the component - we should try to ensure that this is in a reusable action/thunk for consistency\ninterface Props {\n sendAnalytics : () => void;\n}\n\nconst BulkUploadButton: FC = (props: Props) => {\n const bulkUploadInputElement = React.createRef();\n const dispatch = useDispatch();\n const regionId: string|undefined = useSelector(regionIdSelector) || defaultRegionID;\n const uploadFile = (files: FileList | null) => {\n\n\n if (!files) { return; };\n\n // TODO: Update redux state for loading component\n if (files[0]) {\n const acceptedFileTypes = [\".xlsx\", \".xls\"];\n const fileType = files[0].name.substr(files[0].name.lastIndexOf('.'), files[0].name.length);\n let fileTypeAccepted = false;\n for (const acceptedFileType of acceptedFileTypes) {\n if (fileType.toLowerCase() === acceptedFileType.replace(/\\s/g, '').toLowerCase()) {\n fileTypeAccepted = true;\n break;\n }\n }\n if (fileTypeAccepted) {\n // Post file to server\n // set loading message\n dispatch(setMainMessage({ show: true, type: MainMessageType.LOADING, message: \"Uploading Listings...\" }));\n postBulkUploadFile(files[0], regionId, (response: any) => {\n if (response.count) {\n clearMessage(dispatch);\n // reset the listings paging\n resetPagedListings(dispatch, true); \n\n const successMsg: string = response.count + \" record(s) imported successfully from \" + response.fileName;\n dispatch(setAlertMessage({ show: true, message: successMsg, allowClose: true, type: AlertMessagingType.SUCCESS }));\n }\n else {\n clearMessage(dispatch);\n }\n\n if (response.errors && response.errors.length > 0) {\n dispatch(\n setConfirmDialog(\n {\n show: true,\n title: \"Bulk Upload Error\",\n message: response.errors.join(\"\\n\\n\"),\n cancelTxt: \"Close\",\n showConfirmButton: false,\n showCopyButton: false,\n scrollable: true\n }));\n } else if (!response.count) {\n dispatch(setAlertMessage({ show: true, message: \"FAIL: An error occurred processing the file. Please ensure that your file matches the bulk upload template.\", allowClose: true, type: AlertMessagingType.ERROR }));\n }\n\n });\n\n }\n else {\n dispatch(setAlertMessage({ show: true, message: \"FAIL: File Type Incorrect - Please upload correct file format (Excel Spreadsheet).\", allowClose: true, type: AlertMessagingType.ERROR }));\n }\n\n }\n }\n\n const fireAnalytics = () => {\n props.sendAnalytics();\n }\n\n const clickUpload = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (bulkUploadInputElement.current != null) {\n bulkUploadInputElement.current.click();\n }\n }\n\n return (\n \n \n \n \n uploadFile(x.target.files)}\n onClick={(x:any) => {\n fireAnalytics();\n x.target.value = null;\n x.stopPropagation();\n }}\n accept=\".xlsx,.xls\" />\n \n \n );\n};\n\nexport default BulkUploadButton;\n\nconst BulkUploadForm = styled.form`\n float: right;\n margin-right: 8px;\n button {\n padding-left:42px;\n position:relative;\n label {cursor:pointer}\n img {\n height: 20px;\n width: 20px !important;\n position: absolute;\n left: 14px;\n top: 8px;\n }\n}\n`;\n\nconst BulkUploadInput = styled.input`\n display: none;\n`;","import { State } from '../../../types/state';\n\nexport const searchTextSelector = (state:State) => {\n return state.pagedListings.searchText;\n}","import {createContext} from 'react';\n\n// form context using context API to pass around functions and any other values we need\nexport const GLAnalyticsContext = createContext({\n fireEvent: (...eventData: Array) => {\n // fire some event\n },\n fireTracking: () => {\n // fire pageview\n }\n});","import { State } from '../../../types/state';\n\nexport const featureFlagSelector = (state:State) => {\n return state.featureFlags;\n}","import { State } from '../../../types/state';\n\nexport const allContactsSelector = (state:State) => {\n return state.contacts.allContacts;\n}","import React, { FC, useContext, useState, useEffect, useRef } from 'react';\nimport { Link } from 'react-router-dom';\nimport StyledButton from '../../components/styled-button/styled-button';\nimport styled from 'styled-components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSearch } from '@fortawesome/free-solid-svg-icons';\nimport BulkUploadButton from '../../components/bulk-upload-button/bulk-upload-button';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { searchTextSelector } from '../../redux/selectors/pagedListings/search-text-selector'\nimport { searchChanged } from '../../redux/actions/pagedListings/update-search-text';\nimport { GLAnalyticsContext } from '../../components/analytics/gl-analytics-context';\nimport debounce from 'debounce';\nimport { featureFlagSelector } from '../../redux/selectors/featureFlags/feature-flag-selector';\nimport { FeatureFlags, MainMessageType, State } from '../../types/state';\nimport { axiosDownloadReport } from '../../api/glAxios';\nimport { defaultRegionID } from '../../api/glQueries';\nimport { regionIdSelector } from '../../redux/selectors/system/config-region-id-selector'\nimport { clearMessage, setMainMessage } from '../../redux/actions/system/set-main-message';\nimport { configSelector } from '../../redux/selectors/system/config-selector';\nimport { allContactsSelector } from '../../redux/selectors/contacts/all-contacts-selector';\nimport { Contact } from '../../types/listing/contact';\n\ninterface Props {\n showSearch: boolean;\n}\n\nconst ListingHeader: FC = (props) => {\n\n const { showSearch } = props;\n\n const dispatch: any = useDispatch();\n const analytics = useContext(GLAnalyticsContext);\n const searchText: string = useSelector(searchTextSelector);\n const regionId: string | undefined = useSelector(regionIdSelector);\n const config = useSelector(configSelector);\n const brokers = useSelector(allContactsSelector);\n const [value, setValue] = useState('');\n const inputRef = useRef(null);\n const [showDropdown, setShowDropdown] = useState(false);\n const [searchBrokerOption, setSearchBrokerOption] = useState(false);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n // feature flags\n const featureFlags: FeatureFlags = useSelector(featureFlagSelector);\n const miqImport: boolean = featureFlags.miqImportFeatureFlag && !config.featureFlags.hideMiqImportFeatureFlag;\n const bulkUpload: boolean = config.featureFlags.hideBulkUploadFeatureFlag && config.featureFlags.hideBulkUploadFeatureFlag;\n const searchBroker: boolean = config.featureFlags && config.featureFlags.searchBrokerFeatureFlag !== false;\n\n const handleInput = (e: any) => {\n setValue(e.target.value);\n if (e.target.value) {\n setHighlightedIndex(-1);\n setShowDropdown(true);\n } else {\n setShowDropdown(false);\n }\n };\n\n useEffect(() => {\n const hideDropdown = () => {\n setShowDropdown(false);\n };\n\n window.addEventListener('scroll', hideDropdown);\n \n return () => {\n window.removeEventListener('scroll', hideDropdown);\n };\n }, []);\n\n useEffect(() => {\n if (value === \"\") {\n searchProperty(\"\");\n }\n }, [value]);\n\n const handleInputSearch = (e: any) => {\n if (e.key === 'Enter' && !searchBrokerOption) {\n searchProperty(value);\n }\n };\n\n const searchProperty = (keyword: string) =>\n {\n dispatchSearch(keyword);\n setShowDropdown(false);\n }\n\n const handleOptionClick = (e: any) => {\n setValue(e.email);\n if (inputRef.current) {\n inputRef.current.value = e.email;\n }\n searchProperty(e.email);\n };\n\n const matchingBrokers: Contact[] | false = brokers && brokers.length > 0 && brokers.filter(broker =>\n (broker.email != null && broker.email.toLowerCase().includes(value.replace(\" \", \".\").toLowerCase()))\n || (broker.firstName != null && broker.firstName.toLowerCase().includes(value.toLowerCase()))\n || (broker.lastName != null && broker.lastName.toLowerCase().includes(value.toLowerCase()))\n ).slice(0, 6);\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (Array.isArray(matchingBrokers)) {\n setHighlightedIndex((prev) => (prev + 1) % matchingBrokers.length);\n setSearchBrokerOption(true);\n }\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n if (Array.isArray(matchingBrokers)) {\n setHighlightedIndex((prev) => (prev - 1 + matchingBrokers.length) % matchingBrokers.length);\n setSearchBrokerOption(true);\n }\n }\n if (event.key === 'Enter' && searchBrokerOption) {\n event.preventDefault();\n if (Array.isArray(matchingBrokers) && highlightedIndex >= 0 && highlightedIndex < matchingBrokers.length) {\n handleOptionClick(matchingBrokers[highlightedIndex]);\n setSearchBrokerOption(false);\n }\n }\n }\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [matchingBrokers && matchingBrokers.length, searchBrokerOption, highlightedIndex]);\n\n const dispatchSearch = debounce((keyword: any) => setTimeout(() => dispatch(searchChanged(keyword)), 400), 400);\n\n const downloadListingsReport = () => {\n dispatch(setMainMessage({ show: true, type: MainMessageType.LOADING, message: (config && config.report && config.report.loadingText) || \"Generating Report...\" }));\n axiosDownloadReport(`/api/report/download/${regionId || defaultRegionID}`)\n .then((response: any) => {\n clearMessage(dispatch);\n const url = window.URL.createObjectURL(new Blob([response]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', (config && config.report && config.report.exportFileName) || 'DEReport.xlsx');\n document.body.appendChild(link);\n link.click();\n });\n }\n\n const highlightStyles = {\n backgroundColor: '#D1FFBD',\n };\n\n return (\n \n \n My Listings\n analytics.fireEvent('searchClick', 'click', 'Property searchbar click')} placeholder=\"Search by Property Address or Broker Contact...\" defaultValue={searchText} ref={inputRef} onChange={showSearch ? handleInput : () => (null)} onKeyDown={handleInputSearch} />\n searchProperty(value)}>\n {searchBroker && showDropdown && matchingBrokers && matchingBrokers.length > 0 && (\n \n \n Broker Contact - click to select:\n \n {matchingBrokers && matchingBrokers.length > 0 && matchingBrokers.map((broker: Contact, index: number) => (\n handleOptionClick(broker)}\n style={index === highlightedIndex ? highlightStyles : {}}\n onMouseEnter={() => setHighlightedIndex(index)} \n >\n {broker.firstName} {broker.lastName} | {broker.email}\n \n ))}\n \n )}\n \n analytics.fireEvent('createListingClick', 'click', 'Create listing button click', 'beacon')} to=\"/le\">Create Listing\n {miqImport && analytics.fireEvent('importFromMIQClick', 'click', 'Import From MIQ button click', 'beacon')} to=\"/miq/import\">Import from MIQ}\n {!bulkUpload && analytics.fireEvent('bulkUploadClick', 'click', 'Bulk upload button click')} />}\n {(config && config.report && config.report.downloadText) || 'Listings Report'}\n \n \n );\n};\n\nexport default ListingHeader;\n\nconst StyledListingsHeader = styled.div`\n background: #006A4D;\n min-height: 37px;\n max-height: 50px;\n padding:12px 0;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n position:sticky;\n top:0;\n z-index:100;\n box-shadow: 0 4px 6px rgba(204,204,204,0.12), 0 2px 4px rgba(204,204,204,0.24);\n`;\n\nconst StyledUl = styled.ul`\n list-style-type: none;\n display: block;\n margin-left: -10px;\n padding-left: 0px;\n position: absolute;\n top: 38px;\n width: 370px;\n border: 1px solid #cccccc;\n boxShadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n`;\n\nconst StyledInnerContainer = styled.div`\n max-width: ${props => props.theme.container.maxWidth};\n width: ${props => props.theme.container.width};\n margin:0 auto;\n`;\n\nconst StyledTitle = styled.h1`\n display: inline-block;\n color:white;\n float:left;\n text-transform:uppercase;\n font-size: 1.3em;\n font-family: ${props => (props.theme.font ? props.theme.font.bold : 'sans-serif')};\n padding:0px;\n`;\n\nconst StyledLinkHeader = styled.li`\n background-color: #00a657; \n padding: 5px;\n color: #ffffff;\n font-weight: bold;\n border-bottom: solid 1px lightgray; \n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StyledLink = styled.li`\n background-color: white; \n padding: 10px;\n cursor: pointer;\n border-bottom: solid 1px lightgray; \n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst StyledSearchInput = styled.input`\n float:left;\n border: 0;\n padding: 0;\n color: #666666; \n min-width: 330px;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n ::placeholder {color:#cccccc;}\n font-size: 14px;\n text-align: left;\n text-decoration: none;\n vertical-align: text-bottom;\n display:table-cell;\n width:auto;\n &:focus {\n outline:none;\n }\n`;\n\nconst StyledSearchBox = styled.div`\n background-color: #ffffff !important;\n padding:10px 12px 10px 16px;\n display:table;\n border-radius: 20px;\n float: left;\n input:disabled {\n background: #ffffff !important;\n }\n`;\n\nconst StyledSearchIconBtn = styled.div`\n color: #1AA083;\n cursor:pointer;\n display:inline-block;\n margin-top:-5px;\n padding-left: 10px;\n padding-right: 10px;\n`;","import React, { FC, useState, useEffect, useRef, useCallback, useContext } from 'react';\nimport styled from 'styled-components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheck } from '@fortawesome/free-solid-svg-icons';\nimport { GLAnalyticsContext } from '../../../components/analytics/gl-analytics-context';\n\n// images\nimport FilterIcon from '../../../assets/images/png/filterIcon.png';\nimport { FilterSetup } from '../../../types/listing/filters';\n\ninterface Props {\n setups: FilterSetup[],\n changeFilters: (filters: FilterSetup[], showMenu: boolean) => void\n}\n\nconst ListingsFilter: FC = (props) => {\n\n const { setups, changeFilters } = props;\n const analytics = useContext(GLAnalyticsContext);\n\n const [showMenu, setShowMenu] = useState(false);\n const [, updateState] = useState();\n const forceUpdate = useCallback(() => updateState({}), []);\n \n let filterInfoDisplay = \"\";\n setups.forEach((setting: FilterSetup) => {\n if (setting.selected) {\n filterInfoDisplay = filterInfoDisplay + ' | ' + setting.label;\n }\n });\n\n const node = useRef(document.createElement(\"div\"));\n\n const updateFilterMenu = () => {\n setShowMenu(!showMenu);\n setTimeout(() => { forceUpdate() }, 1);\n }\n\n const handleClick = (e: any) => {\n if (node.current.contains(e.target)) {\n return;\n }\n setShowMenu(false);\n };\n\n const selectFilter = (filter: FilterSetup, index: number) => {\n \n if(filter.label){\n analytics.fireEvent('filter', 'click', filter.label);\n }\n \n const changedFilters: FilterSetup[] = [...setups];\n changedFilters[0].selected = false; \n\n // if the filter setup calls for a \"clear all\", then clear out all other filters (i.e, View All)\n if(filter.clearAll){\n changedFilters.forEach((changedFilter:FilterSetup) => {\n changedFilter.selected = false;\n });\n changedFilters[index].selected = true;\n }else if(filter.allowMultiple === false){\n // if we don't allow multiple of this \"category\", turn off all others in this \"category\"\n changedFilters.forEach((changedFilter:FilterSetup) => {\n if(changedFilter.category === filter.category){\n changedFilter.selected = false;\n }\n });\n changedFilters[index].selected = true;\n }else if(filter.allowMultiple === true){\n changedFilters[index].selected = !changedFilters[index].selected;\n }\n changeFilters(changedFilters, showMenu);\n }\n\n useEffect(() => {\n document.addEventListener(\"mousedown\", handleClick);\n return () => {\n document.removeEventListener(\"mousedown\", handleClick);\n }\n }, []);\n\n return (\n
\n {filterInfoDisplay}\n {showMenu && \n {setups.map((setup: FilterSetup, index: number) => {\n if (setup.divider === true) {\n return
\n } else {\n return { selectFilter(setup, index) }} key={setup.label ? setup.label + new Date().getTime() : 'key_'+ index}>\n {(setup.selected) ? : ''}
{setup.label}
\n
\n }\n })}\n
}\n
\n );\n};\n\nexport default ListingsFilter;\n\nconst StyledListingsFilterButton = styled.div`\n display: inline-block;\n padding:8px;\n background-color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue')};\n cursor:pointer;\n color: #ffffff; \n`;\n\nconst StyledCheckSpace = styled.div`\n width:25px;\n`;\n\n\nconst StyledListingsFilterMenu = styled.div`\n background-color: white;\n padding:10px;\n color:#00B2DD;\n border: 1px solid #00B2DD;\n z-index:15;\n position:absolute;\n min-width:200px;\n span {\n color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue')};\n cursor:pointer;\n font-size: 14px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n line-height: 20px; \n position:relative;\n transition:.2s ease all;\n padding: 5px 10px 5px 5px;\n margin: 4px 0;\n transition:.2s ease all;\n }\n span:hover {\n background-color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue')};\n color: white;\n }\n`;","import React, { FC, useState } from 'react';\nimport { css } from 'styled-components';\nimport { RingLoader, ScaleLoader, HashLoader } from 'react-spinners';\n\ninterface LoaderProps {\n isLoading?: boolean,\n color?: string,\n css?: any,\n size?: number,\n loaderType?: string,\n width?: number,\n height?: number,\n margin?: string\n}\n\nconst Loader: FC = (props) => {\n const [loading, setLoading] = useState(true)\n\n // default to RingLoader\n return (\n
\n {(props.loaderType) ? <> :\n \n }\n {(props.loaderType === 'RingLoader') &&\n }\n {(props.loaderType === 'ScaleLoader') &&\n }\n {(props.loaderType === 'HashLoader') &&\n }\n
\n )\n}\n\nconst override = css`\n margin: 0 auto;\n text-align:center;\n`;\n\nexport default Loader;","import React, { FC, useCallback, useState } from 'react';\nimport styled from 'styled-components';\nimport { useDropzone } from 'react-dropzone';\nimport Loader from '../loader/loader';\n\nexport enum ImageAvatarSize {\n SMALL = '40px',\n MEDIUM = '65px',\n LARGE = '125px'\n}\n\nexport enum PlaceholderSize {\n SMALL = '12px',\n MEDIUM = '20px',\n LARGE = '30px'\n}\n\nexport interface ImageAvatarProps {\n imageURL?: string,\n placeholder?: string,\n allowUpload?: boolean,\n uploadPhotoLabel?: string,\n avatarSize: ImageAvatarSize,\n placeholderSize: PlaceholderSize,\n uploadErrors?:string,\n uploadFile?: (file: any) => void,\n clearErrors?: () => void\n}\n\ninterface AvatarSizeProps {\n avatarSize: string\n}\n\ninterface PlaceholderSizeProps {\n placeholderSize: string,\n allowUpload?: boolean\n}\n\nconst ImageAvatar: FC = (props) => {\n\n const { imageURL, placeholder, allowUpload, uploadPhotoLabel, uploadFile, avatarSize, \n placeholderSize, uploadErrors, clearErrors } = props;\n const [ pending, setPending ] = useState(false);\n const [ errors, setErrors ] = useState(uploadErrors ? uploadErrors : \"\");\n const accepted:string = \".png,.jpg,.jpeg\";\n const acceptedFileTypes:string[] = [\".png\",\".jpg\",\".jpeg\"];\n // file upload limit size - currently 5mb\n const uploadLimit: number = 5000000;\n\n // handles file selection\n const onDrop = useCallback((acceptedFiles:any[]) => {\n // if more than one accepted files, only take the first one (not allowing multiples for the avatar)\n let file:any;\n if(acceptedFiles.length > 0){\n file = acceptedFiles[0];\n }\n // check the file and make sure it's acceptable\n const fileExtension:string = file.name.substr(file.name.lastIndexOf('.'), file.name.length).toLowerCase();\n\n if(file.size > uploadLimit){\n setErrors(\"File size is too large.\");\n }\n else if(acceptedFileTypes.indexOf(fileExtension) === -1){\n setErrors(\"Invalid file type (must be \" + accepted + \")\");\n }\n else if(file && uploadFile){\n // perform the upload using the callback sent to the component\n setPending(true);\n uploadFile(file);\n }\n }, []);\n\n const tryAgain = (e:React.MouseEvent) => {\n e.preventDefault();\n if(clearErrors){\n clearErrors();\n }\n }\n\n const { getRootProps, getInputProps } = useDropzone({ onDrop, disabled: false }) // dropzone hooks\n let inputClicked: boolean = false;\n\n const showUploadErrors:boolean = errors && errors.length > 0 ? true : false;\n const showPending:boolean = !showUploadErrors && pending ? true : false;\n const showPlaceholder:boolean = !showUploadErrors && !showPending && !allowUpload ? true : false;\n const showAvatar:boolean = !showUploadErrors && !showPending && !showPlaceholder && allowUpload ? true : false;\n\n return (\n \n\n {showUploadErrors && \n <>\n \n !\n \n {uploadErrors}\n Try Again\n \n }\n\n { showPending && \n \n \n \n \n \n }\n \n { showPlaceholder &&\n \n {(!imageURL || imageURL.length === 0) && placeholder && {placeholder}}\n {imageURL && imageURL.length > 0 && }\n \n }\n\n { showAvatar && \n
!inputClicked ? event.stopPropagation() : ''\n })}>\n \n inputClicked = true}>\n {(!imageURL || imageURL.length === 0) && placeholder && {placeholder}}\n {imageURL && imageURL.length > 0 && }\n \n \n \n {uploadPhotoLabel ? uploadPhotoLabel : 'Add Photo'}\n Recommended square headshot at 125 x 125 (px). JPEG only\n
\n \n }\n
\n );\n};\n\nconst BaseContainer = styled.div`\n .file-drop { outline:0; border:0; } \n input:focus { outline:0; }\n .file-drop-target {\n :focus {\n outline: 0;\n border: 0; \n }\n }\n`;\n\nconst LoaderContainer = styled.div`\n padding-top: 15px;\n`;\n\nconst ErrorIndicator = styled.div`\n color: ${props => (props.theme.color ? props.theme.color.errorred : \"darkred\")};\n font-size: ${(props: PlaceholderSizeProps) => props.placeholderSize ? props.placeholderSize : '65px'}; \n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\n`;\n\nconst ErrorText = styled.div`\n color: ${props => (props.theme.color ? props.theme.color.errorred : \"darkred\")};\n font-size: 12px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\n`;\n\nconst Placeholder = styled.div`\n cursor: ${(props: PlaceholderSizeProps) => props.allowUpload ? 'pointer' : 'normal'}; ;\n width: 100%;\n text-align: center;\n font-size: ${(props: PlaceholderSizeProps) => props.placeholderSize ? props.placeholderSize : '65px'}; \n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\n`;\n\nconst RecommendedSize = styled.div`\n font-size: 12px;\n font-family: \"futura PT Book italic\";\n color: ${props => (props.theme.color ? props.theme.color.notice : \"#b0b0b0\")};\n margin-top: 5px;\n`;\n\nconst UploadLink = styled.div`\n margin-top: 5px;\n color: rgb(0, 166, 87);\n cursor: pointer;\n font-size: 14px;\n text-decoration: underline;\n font-family: ${props => (props.theme.font ? props.theme.font.bold : \"Futura Md BT Bold', helvetica, arial, sans-serif\")};\n color: ${props => (props.theme.colors ? props.theme.colors.primaryAccent : 'black')};\n a:visited, a:active, a:hover {\n color: ${props => (props.theme.colors ? props.theme.colors.primaryAccent : 'black')};\n }\n`;\n\nconst Circle = styled.div`\n height: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'}; \n width: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'};\n background:#EBEBEB;\n border-radius:50%;\n line-height: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'};\n color:#fff;\n text-align:center;\n margin: ${(props: AvatarSizeProps) => props.avatarSize && props.avatarSize === ImageAvatarSize.LARGE ? '45px auto 0 auto' : '0 auto'};\n letter-spacing:-2px;\n`;\n\nconst Avatar = styled.img`\n display: block;\n height: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'};\n width: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'};\n border-radius:50%;\n line-height: ${(props: AvatarSizeProps) => props.avatarSize ? props.avatarSize : '65px'};\n color:#fff;\n text-align:center;\n letter-spacing:-2px;\n`;\n\nconst FileUploadButton = styled.div`\n position:relative;\n width:100%;\n outline: 0;\n cursor:pointer;\n text-align:center;\n height:150px;\n display:flex;\n > h5 {\n color: ${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#00B2DD')};\n margin:0;\n padding-top:75px;\n width:200px;\n border: 1px rgba(0,0,0,0.15) dashed;\n background:#F6F6F6;\n }\n > input {\n position: absolute;\n left: 0;\n top: 0;\n cursor:pointer;\n z-index:1;\n min-height:150px;\n }\n`;\n\nconst BaseFormInput = styled.input`\n width:100%;\n`;\n\nexport default ImageAvatar;","import { Contact } from '../../../types/listing/contact';\n\nexport const generateInitials = (contact:Contact) => {\n let str: string = \"\";\n if (contact.firstName) {\n str += contact.firstName.substr(0, 1);\n }\n if (contact.lastName) {\n if(str.length > 0){\n str += ' ';\n }\n str += contact.lastName.substr(0, 1);\n }\n return str;\n}","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\nimport ImageAvatar, { ImageAvatarSize, PlaceholderSize } from '../image-avatar/image-avatar';\nimport { Contact } from '../../types/listing/contact';\nimport { generateInitials } from '../contact-card/util/generate-initials';\n\n\ninterface Props {\n contact: Contact\n}\n\nconst CardBrokerView: FC = (props) => {\n\n const { contact } = props;\n\n return (\n \n \n {(contact.firstName? contact.firstName : '')}\n
\n {(contact.lastName? contact.lastName : '')}\n
\n );\n}\n \nexport default CardBrokerView;\n\nconst BaseCardBrokerArea = styled.div`\n padding: 5px;\n display:inline-block;\n font-size:11px;\n color: #666666;\n flex:1;\n align-items:center;\n`;","export const formatNumberWithCommas = (value:any) => {\n if(typeof value !== \"string\" && typeof value.toString === \"function\"){\n value = value.toString();\n }\n // we need to separate out the decimal values so they aren't formatted with commas\n const parts = value.split(\".\");\n if(parts[0]){\n parts[0] = parts[0].replace(/,/g, ''); // remove any commas the user may have entered\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\"); // and format the number correctly\n \n if(parts[1]){\n return parts[0] + \".\" + parts[1];\n }\n return parts[0];\n }\n return value;\n}","export const formatDecimals = (value:any, restriction:number) => {\n if(value && value.toString().indexOf(\".\") > -1){\n value = Number(value).toFixed(restriction);\n }\n return value;\n}","export const nonDraftStates:string[] = [\"published\", \"publishing\", \"unpublishing\", \"unpublishfailed\"];\n\nexport const uneditableStates:string[] = [\"publishing\", \"unpublishing\"];\n\nexport const searchOptions: string[] = [\"propertyName\", \"propertyRecordName\", \"stateOrProvince\", \"street\", \"street2\", \"postalCode\", \"city\", \"propertyType\"];\n","import { Option } from '../../types/common/option';\n\nconst listingTypes:Option[] = [\n {\n label: \"Sale\",\n value: \"sale\",\n order: 1\n },\n {\n label: \"Lease\",\n value: \"lease\",\n order: 2\n },\n {\n label: \"Sale/Lease\",\n value: \"salelease\",\n order: 3\n }\n];\n\nexport default listingTypes;","import { State } from '../../../types/state';\n\nexport const userSelector = (state: State) => {\n return state.system.user;\n}","import React, { FC, useContext } from 'react';\nimport { Link } from 'react-router-dom';\nimport styled, { css } from 'styled-components';\nimport CardBrokerView from '../../components/card-broker-view/card-broker-view';\nimport { Listing } from '../../types/listing/listing';\nimport IconViewListingUrl from '../../assets/images/png/icon-view-listing.png';\nimport IconEditListing from '../../assets/images/png/icon-edit-listing.png';\nimport IconViewListing from '../../assets/images/png/icon-view.png';\nimport IconPending from '../../assets/images/png/icon-pending.png';\nimport IconPublishError from '../../assets/images/png/icon-publisherror.png';\nimport InsightsIcon from '../../assets/images/png/insights-icon.png';\nimport { Contact } from '../../types/listing/contact';\nimport { formatNumberWithCommas } from '../../utils/forms/format-number-commas';\nimport { Config, ConfigDetails } from '../../types/config/config';\nimport { useSelector } from 'react-redux';\nimport { configDetailsSelector } from '../../redux/selectors/system/config-details-selector';\nimport { formatDecimals } from '../../utils/forms/format-decimals';\nimport { uneditableStates, nonDraftStates } from '../../constants/listing-filter';\nimport LazyLoad from 'react-lazyload';\nimport { GLAnalyticsContext } from '../../components/analytics/gl-analytics-context';\nimport { Option } from '../../types/common/option';\nimport listingTypes from '../../api/lookups/listingTypes';\nimport { userSelector } from '../../redux/selectors/system/user-selector';\nimport { User } from '../../types/state';\n\ninterface Props {\n listing: Listing\n}\n\nconst ListingSingle: FC = (props) => {\n\n const { listing } = props;\n\n const user:User = useSelector(userSelector);\n const configDetails: ConfigDetails = useSelector(configDetailsSelector);\n const config: Config = configDetails.config;\n\n const analytics = useContext(GLAnalyticsContext);\n\n // find the cover image\n let coverImageUrl;\n if (props.listing.photos !== undefined && props.listing.photos.length > 0) {\n // sort the photos based on primary then choose the first one (this ensures an image is always shown)\n props.listing.photos.sort((a: any, b: any) => (a.primary ? a : b));\n coverImageUrl = props.listing.photos[0].url;\n }\n\n let currencySymbol = \"$\";\n if (configDetails && configDetails.config) {\n currencySymbol = configDetails.config.currencySymbol;\n }\n\n /* flag used to show certain bits of info for dev */\n let showDevInfo: boolean = false;\n const url: string = window.location.href;\n if (url.indexOf(\"localhost\") > -1 || url.indexOf(\"dev\") > -1 || url.indexOf(\"uat\") > -1) {\n showDevInfo = true;\n }\n\n const viewListingsButton = () => {\n if ((listing.state && listing.state.toLowerCase() === \"published\") && (listing.externalPublishUrl != null)) { // TODO: also only display if URL is available\n return View Listing ;\n }\n return <>;\n }\n\n const viewPendingStatus = () => {\n if (listing.state && listing.state.toLowerCase() === \"publishing\") {\n return Pending Publish;\n } else if (listing.state && listing.state.toLowerCase() === \"unpublishing\") {\n return Pending Unpublish;\n }\n return <>;\n }\n\n const viewErrorStatus = () => {\n if (listing.state && listing.state.toLowerCase() === \"publishfailed\") {\n return Publish Failed!;\n } else if (listing.state && listing.state.toLowerCase() === \"unpublishfailed\") {\n return Unpublish Failed!;\n }\n return <>;\n }\n\n\n\n const addressLine1 = (): string => {\n if (listing.street) {\n return listing.street;\n }\n return \"\";\n }\n\n const addressLine2 = (): string => {\n let returnStr: string = \"\";\n if (listing.city) {\n returnStr += listing.city;\n }\n if (listing.stateOrProvince) {\n returnStr += \", \" + listing.stateOrProvince;\n }\n if (listing.postalCode) {\n returnStr += \" \" + listing.postalCode;\n }\n return returnStr;\n }\n\n const size = (): string => {\n let returnStr = \"\";\n if (listing.specifications) {\n if (listing.specifications.totalSpace) {\n returnStr += \" \" + listing.specifications.totalSpace;\n }\n if (returnStr.length > 0 && listing.specifications.measure) {\n returnStr += \" \" + listing.specifications.measure.toUpperCase()\n }\n }\n if (returnStr.length === 0) {\n returnStr = \"-\";\n }\n returnStr = formatNumberWithCommas(returnStr);\n return returnStr;\n }\n\n const price = (): string => {\n let returnStr = \"\";\n if (listing.specifications) {\n if (listing.specifications.contactBrokerForPrice) {\n returnStr = \"Contact Broker\";\n } else if ((listing.listingType === \"sale\" || listing.listingType === \"salelease\" || listing.listingType === \"investment\") && listing.specifications.salePrice) {\n if (listing.specifications.minPrice || listing.specifications.maxPrice) {\n minMaxPriceRange();\n returnStr = formatPrice(listing.specifications.salePrice) + \"/\" + returnStr;\n } else {\n returnStr += formatPrice(listing.specifications.salePrice);\n }\n }\n else if (listing.listingType === \"lease\" || listing.listingType === \"salelease\") {\n minMaxPriceRange();\n }\n }\n if (returnStr.length === 0) {\n returnStr = \"-\";\n }\n\n return returnStr;\n\n function minMaxPriceRange() {\n if (listing.specifications.minPrice) {\n returnStr += formatPrice(listing.specifications.minPrice);\n }\n if (listing.specifications.maxPrice) {\n if (returnStr.length > 0) {\n returnStr += \"-\";\n }\n returnStr += formatPrice(listing.specifications.maxPrice);\n } \n if (returnStr.length > 0) {\n if (listing.specifications.showPriceWithUoM === true && listing.specifications.measure && listing.specifications.measure.length > 0) {\n returnStr += convertMeasure(listing.specifications.measure);\n }\n returnStr += convertDuration(listing.specifications.leaseTerm);\n }\n }\n }\n \n const convertMeasure = (measure: string): string => {\n if (measure === null || measure.length < 1) {\n return \"\";\n }\n return \"/\" + measure.toUpperCase().trim();\n }\n\n const convertDuration = (duration: string): string => {\n if (duration === null || duration.length < 1) {\n return \"\";\n }\n const lowerCaseDuration = duration.toLowerCase().trim();\n if (lowerCaseDuration === \"monthly\") {\n return \"/mo\";\n } else if (lowerCaseDuration === \"annually\") {\n return \"/yr\";\n }\n return \"\";\n }\n\n const priceTitle = (): string => {\n let returnPriceStr = \"\";\n returnPriceStr = price();\n let priceString = [];\n if (listing.listingType === \"salelease\") {\n if (listing.specifications.salePrice) {\n priceString = returnPriceStr.split(/\\/(.*)/s);\n if (priceString && priceString.length > 0) {\n returnPriceStr = `Sale Price: ${priceString[0]}\\nLease Price: ${priceString[1]?priceString[1] :'-'}`;\n }\n } else {\n returnPriceStr = `Sale Price: -\\nLease Price: ${returnPriceStr}`;\n }\n }\n return returnPriceStr;\n }\n\n const formatPrice = (value: number): string => {\n let result = \"\" + value;\n result = formatDecimals(result, 2);\n result = formatNumberWithCommas(result);\n result = currencySymbol + result;\n return result;\n }\n\n const status = (): string => {\n return listing.published ? 'Active' : 'Inactive';\n }\n\n const getListingTypeLabel = (value: string) => {\n let types: Option[] = [];\n types = configDetails && configDetails.config.listingTypes ? configDetails.config.listingTypes.options : listingTypes;\n let temp: string = \"\";\n\n if (types && types.length > 0) {\n types.forEach((x: Option) => {\n if (x.value === value) {\n temp = x.label\n }\n });\n }\n\n return temp;\n }\n\n const listingType = (): string => {\n const lTypeText: string = getListingTypeLabel(listing.listingType);\n return ((lTypeText && lTypeText.length > 0) ? lTypeText : '-');\n }\n\n const displayBrokerList: any[] = [];\n\n\n\n for (let brokerCounter = 0; brokerCounter < 3; brokerCounter++) {\n if (listing.contacts && listing.contacts[brokerCounter]) {\n displayBrokerList.push(listing.contacts[brokerCounter]);\n }\n }\n\n const getBadgeColor = (propertyType: string) => {\n let color: string | undefined = \"#dddddd\";\n if (configDetails && configDetails.propertyTypeColors && configDetails.propertyTypeColors.get(propertyType)) {\n color = configDetails.propertyTypeColors.get(propertyType);\n }\n else if (configDetails && configDetails.propertyTypeColors && configDetails.propertyTypeColors.get(propertyType.toLowerCase())) {\n color = configDetails.propertyTypeColors.get(propertyType.toLowerCase());\n }\n return color;\n }\n\n const getBadgeLabel = (propertyType: string) => {\n let label: string | undefined = propertyType;\n if (configDetails && configDetails.propertyTypeLabels && configDetails.propertyTypeLabels.get(propertyType)) {\n label = configDetails.propertyTypeLabels.get(propertyType);\n }\n else if (configDetails && configDetails.propertyTypeLabels && configDetails.propertyTypeLabels.get(propertyType.toLowerCase())) {\n label = configDetails.propertyTypeLabels.get(propertyType.toLowerCase());\n }\n\n return label;\n }\n\n return (\n \n \n \n {coverImageUrl && coverImageUrl.length > 0 &&\n \n \n \n }\n \n \n \n {listing.isDeleted ?\n DELETED\n :\n DRAFT\n }\n {listing.propertyType &&\n {getBadgeLabel(listing.propertyType)}}\n \n \n {listing.propertyRecordName}\n {showDevInfo && ID: {listing.id}}\n \n\n \n \n {addressLine1()}\n {addressLine2()}\n \n \n\n { analytics.fireEvent('listing', 'click', 'edit listing ' + listing.id, 'beacon'); }}>\n \n \n {(listing.state && uneditableStates.includes(listing.state.toLowerCase())) ? \"View\" : \"Edit\"} \n {viewListingsButton()}\n {viewPendingStatus()}\n {viewErrorStatus()}\n \n \n \n {configDetails && configDetails.config && configDetails.config.insightsEnabled && \n \n \n View Analytics\n \n }\n \n \n Total Space Available\n {size()}\n \n \n Price Range\n {price()}\n \n \n Listing Type\n {listingType()}\n \n \n\n \n {listing.contacts && displayBrokerList.map((contact: Contact, index: number) => (\n \n ))}\n {listing.contacts && (listing.contacts.length > 3) &&\n
+{listing.contacts.length - 3}
\n\n }\n\n
\n\n
\n\n /*\n add back in when listing type is fixed....\n
\n Listing Type:\n {listingType()}\n */\n\n );\n};\n\nexport default React.memo(ListingSingle);\n\n\nconst BaseListingCard = styled.div`\n /* height: 450px; */\n width: auto;\n margin: auto;\n border: 1px solid #e8e8e8;\n box-shadow: 0 0 10px #e8e8e8;\n overflow:hidden;\n position:relative;\n margin-bottom: 30px;\n`;\n\n/*\nconst imgUrlCss = css` \n background-image: \n linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 35%,rgba(0,0,0,.9) 100%),\n url( ${(props: ImgCardProps) => (props.photo)}); \n`;\n*/\n\nconst BaseListingCardHeader = styled.div`\n width: 100%;\n height: 200px;\n background-position:center center;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: #006A4D;\n position:relative;\n`;\n\nconst ButtonArea = styled.div`\n /* background-color: #ccddcc; */\n /* background-color: #29BC9C; */\n position: relative;\n height: 30px;\n text-align: right;\n`;\n\n/*\ninterface ImgCardProps {\n photo: string;\n}\n*/\n\nconst Row = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n width: 100%;\n`;\n\nconst HeaderImage = styled.div`\n width: 100%;\n height: 200px;\n`;\n\nconst StyledImage = styled.img`\n height: 200px;\n width: 100%;\n position: absolute;\n top: 0;\n z-index: 0;\n`;\n\nconst StyledImageOverlay = styled.div`\n background-image: linear-gradient(to bottom, rgba(255,255,255,0) 0%,rgba(255,255,255,0) 35%,rgba(0,0,0,.9) 100%);\n width: 100%;\n height: 200px;\n position: absolute;\n top: 0;\n z-index: 1;\n`;\n\nconst HeaderContent = styled.div`\n width: 100%;\n height: 200px;\n position: absolute;\n top: 0;\n z-index: 2;\n`;\n\nconst BaseNameDiv = styled.div`\n position: relative;\n display: flex;\n color: white;\n width: 100%;\n text-align:left;\n height:112px;\n`;\nconst TitleText = styled.h2`\n display: inline-block;\n width: 100%;\n align-self: flex-end;\n color: white;\n margin-left: 10px;\n margin-right: 10px;\n font-size: 18px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n overflow: hidden;\n max-height: 3.6em;\n margin-bottom: 10px;\n`;\n\nconst PropertyIdText = styled.div`\n font-size: 11px; \n`;\n\nconst BaseAddressDiv = styled.div`\n position: relative;\n color: white;\n width: auto;\n text-align: left;\n margin: auto;\n height: 34px;\n margin-top: 8px;\n margin-bottom: 10px;\n padding-left: 10px;\n font-size: 12px;\n overflow: hidden;\n max-height: 34px;\n`\nconst AddressText = styled.div`\n color: white;\n margin:0px;\n font-weight:normal;\n font-size: 14px;\n`;\n\nconst DraftFlag = styled.div`\n z-index:10;\n background-color: white;\n border-radius: 2px;\n height:24px;\n /* width:90px; */\n padding-left:8px;\n padding-right:8px;\n position:absolute;\n top: 10px;\n left: 10px;\n line-height:25px;\n text-align:center;\n color: #999999;\n font-size: 11px;\n ${(props: PublishedFlagProps) => props.show ? \"\" : \"display:none\"}\n`;\n\ninterface PublishedFlagProps {\n show: boolean;\n}\n\n\nconst TypeFlag = styled.div`\n z-index:10;\n border-radius: 2px;\n height:24px;\n min-width:50px; /* 30px; */\n padding-left:10px;\n padding-right:10px;\n position:absolute;\n top: 10px;\n right: 10px;\n line-height:24px;\n text-align:center;\n color: #fff;\n font-size: 11px;\n background-color: ${(props: TypeFlagProps) => props.color ? props.color : \"#dddddd\"};\n text-transform: uppercase;\n`;\n\ninterface TypeFlagProps {\n color: string | undefined;\n flagtype: string;\n}\n\n\nconst PublishingFlag = styled.div`\n z-index:10;\n display:inline-block;\n position:relative;\n background-color: #FFDD00;\n border-radius: 20px;\n height:24px;\n margin-right:10px;\n margin-left:10px;\n margin-top:-3px;\n top: 5px;\n line-height:24px;\n text-align:center;\n color: #333333;\n font-size: 12px;\n padding-left:8px;\n padding-right:8px;\n`;\n\nconst FailFlag = styled.div`\n z-index:10;\n display:inline-block;\n position:relative;\n background-color: #E86C6C;\n border-radius: 20px;\n height:24px;\n margin-right:10px;\n margin-left:10px;\n margin-top:-3px;\n top: 5px;\n line-height:24px;\n text-align:center;\n color: white;\n font-size: 12px;\n padding-left:8px;\n padding-right:8px;\n`;\n\nconst CardActionBtn = styled.div`\n cursor: pointer;\n display:inline-block;\n position:relative;\n top:5px;\n vertical-align:center;\n border-radius: 20px;\n height:24px;\n line-height:24px;\n font-size:12px;\n min-width:50px; \n text-align:center;\n background-color:rgba(255,255,255,0.2);\n padding-left:12px;\n padding-right:12px;\n color:white;\n text-decoration:none;\n margin-right:10px;\n margin-left:10px;\n margin-top:-3px;\n &:hover {\n background-color: #00B2DD;\n }\n\n`;\n\n\nconst InfoSection = styled.div`\n padding:5px 15px;\n margin-top:10px;\n height: 120px;\n line-height: 28px;\n`;\n\nconst InfoLabel = styled.div`\n width: 50%;\n color: #666666;\n display: inline;\n`;\n\nconst InfoField = styled.div`\n white-space: nowrap;\n width: 50%;\n height: 30px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n color: #666666;\n display: inline-block;\n overflow:hidden;\n text-overflow: ellipsis;\n text-indent: 10px;\n`;\n\nconst BrokerSection = styled.div`\n padding:0 30px;\n height: 80px;\n background-color: #F8F8F8;\n text-align:center;\n justify-content:center;\n\n display:flex;\n`;\n\nconst AdditionalBrokers = styled.div`\n /* line-height: 50px;\n vertical-align: top;\n color: #cccccc;\n display: inline-block;\n margin-left: 10px;\n font-size: 30px; */\n background:#cecece;\n border-radius:50%;\n height:40px;\n width:40px;\n font-size:14px;\n color:#ffffff;/* #006A4D; */\n text-align:center; \n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n line-height:40px;\n /* margin-bottom:4px; */\n display: inline-block;\n vertical-align: top;\n margin-left: 5px;\n margin-top: 5px;\n \n`\n\nconst InsightsSection = styled.div`\n display: flex-inline;\n width: 100%;\n padding: 10px 0 0 10px;\n box-sizing: border-box;\n`;\n\nconst StyledInsightLink = styled.a`\n color: #006A4D;\n font-size: 14px;\n font-weight: 400;\n height: 18px;\n text-decoration: none;\n margin-left: 10px;\n`;","import React, { FC } from 'react';\nimport styled from 'styled-components';\nimport { Listing } from '../../types/listing/listing';\nimport ListingSingle from '../../views/listings/listing-single'; /* todo: move one or the other */\nimport { Col, Row } from 'react-styled-flexboxgrid';\n\nexport interface Props {\n header: string,\n listings: Listing[]\n}\n\nconst ListingSection: FC = (props) => {\n\n const { header, listings } = props;\n\n return (\n <>\n {header}\n \n {listings.map((listing:Listing, index: number) => (\n \n \n \n ))}\n \n \n );\n};\n\nconst StyledHeader = styled.span`\n font-family: \"Futura Md BT\";\n font-weight: 700;\n font-size: 21px;\n color: #006A4D;\n text-transform: uppercase;\n padding: 20px 0 20px 10px;\n`;\n\nexport default ListingSection;","import React, { FC } from 'react';\nimport { Listing } from '../../types/listing/listing';\nimport styled from 'styled-components';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport ListingSection from '../../components/listing-section/listing-section';\n\nexport interface Props {\n readonly normalListings: Listing[],\n assignedListings: Listing[],\n readonly moreRecordsAvailable: boolean,\n readonly loadListingsHandler: () => void\n}\n\nconst ListingsMain: FC = (props) => {\n\n const { normalListings, assignedListings, moreRecordsAvailable, loadListingsHandler } = props;\n\n const totalLength = normalListings.length + assignedListings.length;\n\n return (\n \n { totalLength > 0 && \n Loading more listings, one moment please...}>\n { assignedListings.length > 0 && }\n { normalListings.length > 0 && }\n \n }\n \n )\n};\n\nconst ListingsContainer = styled.div`\n .listing-card-col {\n > div {\n box-shadow: 0 4px 6px rgba(204,204,204,0.12), 0 2px 4px rgba(204,204,204,0.24);\n transition: all 0.3s cubic-bezier(.25,.8,.25,1);\n &:hover {\n box-shadow: 0 7px 14px rgba(204,204,204,0.20), 0 5px 5px rgba(204,204,204,0.17);\n }\n }\n }\n`;\n\nconst StyledInfiniteScroll = styled(InfiniteScroll)` \n overflow: hidden !important;\n`;\n\nconst LoadingDiv = styled.div`\n width: 100%;\n text-align: center;\n margin-top: 20px;\n color: #006A4D;\n font-size: 22px;\n font-weight: bold;\n`;\n\nexport default ListingsMain;","import { State } from '../../../types/state';\n\nexport const mainMessageSelector = (state:State) => {\n return state.system.mainMessage;\n}","import { State } from '../../../types/state';\n\nexport const alertMessageSelector = (state:State) => {\n return state.system.alertMessage;\n}","import React, { FC } from 'react'\nimport styled from 'styled-components';\nimport { MainMessageType, MainMessaging } from '../../../types/state';\nimport Loader from '../../../components/loader/loader';\nimport { Link } from 'react-router-dom';\n\ninterface Props {\n mainMessage: MainMessaging\n}\n\nconst MainMessage: FC = (props) => {\n\n const { mainMessage } = props;\n\n const Loading = () => {\n return (\n <>{mainMessage.message}\n );\n }\n\n const Saving = () => {\n return (\n <>{mainMessage.message}\n );\n }\n\n const Error = () => {\n return (\n <>\n {mainMessage.message}\n {mainMessage.home && Go back}\n \n );\n }\n\n const Notice = () => {\n return (\n <>\n \n {mainMessage.message}\n {mainMessage.messageLine2}\n \n \n );\n }\n\n return (\n \n { mainMessage.type === MainMessageType.LOADING && }\n { mainMessage.type === MainMessageType.SAVING && }\n { mainMessage.type === MainMessageType.ERROR && }\n { mainMessage.type === MainMessageType.NOTICE && }\n \n );\n};\n\nconst ErrorText = styled.p`\n text-align: center;\n padding: 10px;\n color: ${props => (props.theme.colors ? props.theme.colors.error : 'red')};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n border-bottom: ${props => (props.theme.border ? props.theme.border : '#cccccc')};\n background-color: none;\n`;\n\nconst ProcessingText = styled.p`\n text-align: center;\n padding: 10px;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n border-bottom: ${props => (props.theme.border ? props.theme.border : '#cccccc')};\n background-color: none;\n`;\n\nconst NoticeText = styled.div`\n text-align: center;\n padding: 10px;\n color: ${props => (props.theme.colors ? props.theme.colors.notice : '#b0b0b0')};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n border-bottom: ${props => (props.theme.border ? props.theme.border : '#cccccc')};\n background-color: none;\n`;\n\nconst MessageLine = styled.p`\n margin: 0;\n`;\n\nconst MessageContainer = styled.div`\n margin:150px auto 0 auto\n align-items: center;\n display: flex;\n justify-content: center;\n flex-direction: column;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 24px;\n`;\n\nexport default MainMessage;","import React, { FC } from 'react';\nimport { useDispatch } from 'react-redux';\nimport styled from 'styled-components';\nimport { AlertMessaging, AlertMessagingType } from '../../../types/state';\nimport { setAlertMessage } from '../../../redux/actions/system/set-alert-message';\nimport IconError from '../../../assets/images/png/icon-error.png';\nimport IconInfo from '../../../assets/images/png/icon-info.png';\nimport IconSuccess from '../../../assets/images/png/icon-success.png';\nimport IconWarning from '../../../assets/images/png/icon-warning.png';\n\ninterface Props {\n alertMessage: AlertMessaging\n}\n\nconst AlertMessage: FC = (props) => {\n\n const dispatch = useDispatch();\n \n const closeMessage = () => {\n dispatch(setAlertMessage({show: false}));\n }\n\n const { alertMessage } = props;\n\n let fontColor:string = \"#000000\";\n let msgIcon:any = IconInfo;\n\n if(alertMessage.type === AlertMessagingType.ERROR){\n fontColor = \"#e86d6d\";\n msgIcon = IconError;\n }else if(alertMessage.type === AlertMessagingType.WARNING){\n fontColor = \"#d9a300\";\n msgIcon = IconWarning;\n }else if(alertMessage.type === AlertMessagingType.SUCCESS){\n fontColor = \"#00a384\";\n msgIcon = IconSuccess;\n }else if(alertMessage.type === AlertMessagingType.NOTICE){\n fontColor = \"#000000\";\n }\n\n return (\n \n
\n \n { alertMessage.message }\n { alertMessage.allowClose && X}\n
\n
\n );\n};\n\nconst StyledMessageIcon = styled.img`\n margin-right: 10px;\n margin-bottom: -5px;\n`\n\nconst StyledMessageCloseButton = styled.div`\n text-align: center;\n cursor: pointer;\n display: inline;\n margin-left: 15px;\n font-size: 16px;\n`;\n\nconst StyledMessageContainer = styled.div`\n text-align: center;\n padding: 10px;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n border-bottom: ${props => (props.theme.border ? props.theme.border : '#cccccc')};\n background-color: #f5f3ed;\n`;\n\nexport default AlertMessage;","import { State } from '../../../types/state';\n\nexport const pagedListingsSelector = (state:State) => {\n return state.pagedListings.listings;\n}","import { State } from '../../../types/state';\n\nexport const skipSelector = (state:State) => {\n return state.pagedListings.skip;\n}","import { State } from '../../../types/state';\n\nexport const takeSelector = (state:State) => {\n return state.pagedListings.take;\n}","import { State } from '../../../types/state';\n\nexport const moreRecordsSelector = (state:State) => {\n return state.pagedListings.moreRecords;\n}","import { FilterSetup, FilterType } from '../../types/listing/filters';\n\nexport const standardFilters:FilterSetup[] = [\n {\n uid: \"viewall\",\n label: \"View All\",\n selected: true,\n clearAll: true\n },\n {\n uid: \"drafts\",\n label: \"Drafts\",\n selected: false,\n allowMultiple: false,\n filter: {\n type: FilterType.PUBLISHING_STATUS.valueOf(),\n value: \"Draft\"\n }\n },\n {\n uid: \"published\",\n label: \"Published\",\n selected: false,\n allowMultiple: false,\n filter: {\n type: FilterType.PUBLISHING_STATUS.valueOf(),\n value: \"Published\"\n }\n },\n {\n uid: \"pending\",\n label: \"Pending\",\n selected: false,\n allowMultiple: false,\n filter: {\n type: FilterType.PUBLISHING_STATUS.valueOf(),\n value: \"Pending\"\n }\n }\n];\n\nexport const bulkUploadFilter = {\n uid: \"bulkuploads\",\n label: \"Bulk Uploads\",\n selected: false,\n allowMultiple: true,\n filter: {\n type: FilterType.BULK_UPLOAD.valueOf(),\n value: \"true\"\n },\n category: \"bulkUpload\"\n};\n\nexport const deletedFilter = {\n uid: \"deleted\",\n label: \"Deleted\",\n selected: false,\n allowMultiple: false,\n filter: {\n type: FilterType.DELETED.valueOf(),\n value: \"true\"\n }\n}\n\nexport const importFromMIQFilter = {\n uid: \"miq\",\n label: \"MIQ Imports\",\n selected: false,\n allowMultiple: false,\n filter: {\n type: FilterType.MIQ.valueOf(),\n value: \"true\"\n }\n}\n\n","import { State, User } from '../../../types/state';\nimport { userSelector } from '../system/user-selector';\nimport { createSelector } from 'reselect';\nimport { FilterSetup, FilterType } from '../../../types/listing/filters';\nimport { bulkUploadFilter, deletedFilter, importFromMIQFilter, standardFilters } from '../../../api/filters/filter-settings';\nimport { featureFlagSelector } from '../featureFlags/feature-flag-selector';\nimport { FeatureFlags } from '../../../types/state';\nimport { configSelector } from '../system/config-selector';\nimport { Config } from '../../../types/config/config';\nimport { PropertyTypeOption } from '../../../types/common/option';\n\nexport const filtersSelector = (state:State) => {\n return state.pagedListings.filters;\n}\n\nexport const filterSetupsSelector = createSelector(\n filtersSelector,\n userSelector,\n featureFlagSelector,\n configSelector,\n (currentFilters: FilterSetup[], user:User, featureFlags:FeatureFlags, config:Config):FilterSetup[] => {\n\n const filters:FilterSetup[] = [...standardFilters]; // standard filters are always included\n \n // individual filters setup based on data\n // import from miq filter (dependent on the feature flag)\n if(featureFlags && featureFlags.miqImportFeatureFlag){\n filters.push(importFromMIQFilter);\n }\n\n // delete filter: dependent on the user being an admin\n if(user && user.isAdmin){\n filters.push(deletedFilter);\n }\n\n // push a divider for visual separation\n filters.push({divider: true});\n\n // add the property types as filter options from the config\n if(config && config.propertyType && config.propertyType.options){\n let propertyTypes : PropertyTypeOption[] = [];\n // get sort options for SG Region.\n if(config && config.sortType && config.sortType.show && config.sortType.options){\n propertyTypes = [...config.sortType.options];\n }\n else {\n propertyTypes = [...config.propertyType.options];\n }\n\n \n if (config.propertyType && config.propertyType.alphabeticalSort === true) \n {\n propertyTypes.sort((a, b) => a.label.localeCompare(b.label));\n }\n \n propertyTypes.forEach((option:PropertyTypeOption) => {\n filters.push({\n \"uid\": option.label.toLowerCase().replace(/\\s/g, ''),\n \"label\": option.label,\n \"selected\": false,\n \"allowMultiple\": true,\n \"filter\": {\n type: FilterType.PROPERTY_TYPE.toString(),\n value: option.value\n },\n \"category\": \"propertyType\"\n });\n });\n }\n\n // finally, add the bulk upload filter\n filters.push(bulkUploadFilter);\n\n // now that we have our setups, we need to ensure our new setups have any previous selected filters selected, so reconcile them\n if(currentFilters && currentFilters.length > 0){\n const selectedFilters:object = {};\n currentFilters.forEach((currentFilter:FilterSetup) => {\n if(currentFilter.selected && currentFilter.uid){\n selectedFilters[currentFilter.uid] = true;\n }\n });\n \n // loop through the newly created filters and mark any selected needed\n filters.forEach((filterSetup:FilterSetup) => {\n if(filterSetup.uid && selectedFilters[filterSetup.uid]){\n filterSetup.selected = true;\n }\n });\n }\n\n return filters;\n }\n);","import { State } from '../../../types/state';\n\nexport const assignedListingsSelector = (state:State) => {\n return state.pagedListings.assignedListings;\n}","import { State } from '../../../types/state';\n\nexport const configSiteIdSelector = (state:State) => {\n if (state.system.configDetails.config && state.system.configDetails.config.siteId){\n return state.system.configDetails.config.siteId;\n } else {\n return undefined;\n }\n}\n\nexport const homeSiteIdSelector = (state:State) => {\n return state.system.homeSiteId;\n}","import React, { FC, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport ListingsHeader from './listings-header';\nimport ListingsFilter from './filters/listings-filter-bar';\nimport ListingsMain from './listings-main';\nimport styled from 'styled-components';\nimport { Listing } from '../../types/listing/listing';\nimport { MainMessaging, AlertMessaging } from '../../types/state';\nimport { mainMessageSelector } from '../../redux/selectors/system/main-message-selector';\nimport { alertMessageSelector } from '../../redux/selectors/system/alert-message-selector';\nimport MainMessage from '../common/messages/main-message';\nimport AlertMessage from '../common/messages/alert-message';\nimport { clearAlertMessage } from '../../redux/actions/system/set-alert-message';\nimport { getListingsPaged, resetPagedListings } from '../../redux/actions/pagedListings/load-listings-paged';\nimport { getAssignedListingsCount } from '../../redux/actions/miq/get-assigned-listings-count';\nimport { pagedListingsSelector } from '../../redux/selectors/pagedListings/paged-listings-selector';\nimport { skipSelector } from '../../redux/selectors/pagedListings/skip-selector';\nimport { takeSelector } from '../../redux/selectors/pagedListings/take-selector';\nimport { moreRecordsSelector } from '../../redux/selectors/pagedListings/more-records-selector';\nimport { FilterSetup, Filter } from '../../types/listing/filters';\nimport { filterSetupsSelector } from '../../redux/selectors/pagedListings/filter-setups-selector';\nimport { extractFilters } from '../../utils/extract-filters';\nimport { searchTextSelector } from '../../redux/selectors/pagedListings/search-text-selector';\nimport { filtersChanged } from '../../redux/actions/pagedListings/change-filters';\nimport { clearMIQData } from '../../redux/actions/miq/clear-miq-data';\nimport { setCancelAction } from '../../redux/actions/system/set-cancel-action';\nimport { assignedListingsSelector } from '../../redux/selectors/pagedListings/assigned-listings-selector';\nimport { setSaveAction } from '../../redux/actions/system/set-save-action';\nimport { setMIQAddEditRecord } from '../../redux/actions/miq/select-miq-record-add-edit'\nimport { homeSiteIdSelector } from '../../redux/selectors/system/siteid-selector';\nimport { changeFilters } from '../../redux/actions/pagedListings/change-filters';\nimport { refreshAllContacts } from '../../redux/actions/contacts/refresh-all-contacts';\n\nconst ListingsContainer: FC = () => {\n\n const dispatch = useDispatch();\n\n const mainMessage: MainMessaging = useSelector(mainMessageSelector);\n const alertMessage: AlertMessaging = useSelector(alertMessageSelector);\n\n const filterSetups: FilterSetup[] = useSelector(filterSetupsSelector);\n const searchText: string = useSelector(searchTextSelector);\n const listings: Listing[] = useSelector(pagedListingsSelector);\n const assignedListings: Listing[] = useSelector(assignedListingsSelector);\n const skip: number = useSelector(skipSelector);\n const take: number = useSelector(takeSelector);\n const moreRecordsAvailable: boolean = useSelector(moreRecordsSelector);\n const homeSiteID = useSelector(homeSiteIdSelector);\n\n const filterChangeHandler = (changedFilters: FilterSetup[]) => {\n dispatch(filtersChanged(changedFilters));\n }\n\n useEffect(() => {\n clearAlertMessage(dispatch);\n dispatch(clearMIQData()); // clear out any lingering MIQ data when we hit the listings page\n dispatch(setCancelAction({goto: \"/\"})); // ensure any cancel action in a subsequent page returns to this page\n dispatch(setSaveAction({}));\n dispatch(getAssignedListingsCount());\n getNextListings();\n dispatch(setMIQAddEditRecord(null)) // clear out imported miq record\n }, []);\n\n useEffect(() => {\n dispatch(changeFilters(resetFilters(filterSetups)));\n resetPagedListings(dispatch, true);\n dispatch(refreshAllContacts());\n }, [homeSiteID]);\n\n const resetFilters = (filters:FilterSetup[]) : FilterSetup[] => {\n const updatedFilters:FilterSetup[] = [];\n \n filters.forEach((setup:FilterSetup) => {\n if(setup.uid === 'viewall'){\n setup.selected = true;\n }\n else{\n setup.selected = false;\n }\n updatedFilters.push(setup);\n });\n \n return updatedFilters;\n }\n\n const getAssignedCount = () => {\n dispatch(getAssignedListingsCount());\n }\n\n const getNextListings = () => {\n const filters: Filter[] = extractFilters(filterSetups, searchText);\n if (listings && listings.length > 0) {\n dispatch(getListingsPaged(skip, take, filters));\n }\n }\n\n return (\n <>\n \n {alertMessage && alertMessage.show && }\n \n {\n \n }\n {\n mainMessage.show && \n }\n {\n !mainMessage.show && \n }\n \n \n );\n\n};\n\nconst ListingsMainContainer = styled.div`\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'sans-serif')};\n max-width: ${props => props.theme.container.maxWidth};\n width: ${props => props.theme.container.width};\n margin:0 auto;\n`;\n\nexport default ListingsContainer;","import { State } from '../../../types/state';\n\nexport const currentListingSelector = (state:State) => {\n return state.entry.currentListing;\n}","import {createContext} from 'react';\n\n// form context using context API to pass around functions and any other values we need\nexport const FormContext = createContext({\n onFormChange: (values:object) => {\n // default\n },\n validateComplete : (errors:string[]) => {\n // default\n }\n});","import React, {FC, useState} from 'react'\nimport { useDispatch } from 'react-redux';\nimport { FormContext } from './gl-form-context';\n\ninterface OwnProps {\n changeHandler : (values:object, preventRerender?:boolean) => void,\n validateComplete : (errors:string[]) => void\n}\n\nconst FormController: FC = (props) => {\n\n const { changeHandler, children, validateComplete } = props;\n \n const [formValues, setFormValues] = useState({});\n\n const changeFormValues = (values:object, preventRerender?:boolean) => {\n // merge in the changes passed from the child view/form\n const fvCopy = Object.assign({}, formValues);\n Object.keys(values).forEach(key => {\n fvCopy[key] = values[key];\n });\n changeHandler(values, preventRerender);\n }\n\n const finishForcedValidation = (errors:string[]) => {\n validateComplete(errors);\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default FormController;","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\nexport interface SectionHeadingProps {\n error?: boolean;\n}\n\nconst SectionHeading: FC = (props) => {\n const { error } = props;\n return {props.children}\n}\n \nconst BaseHeading = styled.h2`\n color: ${(inputProps: SectionHeadingProps) => inputProps.error ? css` \n ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n ` : '#006A4D'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')};\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n letter-spacing: .01rem;\n text-transform: uppercase;\n`;\n\nexport default SectionHeading;","import React, { FC, useContext } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TeamMember } from '../../../types/team/teamMember';\nimport { Team } from '../../../types/team/team';\n\ninterface Props {\n teamMember?: TeamMember,\n team?: Team,\n owner?: boolean,\n deleteBtn?: boolean,\n isTeam?: boolean,\n index: number,\n deleteFunc?(member: TeamMember): void,\n deleteTeamFunc?(memberTeam: Team): void\n}\n\nconst ListingTeamMemberCard: FC = (props) => {\n\n const { teamMember, team, owner, deleteBtn, isTeam, index, deleteFunc, deleteTeamFunc } = props;\n\n \n const callDelete = () => {\n if (deleteFunc !== undefined) {\n if (teamMember) {\n deleteFunc(teamMember);\n }\n }\n if (deleteTeamFunc !== undefined) {\n if (team) {\n deleteTeamFunc(team);\n }\n }\n }\n\n return (\n <>\n \n \n {teamMember && (teamMember.firstName? teamMember.firstName.substr(0, 1): '') + ' ' + (teamMember.lastName? teamMember.lastName.substr(0, 1) : '')}\n {team && (team.name? team.name.substr(0, 1).toUpperCase() : '')}\n \n {deleteBtn && X}\n \n {teamMember && (teamMember.firstName? teamMember.firstName: '') + ' ' + (teamMember.lastName? teamMember.lastName : '')}\n {team && team.name}\n \n \n {owner && Owner}\n {isTeam && Team}\n \n );\n};\n\nexport default React.memo(ListingTeamMemberCard);\n\nconst ListingUserThumbnail = styled.div`\n border: 1px solid #ddd;\n padding: 8px;\n box-shadow: 0 4px 6px rgba(204,204,204,0.12), 0 2px 4px rgba(204,204,204,0.24);\n transition: all 0.3s cubic-bezier(.25,.8,.25,1);\n width: 115px;\n height: 100px;\n overflow: hidden;\n /* &:hover {\n box-shadow: 0 7px 14px rgba(204,204,204,0.20), 0 5px 5px rgba(204,204,204,0.17);\n } */\n /* background-color: white; */\n`;\n\nconst MemberNameText = styled.div`\n font-size: 12px;\n font-family: Futura Md BT Bold;\n line-height: 15px;\n padding-top:8px;\n color:#9EA8AB;\n`;\n\nconst DescriptionText = styled.div`\n font-size: 12px;\n line-height: 50px;\n color:#777;\n margin-top: -8px;\n margin-left: 8px;\n`;\n\nconst DeleteIconDiv = styled.div`\n cursor: pointer;\n margin-top: -45px;\n margin-right: 7px;\n font-size: 16px;\n color: #02c2f2;\n float: right;\n`\n\nconst UserAvatar = styled.div`\n margin-top: 5px;\n cursor:pointer;\n background:#ddd;\n border-radius:50%;\n color:#fff;\n font-family: Futura Md BT Bold;\n text-align:center;\n height:50px;\n width:50px;\n line-height: 50px;\n margin-right:13px;\n letter-spacing:-1px;\n`;","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\n\ninterface Props {\n label?: string,\n error?: boolean,\n title?: string,\n styles?: FormFieldLabelStyles,\n clickHandler?(e: any): void\n}\n\nexport interface FormFieldLabelStyles {\n fontSize?: string,\n fontWeight?: string,\n color?: string,\n marginLeft?: string,\n marginTop?: string\n}\n\nconst FormFieldLabel: FC = (props) => {\n\n const { error, label, title, clickHandler } = props;\n\n return (\n {title && {title}}{label}\n );\n}\n\nconst BaseFieldHeading = styled.h5`\n color: ${(inputProps: Props) => inputProps.error ? css` \n ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n ` : inputProps.styles && inputProps.styles.color ? inputProps.styles.color : '#9EA8AB'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: ${props => props.styles && props.styles.fontSize ? props.styles.fontSize : '16px' };\n margin-block-end: 0.5em;\n text-transform: capitalize;\n font-weight: ${props => props.styles && props.styles.fontWeight ? props.styles.fontWeight : '300' };\n margin-left: ${props => props.styles && props.styles.marginLeft ? props.styles.marginLeft : '' };\n margin-top: ${props => props.styles && props.styles.marginTop ? props.styles.marginTop : '' };\n cursor: pointer;\n`;\n\nconst Title = styled.span`\n font-family: ${props => (props.theme.font ? props.theme.font.bold : 'inherit')};\n color: #8E9A9D;\n margin-right:10px;\n`;\n\nexport default FormFieldLabel;","import React, { FC, useState, useCallback } from 'react';\nimport styled, { css } from 'styled-components';\nimport Autosuggest from 'react-autosuggest';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport { AutoCompleteRequest, AutoCompleteResult } from '../../types/common/auto-complete';\nimport debounce from 'debounce';\nimport StyledButton from '../styled-button/styled-button';\nimport SearchIcon from '../../assets/images/png/icon-search-contacts.png';\nimport GreenSearchIcon from '../../assets/images/png/green-search-icon.png';\nimport { ScaleLoader } from 'react-spinners';\n// import { Config } from '../../types/config/config';\n// import { useSelector } from 'react-redux';\n// import { configSelector } from '../../redux/selectors/system/config-selector';\n\nexport interface SearchableInputProps {\n name?: string,\n label?: string,\n defaultValue?: any,\n placeholder?: string,\n config?:any;\n error?: boolean,\n delayMS?: number,\n clearAfterSelect?: boolean,\n extraData?: string,\n useSearchData?: any,\n showSearchIcon?: boolean,\n noDataProps?: SearchableInputNoDataProps,\n showLoadingAnimation?: boolean,\n showGreenSearchIcon?: boolean,\n customErrorMessage?: string,\n disabled?: boolean,\n countryCode?: string,\n maxLength?: number,\n captureValue?(value: string): void, // use only if we want to bubble up user input regardless of choice. leave undefined if we require a choice.\n staticDataProvider?(request: AutoCompleteRequest, config?:any): AutoCompleteResult[], // use if you have a static non remote list to provide\n remoteDataProvider?(request: AutoCompleteRequest): Promise, // use if you have a remote data provider (i.e., API) to provide\n autoCompleteFinish?(result: AutoCompleteResult): void\n}\n\nexport interface StyleProps {\n error?: boolean,\n disabled?: boolean\n}\n\ninterface SuggestionSelected {\n suggestion: AutoCompleteResult,\n suggestionValue: string,\n suggestionIndex: number,\n method: string\n}\n\ninterface UserValue {\n newValue: string,\n method: string\n}\n\nexport interface SearchableInputNoDataProps {\n showNoData?: boolean,\n noDataMessage?: string,\n showNoDataButton?: boolean,\n noDataButtonLabel?: string,\n noDataButtonCallback?(): void;\n}\n\nconst SearchableInput: FC = (props) => {\n const { name, label, placeholder, config, captureValue, staticDataProvider, error, remoteDataProvider, showLoadingAnimation, delayMS, clearAfterSelect,\n autoCompleteFinish, extraData, useSearchData, showSearchIcon, noDataProps, showGreenSearchIcon, customErrorMessage, disabled, countryCode } = props;\n let { defaultValue } = props;\n\n let showNoData: boolean | undefined = false;\n let noDataMessage: string | undefined;\n let showNoDataButton: boolean | undefined = false;\n let noDataButtonLabel: string | undefined;\n let noDataButtonCallback: Function | undefined;\n\n if (noDataProps) {\n showNoData = noDataProps.showNoData;\n noDataMessage = noDataProps.noDataMessage;\n showNoDataButton = noDataProps.showNoDataButton;\n noDataButtonLabel = noDataProps.noDataButtonLabel;\n noDataButtonCallback = noDataProps.noDataButtonCallback;\n }\n\n const defaultDelayMS = 500; // if no delayMS is passed in, 1/2 second is default on debounce\n const delay = delayMS ? delayMS : defaultDelayMS;\n const defaultPlaceholder: string = \"Search for...\"; // default placeholder if none passed in\n\n const [suggestions, setSuggestions] = useState([]);\n const [noResults, setNoResults] = useState(false);\n const [showLoad, setShowLoad] = useState(false);\n const [showError, setShowError] = useState('');\n \n\n if (!defaultValue) {\n defaultValue = \"\";\n }\n\n\n const [value, setValue] = useState(defaultValue);\n // force update equivalent\n const [, updateState] = useState();\n const forceUpdate = useCallback(() => updateState(undefined), []);\n\n const checkForResults = (request: AutoCompleteRequest, results: AutoCompleteResult[]) => {\n\n // if capture value is set, we bubble up the request value\n if (captureValue) {\n captureValue(request.value);\n }\n\n if (name) {\n const ele = document.getElementById(name);\n if (document.activeElement !== ele) {\n return;\n }\n }\n\n if (results && results.length === 0) {\n setNoResults(true);\n } else {\n setNoResults(false);\n }\n }\n\n const getSuggestionsRemote = (request: AutoCompleteRequest, passedValue: any) => {\n if (remoteDataProvider) {\n\n if (extraData) {\n request.extraData = extraData;\n }\n\n if (countryCode) {\n request.countryCodes = [passedValue]\n }\n\n setNoResults(false);\n setShowError('');\n if (showLoadingAnimation) {\n setShowLoad(true);\n remoteDataProvider(request).then(results => {\n checkForResults(request, results);\n setSuggestions(results);\n setShowLoad(false);\n forceUpdate();\n }).catch((err) => {\n setShowLoad(false);\n setShowError(customErrorMessage ? customErrorMessage : (typeof err === 'string' ? err : 'Error Searching...'));\n forceUpdate();\n });\n } else {\n remoteDataProvider(request).then(results => {\n checkForResults(request, results);\n setSuggestions(results);\n forceUpdate();\n });\n }\n }\n }\n\n const getSuggestionsStatic = (request: AutoCompleteRequest) => {\n if (staticDataProvider) {\n if (useSearchData) {\n request.useSearchData = useSearchData;\n }\n const results: AutoCompleteResult[] = staticDataProvider(request, config);\n checkForResults(request, results);\n setSuggestions(results);\n forceUpdate();\n }\n }\n\n // figure out which data provider to use : remote data provider will always be used over static if both are provided\n const suggestionsFunc = remoteDataProvider ? useCallback(debounce(getSuggestionsRemote, delay), []) : getSuggestionsStatic;\n\n const getSuggestionValue = (suggestion: any) => {\n return suggestion.name;\n }\n\n const renderSuggestion = (suggestion: any) => {\n return (\n
{suggestion.name}
\n );\n }\n\n const onSuggestionsClearRequested = () => {\n setSuggestions([]);\n };\n\n const onChange = (e: any, val: UserValue) => {\n setValue(val.newValue);\n if (showError && showError !== ''){\n setShowError('')\n }\n };\n\n const shouldRenderSuggestions = (val: string): boolean => {\n if (captureValue) {\n return true;\n } else {\n return val.trim().length > 1;\n }\n }\n\n const onSuggestionSelected = (e: any, suggestion: SuggestionSelected) => {\n if (autoCompleteFinish) {\n autoCompleteFinish(suggestion.suggestion);\n }\n if (clearAfterSelect) {\n setValue(\"\");\n }\n }\n\n const inputProps = {\n 'placeholder': placeholder ? placeholder : defaultPlaceholder,\n value,\n 'onChange': onChange\n };\n\n const noDataClick = (e: React.MouseEvent) => {\n e.preventDefault();\n if (noDataButtonCallback) {\n noDataButtonCallback();\n setNoResults(false);\n }\n }\n\n const checkNoDataFocus = () => {\n // this is necessary to \n if (noResults) {\n const ele = document.getElementById(name + \"_dc\");\n if (ele) {\n ele.focus();\n }\n }\n }\n\n const onBlur = (e: React.FocusEvent) => {\n const eleCheck = e.relatedTarget;\n const parent = document.getElementById(name + \"_cont\");\n if (parent && !checkIfChild(parent, eleCheck)) {\n setNoResults(false);\n if (captureValue) {\n captureValue(value);\n }\n }\n }\n\n const checkIfChild = (parent: any, child: any) => {\n if (!child || child === null) {\n return false;\n }\n let node = child.parentNode;\n while (node != null) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n\n const renderInputComponent = (iProps: any) => (\n showGreenSearchIcon ? (\n \n \n {showGreenSearchIcon && }\n \n ) : (\n \n \n {showSearchIcon && !showGreenSearchIcon && }\n \n )\n );\n\n const NoDataDropdown = () => {\n if (noResults && (showNoData || showNoDataButton)) {\n return (\n \n \n {showNoData && {noDataMessage ? noDataMessage : \"No results found.\"}}\n {showNoDataButton && {noDataButtonLabel ? noDataButtonLabel : \"Add New\"}}\n \n \n );\n }\n return <>;\n }\n\n return (\n \n \n \n suggestionsFunc(e, countryCode)}\n onSuggestionsClearRequested={onSuggestionsClearRequested}\n getSuggestionValue={getSuggestionValue}\n renderSuggestion={renderSuggestion}\n inputProps={inputProps}\n shouldRenderSuggestions={shouldRenderSuggestions}\n onSuggestionSelected={onSuggestionSelected}\n renderInputComponent={renderInputComponent} />\n \n {showLoad &&\n \n \n \n \n \n }\n {showError !== '' &&\n \n \n {showError}\n \n \n }\n \n \n );\n}\n\nconst DropdownContainer = styled.div`\n position: relative;\n`;\n\nconst LoaderContainer = styled.div`\n margin: 0 auto;\n text-align:center;\n position: relative;\n > div {\n padding: 115px 0;\n }\n`;\n\nconst BaseInputContainer = styled.div`\n width:100%;\n opacity: ${(props: StyleProps) => props.disabled ? '.5' : 'auto' }; \n pointer-events: ${(props: StyleProps) => props.disabled ? 'none' : 'inherit' };\n user-select: ${(props: StyleProps) => props.disabled ? 'none' : 'inherit' };\n`;\n\nconst normalBorder = css`\n1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst DropdownContent = styled.div`\n display: block;\n position: absolute;\n background: white;\n border: ${normalBorder}; \n border-top: none;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.1);\n width: 100%;\n z-index: 1000;\n`;\n\nconst StyledAutoSuggestWrapper = styled.div`\n & .react-autosuggest__container {\n position: relative;\n } \n & .react-autosuggest__input--focused {\n outline: none;\n }\n & .react-autosuggest__input--open {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n & .react-autosuggest__suggestions-container {\n display: none;\n }\n & .react-autosuggest__suggestions-container--open {\n display: block;\n position: absolute;\n top: 40px;\n width: 100%;\n border: ${(props: StyleProps) => props.error ? errorBorder : normalBorder}; \n background-color: #fff;\n font-family: Helvetica, sans-serif;\n font-weight: 300;\n font-size: 12px;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n z-index: 10000;\n }\n & .react-autosuggest__suggestions-list {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n & .react-autosuggest__suggestion {\n cursor: pointer;\n color: hsl(0,0%,20%);\n font-size: 14px;\n padding: 10px 20px;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')};\n }\n & .react-autosuggest__suggestion--highlighted {\n color: #fff; \n background-color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : '#00b2dd')};\n }\n`;\n\nconst SearchInputContainer = styled.div`\n border: ${(props: StyleProps) => props.error ? errorBorder : normalBorder}; \n background-color: #fff;\n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: flex;\n flex-direction: row;\n outline: 0;\n width:100%;\n :focus-within {\n outline: 1px solid ${props => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n`;\n\nconst SearchInput = styled.input`\n border: none;\n padding: 1em;\n outline: 0;\n color: #666666; \n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n ::placeholder {color:#cccccc;}\n text-align: left;\n text-decoration: none;\n vertical-align: text-bottom;\n width: 100%;\n`;\n\nconst SearchIconContainer = styled.div`\n color: #8E9A9D;\n text-align:right;\n filter: invert(1);\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 12px;\n margin-top:2px;\n cursor: pointer;\n padding: 10px 12px 5px 5px;\n`;\n\nconst GreenSearchIconContainer = styled.div`\n color: #8E9A9D;\n text-align:right;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 12px;\n cursor: pointer;\n padding: 5px 0 5px 5px;\n position:absolute;\n right:5px;\n img {\n height:28px;\n margin-top:15px;\n }\n`;\n\nconst NoDataMessage = styled.div`\n font-weight: normal !important;\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 14px;\n padding: 10px 0 10px 15px;\n`;\n\nconst NoDataButtonContainer = styled.div`\n padding: 10px;\n`;\n\nexport default SearchableInput;","import { AutoCompleteResult, AutoCompleteRequest } from '../../types/common/auto-complete';\nimport { getUsersOrTeams } from '../glQueries';\nimport { postData } from '../glAxios';\nimport { ListingTeamMember} from '../../types/listing/listingTeamMember'\nimport { UserSearchFilter } from '../../types/team/userSearchFilter'\n\n// this is called by the searchable input\nexport const getUsersAndTeamsForSearch = (request:AutoCompleteRequest): Promise => {\n\n const input:string = request.value.trim();\n const inputFilter: UserSearchFilter = { term: request.value.trim(), blacklist: request.extraData? JSON.parse(request.extraData) : []}\n const service = new google.maps.places.AutocompleteService();\n\n return new Promise((resolve, reject) => {\n postData(getUsersOrTeams(inputFilter))\n .then((response: any) => {\n if (typeof response.data === 'undefined'){\n // error on user search... \n resolve([]);\n }else{ \n const dbMembers:ListingTeamMember[] = response.data.claimants.map(\n (m:any) => ({\n \"name\": m.name,\n \"firstName\": m.firstName, \n \"lastName\": m.lastName,\n \"fullName\": m.fullName,\n \"isTeam\": m.isTeam\n })\n );\n\n resolve(convertUserResults(dbMembers));\n }\n });\n\n }); \n}\n\n// convert the user list results to get them in the form the searchable input needs to display\nexport const convertUserResults = (dbMembers:ListingTeamMember[]) => {\n\n const converted:AutoCompleteResult[] = [];\n\n dbMembers.forEach((result:ListingTeamMember) => {\n if (result.isTeam) {\n converted.push({ name: result.name, value: result});\n } \n else {\n converted.push({ name: result.firstName + \" \" + result.lastName, value: result});\n }\n \n });\n\n return converted;\n}","import React, { FC, useContext, useState } from 'react';\nimport { FormContext } from '../../../components/form/gl-form-context';\nimport { Listing } from '../../../types/listing/listing';\nimport { Col, Row } from 'react-styled-flexboxgrid';\nimport SectionHeading from \"../../../components/section-heading/section-heading\";\nimport ListingTeamMemberCard from './listing-team-member-card';\nimport { TeamMember } from '../../../types/team/teamMember';\nimport { Team } from '../../../types/team/team';\nimport { authContext } from '../../../adalConfig';\nimport SearchableInput, { SearchableInputNoDataProps } from '../../../components/searchable-input/searchable-input';\nimport { AutoCompleteResult, AutoCompleteRequest } from '../../../types/common/auto-complete';\nimport { getUsersAndTeamsForSearch } from '../../../api/users/usersAndTeams';\nimport styled from 'styled-components';\nimport ReactTooltip from 'react-tooltip';\nimport TooltipOff from '../../../assets/images/png/tooltip-off.png'\nimport TooltipOn from '../../../assets/images/png/tooltip-on.png'\n\n\ninterface Props {\n listing: Listing\n}\n\nconst ListingTeam: FC = (props) => {\n\n const { listing } = props;\n\n const userArr: TeamMember[] = listing.users ? listing.users : [];\n const teamArr: Team[] = listing.teams ? listing.teams : [];\n const [members, setMembers] = useState(userArr);\n const [teamMembers, setTeamMembers] = useState(teamArr);\n\n const noDataProps: SearchableInputNoDataProps = {\n showNoData: true,\n noDataMessage: 'No users/teams found...',\n showNoDataButton: false\n }\n\n const formControllerContext = useContext(FormContext);\n\n const currentUser = authContext.getCachedUser();\n\n const updateTeamMemberData = (usersUpdate: TeamMember[]) => {\n const values = {\n 'users': [...usersUpdate]\n };\n formControllerContext.onFormChange(values);\n }\n\n const updateTeamData = (teamsUpdate: Team[]) => {\n const values = {\n 'teams': [...teamsUpdate]\n };\n formControllerContext.onFormChange(values);\n }\n\n\n const findRemoteDataProvider = (request: AutoCompleteRequest): Promise => {\n\n return new Promise((resolve, reject) => {\n resolve(getUsersAndTeamsForSearch(request));\n });\n }\n\n const removeTeamMember = (member: TeamMember) => {\n const tempUsers: TeamMember[] = [...members];\n const idx = tempUsers.findIndex((u: TeamMember) => u.email === member.email);\n tempUsers.splice(idx, 1);\n setMembers(tempUsers);\n updateTeamMemberData(tempUsers);\n }\n\n const removeTeamMemberTeam = (memberTeam: Team) => {\n const tempTeam: Team[] = [...teamMembers];\n const idx = tempTeam.findIndex((u: Team) => u.name === memberTeam.name);\n tempTeam.splice(idx, 1);\n setTeamMembers(tempTeam);\n updateTeamData(tempTeam);\n }\n\n const addUser = (suggestion: AutoCompleteResult) => {\n const member = suggestion.value;\n // add user or team to listing\n\n if (member.isTeam) {\n const tempTeam: Team[] = [...teamMembers];\n const newTeam: Team = { id: member.name, name: member.name, users: [] };\n tempTeam.push(newTeam);\n setTeamMembers(tempTeam);\n updateTeamData(tempTeam);\n }\n else {\n const temp: TeamMember[] = [...members];\n const newUser: TeamMember = { teamMemberId: member.name, firstName: member.firstName, lastName: member.lastName, email: member.name };\n temp.push(newUser);\n setMembers(temp);\n updateTeamMemberData(temp);\n }\n }\n\n const getLatestUserIds = (): string[] => {\n const filterUserArray: string[] = members ? members.map((teamMember: TeamMember) => (teamMember.email)) : [];\n const filterTeamArray: string[] = teamMembers ? teamMembers.map((t: Team) => (t.name)) : [];\n const filterArray: string[] = filterUserArray.concat(filterTeamArray);\n return filterArray;\n }\n\n const memberKey = (member: TeamMember) => {\n if (member && member.email) {\n return member.email + new Date().getTime();\n }\n return \"member\" + new Date().getTime();\n }\n\n const memberTeamKey = (memberTeam: Team) => {\n if (memberTeam && memberTeam.name) {\n return memberTeam.name.replace(/ /g, '') + new Date().getTime();\n }\n return \"memberTeam\" + new Date().getTime();\n }\n\n return (\n \n \n \n Data Entry Team \n \n \n \n \n {members && members.map((teamMember: TeamMember, index: number) => (\n \n \n \n ))}\n {teamMembers && teamMembers.map((team: Team, index: number) => (\n \n \n \n ))}\n \n \n \n \n (e.currentTarget.src=TooltipOn)} onMouseOut={e => (e.currentTarget.src=TooltipOff)}/>\n \n Can't find your colleague? The DATA ENTRY TEAM directory populates when someone logs in to the system and is registered as a Data Entry user\n \n

\n { \n \n } \n \n \n
\n );\n}\n\nconst StyledRow = styled(Row as any)`\n background-color: ${props => props.theme.colors && props.theme.colors.secondaryBackground || '#f2f2f2'};\n border: 1px solid ${props => props.theme.colors && props.theme.colors.border || '#cccccc'};\n padding: 1em 2em;\n`;\n\ninterface LabelStyle {\n fontSize?: number;\n fontStyle?: string;\n fontWeight?: string;\n veriticalAlign?: string;\n};\n\nconst Label = styled.span`\n font-size: ${(props: LabelStyle) => props.fontSize !== undefined ? props.fontSize + \"px\" : \"15px\"};\n font-style: ${(props: LabelStyle) => props.fontStyle !== undefined ? props.fontStyle : \"italic\"};\n font-weight: ${(props: LabelStyle) => props.fontWeight !== undefined ? props.fontWeight : \"normal\"};\n vertical-align: ${(props: LabelStyle) => props.veriticalAlign !== undefined ? props.veriticalAlign : \"baseline\"};\n text-transform: none;\n align-items: center;\n font-family: Arial, Helvetica, sans-serif;\n color: #666;\n`;\n\nconst IconTag = styled.a`\n margin-block-start: 2em;\n margin-left: .5em; \n`;\n\nconst StyledTooltip = styled(ReactTooltip as any)`\n box-shadow: 0 0 4px 2px grey;\n width: 250px;\n font-family: \"Futura Md BT\", helvetica, arial, sans-serif;\n font-size: 12px;\n font-weight: 500;\n text-transform: none;\n`;\n\nexport default React.memo(ListingTeam, (prevProps, nextProps) => nextProps.listing !== prevProps.listing);","import React, { FC, useContext, useState } from 'react';\nimport { FormContext } from '../../../components/form/gl-form-context';\nimport { Listing } from '../../../types/listing/listing';\nimport { Col, Row } from 'react-styled-flexboxgrid';\nimport SectionHeading from \"../../../components/section-heading/section-heading\";\nimport { useSelector } from 'react-redux';\nimport { Config, AspectConfig } from '../../../types/config/config';\nimport { configSelector } from '../../../redux/selectors/system/config-selector';\nimport styled from 'styled-components';\nimport BlueCheck from '../../../assets/images/png/blue-check.png';\nimport GrayCheck from '../../../assets/images/png/gray-check.png';\n\n\nexport interface Props {\n listing: Listing\n}\n\nconst Amenities: FC = (props) => {\n\n const { listing } = props;\n const config: Config = useSelector(configSelector);\n const listAspectsArr: string[] = listing.aspects ? listing.aspects : [];\n const aspectsArr: AspectConfig[] = (config.aspects && config.aspects.options) ? config.aspects.options : [];\n const [listAspects, setListAspects] = useState(listAspectsArr);\n\n const formControllerContext = useContext(FormContext);\n const updateAspectsData = (aspectsUpdate: string[]) => {\n const values = {\n 'aspects': [...aspectsUpdate]\n };\n formControllerContext.onFormChange(values);\n }\n\n const aspectKey = (aspect: AspectConfig) => {\n if (aspect) {\n return aspect.id + new Date().getTime();\n }\n return \"aspect\" + new Date().getTime();\n }\n\n const toggleAspect = (aspect: AspectConfig) => {\n const tempListAspects: string[] = [...listAspects];\n const idx = tempListAspects.findIndex((u: string) => u === aspect.id);\n if (idx > -1) {\n tempListAspects.splice(idx, 1);\n }\n else {\n tempListAspects.push(aspect.id);\n }\n setListAspects(tempListAspects);\n updateAspectsData(tempListAspects);\n }\n\n const removeAspect = (aspectId: string) => {\n const tempListAspects: string[] = [...listAspects];\n const idx = tempListAspects.findIndex((u: string) => u === aspectId);\n tempListAspects.splice(idx, 1);\n setListAspects(tempListAspects);\n updateAspectsData(tempListAspects);\n }\n\n\n return (\n \n \n Amenities\n \n \n {aspectsArr && aspectsArr.map((aspect: AspectConfig, index: number) => (\n
\n -1) ? { backgroundColor: '#E7F6FA', border: '1px #059FC4 solid' } : { backgroundColor: '#fff', border: '1px #dedede solid', color: '#999' }} onClick={() => toggleAspect(aspect)}>\n -1) ? { backgroundColor: '#E7F6FA' } : { backgroundColor: '#F6F6F6' }}>\n {(listAspects.indexOf(aspect.id) > -1) ? \"blue : \"gray}\n \n {aspect.display}\n \n
\n ))}\n
\n \n
\n
\n );\n}\n\nconst Container = styled.div`\n display:flex;\n flex-direction: row;\n flex-wrap: wrap;\n max-width:730px;\n\n > div {\n margin-right:11px;\n margin-top:15px;\n }\n`\n\nconst AmenityContainer = styled.div`\n\n`;\n\nconst AmenityThumbnail = styled.div`\n cursor: pointer;\n color: #666666;\n border-radius: 5px;\n width: auto;\n text-align: center;\n padding:8px;\n padding-right:12px;\n display:flex;\n justify-content: center;\n align-items:center;\n border: 1px solid #dedede;\n font-style: normal;\n font-weight: 500;\n font-size: 14px;\n line-height: 17px;\n color: #666666;\n\n`;\n\nconst AmenityIcon = styled.div`\n margin-right: 7px;\n margin-top:1px;\n > img {\n margin-bottom:-1px;\n }\n`;\n\n\nexport default React.memo(Amenities, (prevProps, nextProps) => nextProps.listing !== prevProps.listing);\n\n","import React, { FC, useContext, useEffect } from 'react'\nimport { Formik } from 'formik';\nimport { FormContext } from './gl-form-context';\nimport styled from 'styled-components';\n\ninterface Props {\n initVals: object,\n validationAdapter: Function,\n validationJSON: object,\n changeHandler?: Function,\n children?: any,\n forceValidate?: boolean,\n showErrors?: boolean\n}\n\nconst GLForm: FC = (props) => {\n\n const { initVals, validationJSON, children, changeHandler, showErrors } = props;\n const validationSchema = props.validationAdapter(validationJSON);\n \n let validateForm:Function;\n let errorsRef:object;\n\n let { forceValidate } = props;\n\n const formControllerContext = useContext(FormContext); \n\n const sleep = (ms:number) => new Promise(resolve => setTimeout(resolve,ms));\n\n const changeValues = (values: object) => {\n // if a change handler is passed from the embedding view, use that and let it handle what to do with the values\n if (changeHandler !== undefined) {\n changeHandler(values);\n } else {\n formControllerContext.onFormChange(values);\n }\n }\n\n const randomizeKey = ():string => {\n // this is a hacky way to get the form to update since enableReinitialize in the current version appears broken\n return \"r\" + new Date().getTime();\n }\n\n const setValidateForm = (formikProps:any) => {\n validateForm = formikProps.validateForm;\n }\n\n const touchAll = (formikProps:any) => {\n // this gets called before a force validate in order to ensure all fields are accounted for\n if(validationJSON){\n Object.keys(validationJSON).forEach(fieldName => {\n if(validationJSON[fieldName].required){\n formikProps.touched[fieldName] = true;\n }\n });\n }\n \n }\n\n const setErrors = (errors:object) => {\n errorsRef = errors;\n }\n\n const finishValidation = () => {\n const messages:any = [];\n Object.keys(errorsRef).forEach(fieldName => {\n messages.push(errorsRef[fieldName]);\n });\n formControllerContext.validateComplete(messages);\n }\n\n useEffect(() => {\n if((forceValidate || showErrors) && validateForm){\n\n if(forceValidate){\n forceValidate = false;\n validateForm().then(sleep(100).then(() => finishValidation()));\n }else if(showErrors){\n validateForm();\n }\n }\n });\n\n return (\n {\n changeValues(values);\n }}\n validate={(values) => {\n changeValues(values); // note: this is the current method to bubble values up\n }}\n render={(formikProps) => {\n if(!validateForm){\n setValidateForm(formikProps);\n }\n setErrors(formikProps.errors);\n if(forceValidate || showErrors){\n touchAll(formikProps);\n }\n return (\n \n {children}\n \n );\n }} />\n );\n};\n\nconst BaseForm = styled.div`\n background-color: #fdfdfd;\n text-align: left;\n`;\n\nexport default React.memo(GLForm);","export interface Validation {\n fieldName: string,\n type: FieldType,\n required?: boolean,\n min?: number,\n max?: number,\n regex?: string,\n notOneOf?: string[],\n messages:object\n}\n\nexport enum FieldType {\n STRING = \"STRING\",\n NUMBER = \"NUMBER\",\n DATE = \"DATE\",\n BOOLEAN = \"BOOLEAN\",\n ARRAY = \"ARRAY\"\n}\n\nexport enum MessageKey {\n REQUIRED = 'required',\n MIN = 'min',\n MAX = 'max',\n REGEX = 'regex',\n NOTONEOF = 'notoneof'\n}","import * as Yup from 'yup';\nimport { Validation, FieldType, MessageKey } from '../../types/forms/validation';\n\n/* \n The validation adapter's job is to take a validation json and turn it into a yup schema.\n This may be project specific to allow for different json formats for validations between projects. \n Yup reference: https://github.com/jquense/yup\n*/\n\nexport const convertValidationJSON = (validations:object) => {\n\n const schemaObj = {};\n\n Object.keys(validations).forEach(fieldName => {\n const validationObject:Validation = validations[fieldName];\n schemaObj[fieldName] = createValidation(fieldName,validationObject);\n });\n\n return Yup.object().shape(schemaObj); \n}\n\nconst getValidatonMessage = (messages:object, validation:string, fieldName:string, defaultMessage:string) => {\n // extract a custom message for a validation, if it exists (and fallback on the defaultMessage if not)\n if(messages !== undefined && messages[validation] !== undefined && messages[validation].length > 0){\n return messages[validation];\n }\n return fieldName + \": \" + defaultMessage;\n}\n\nconst createValidation = (fieldName:string, validation:Validation) => {\n\n let yupValidation:any;\n const messages:object = validation.messages;\n\n switch(validation.type){\n\n case FieldType.STRING:\n yupValidation = Yup.string();\n // min length\n if(validation.min !== undefined){\n yupValidation = yupValidation.min(validation.min, getValidatonMessage(messages,MessageKey.MIN,fieldName,'Minimum length not met: ' + validation.min));\n }\n // max length\n if(validation.max !== undefined){\n yupValidation = yupValidation.max(validation.max, getValidatonMessage(messages,MessageKey.MAX,fieldName,'Maximum length exceeded: ' + validation.max));\n }\n // regex\n if(validation.regex !== undefined){\n yupValidation = yupValidation.matches(validation.regex, getValidatonMessage(messages,MessageKey.REGEX,fieldName,'Regex failure on this field.'));\n }\n break;\n\n case FieldType.NUMBER:\n yupValidation = Yup.number();\n if(validation.min !== undefined){\n yupValidation = yupValidation.min(validation.min, getValidatonMessage(messages,MessageKey.MIN,fieldName,'Minimum value required: ' + validation.min));\n }\n if(validation.max !== undefined){\n yupValidation = yupValidation.max(validation.max, getValidatonMessage(messages,MessageKey.MAX,fieldName,'Maximum value exceeded: ' + validation.max));\n }\n break;\n\n case FieldType.DATE:\n yupValidation = Yup.date();\n if(validation.min !== undefined){\n yupValidation = yupValidation.min(validation.min, getValidatonMessage(messages,MessageKey.MIN,fieldName,'Minimum date exceeded: ' + validation.min));\n }\n if(validation.max !== undefined){\n yupValidation = yupValidation.max(validation.max, getValidatonMessage(messages,MessageKey.MAX,fieldName,'Maximum date exceeded: ' + validation.max));\n }\n break;\n\n case FieldType.BOOLEAN:\n yupValidation = Yup.boolean();\n break;\n\n case FieldType.ARRAY:\n yupValidation = Yup.array();\n if(validation.min !== undefined){\n yupValidation = yupValidation.min(validation.min, getValidatonMessage(messages,MessageKey.MIN,fieldName,'Minimum number of items required: ' + validation.min));\n }\n if(validation.max !== undefined){\n yupValidation = yupValidation.max(validation.max, getValidatonMessage(messages,MessageKey.MAX,fieldName,'Maximum number of items exceeded: ' + validation.max));\n }\n break;\n }\n\n // common validations\n if(yupValidation !== undefined){\n // required\n if(validation.required !== undefined && validation.required === true){\n yupValidation = yupValidation.required(getValidatonMessage(messages,MessageKey.REQUIRED,fieldName,'Required field'));\n }\n // not one of (not in)\n if(validation.notOneOf !== undefined && validation.notOneOf.length > 0){\n yupValidation = yupValidation.notOneOf(getValidatonMessage(messages,MessageKey.NOTONEOF,fieldName,'This value is not allowed'));\n }\n }\n\n return yupValidation;\n}","// these are limitations based on data type on the server (.NET limitations based on field mappings)\nexport enum ServerDataType {\n INTEGER = \"INTEGER\",\n LONG = \"LONG\",\n DECIMAL_CURRENCY = \"DECIMAL_CURRENCY\" /* one trillion dollars, arbitrary for now */\n}\n\n// created a separate function for this since the values needed to match from the config as a string\nexport const getRestriction = (dataType:ServerDataType) => {\n if(dataType){\n if(dataType === ServerDataType.INTEGER){\n return 2147483647;\n }else if(dataType === ServerDataType.LONG){\n return 9223372036854775807;\n }else if(dataType === ServerDataType.DECIMAL_CURRENCY){\n return 1000000000000.99 /* one trillion dollars, arbitrary for now */\n }\n }\n return 9223372036854775807; // default to long if no data type set\n}","import React, { FC, useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport InputMask from 'inputmask';\nimport { ServerDataType, getRestriction } from '../../types/common/max-lengths';\nimport { formatNumberWithCommas } from '../../utils/forms/format-number-commas';\nimport { formatDecimals } from '../../utils/forms/format-decimals';\nimport ReactTooltip from 'react-tooltip';\nimport TooltipOff from '../../assets/images/png/tooltip-off.png'\nimport TooltipOn from '../../assets/images/png/tooltip-on.png'\n\nexport interface FormInputProps {\n name: string,\n label?: string,\n subText?: string,\n defaultValue?: any,\n placeholder?: string,\n prefix?: string;\n suffix?: string;\n error?: boolean,\n title?: string,\n theme?: any,\n quoteID?: number,\n index?: number,\n appendToId?: string,\n numericOnly?: boolean,\n alphaNumeric? : boolean,\n allowNegatives?: boolean,\n acceptDecimals?: boolean,\n maxDecimalPlaces?: number,\n useOnChange?: boolean,\n forceFocus?: boolean,\n disabled?: boolean,\n disableTab?: boolean,\n mask?: string,\n toolTip?: string,\n serverDataType?: ServerDataType,\n inputvalue?: any,\n suppressFlexDisplay?: boolean,\n labelColor?: string,\n maxLength?: number,\n blurHandler?(values: any): void,\n indexedBlurHandler?(index: any, value: any): void\n}\n\nconst FormInput: FC = (props) => {\n const { name, label, subText, defaultValue, placeholder, error, index, appendToId, blurHandler,\n indexedBlurHandler, prefix, suffix, numericOnly, allowNegatives, useOnChange, title, alphaNumeric,\n acceptDecimals, maxDecimalPlaces, forceFocus, disabled, mask, serverDataType, inputvalue, toolTip, disableTab, suppressFlexDisplay, labelColor } = props;\n\n let ctrlDown: boolean = false; // tracking of control key \n let shiftDown: boolean = false; // tracking of shift key\n let selected: boolean = false; // text selection\n\n // decimal place restrictions can be passed in directly, but for any not set, this will handle the price fields (2 decimal places)\n let decimalRestriction = maxDecimalPlaces;\n if (!maxDecimalPlaces && acceptDecimals && serverDataType && serverDataType === ServerDataType.DECIMAL_CURRENCY) {\n decimalRestriction = 2;\n }\n\n // we use an id to handle grabbing our focus objects, so we need to assign it here\n let id: string = name;\n\n // note: appendToId overrides an index, so only use this option if you know that index isn't being injected to affect the id\n if (appendToId && appendToId.length > 0) {\n id = id + \"_\" + appendToId; // used in automated testing when we need to append an id. For example, with spaces, it needs a unique id for each field.\n } else if (index && index > -1) {\n id = id + \"_\" + index; // if we have an index, this is part of a set so make sure the id is unique otherwise bugs will happen\n }\n\n // build the container style\n let containerStyle = {};\n if (!suppressFlexDisplay) {\n containerStyle = { display: \"flex\" }\n }\n // ensure numeric values are formatted with commas\n const formatValue = (value: any) => {\n if (!value) {\n return value;\n }\n if (numericOnly) {\n if (acceptDecimals && decimalRestriction) {\n value = formatDecimals(value, decimalRestriction);\n }\n value = formatNumberWithCommas(value);\n }\n return value;\n }\n\n const formattedValue: any = formatValue(defaultValue); // this is what gets set in our default value\n\n // handle the blur event and use the callback function to set our value upwards\n const handleBlur = (e: React.FormEvent) => {\n bubbleChange(e.currentTarget.value);\n }\n\n const handleChange = (e: React.FormEvent) => {\n if (useOnChange) {\n bubbleChange(e.currentTarget.value);\n }\n }\n\n const bubbleChange = (value: any) => {\n // if this is a numeric only field, prepare the value to be a number\n if (numericOnly) {\n if (value && typeof value.replace === \"function\") {\n // remove any commas\n value = value.replace(/,/g, '');\n // remove leading 0s\n value = value.replace(/^0+/, '');\n // ensure value is a number\n value = Number(value);\n }\n }\n\n if (blurHandler !== undefined) {\n blurHandler(value);\n if (numericOnly && id) {\n const ele: any = document.getElementById(id);\n ele.value = formatValue(value);\n }\n }\n if (indexedBlurHandler !== undefined) {\n indexedBlurHandler(index, value);\n }\n }\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n\n // the key code for this key press\n const keyCode = e.keyCode ? e.keyCode : e.which;\n const regEx = '^[a-zA-Z0-9]+$';\n\n if (alphaNumeric) {\n if (!(new RegExp(regEx).test(e.key))) {\n e.preventDefault();\n }\n }\n\n if (numericOnly) {\n\n if (!ctrlDown) {\n ctrlDown = e.ctrlKey || e.metaKey;\n }\n\n if (!shiftDown) {\n shiftDown = e.shiftKey;\n }\n\n const numbers: number[] = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105];\n const decimals: number[] = [110, 190];\n const tab: number[] = [9];\n const shift: number[] = [16];\n const backspace: number[] = [8, 46]; // backspace and delete\n const enter: number[] = [13];\n const arrowKeys: number[] = [37, 39];\n const ctrlFunctions: number[] = [67, 86, 88]; // c, v, x\n const commas: number[] = [188]; // commas\n const negatives: number[] = [109, 189]; // - (keypad), -\n\n let validKeyCodes: number[] = [...numbers, ...tab, ...backspace, ...enter, ...arrowKeys, ...shift, ...commas];\n\n if (acceptDecimals) {\n validKeyCodes = [...validKeyCodes, ...decimals];\n }\n if (ctrlDown) {\n validKeyCodes = [...validKeyCodes, ...ctrlFunctions];\n }\n if (shiftDown) {\n validKeyCodes = [];\n }\n if (allowNegatives) {\n validKeyCodes = [...validKeyCodes, ...negatives];\n }\n\n // if ctrl key is down and key is not a ctrl function, check ctrl key again\n if (ctrlDown && ctrlFunctions.indexOf(keyCode) === -1) {\n ctrlDown = e.ctrlKey;\n }\n if (shiftDown) { // check the shift key again (otherwise it wont be false)\n shiftDown = e.shiftKey;\n }\n\n let allowInput: boolean = true;\n const ele: any = document.getElementById(id);\n if (ele && ele.value) {\n const val = ele.value;\n\n // if the user has entered decimals, check to see if they already have one (and don't allow)\n if (decimals.indexOf(keyCode) > -1 && acceptDecimals && val.indexOf(\".\") > -1) {\n allowInput = false;\n }\n // if the user has entered a numeric character, check to see if the length after the decimal is maxDecimalPlaces (and dont allow)\n if (decimalRestriction && numbers.indexOf(keyCode) > -1 && acceptDecimals && val.substr(val.indexOf(\".\"), val.length).length > decimalRestriction && !selected) {\n allowInput = false;\n }\n // if user has the ctrl key held down and the key is not a valid ctrl function, then don't allow\n if (ctrlDown && ctrlFunctions.indexOf(keyCode) === -1) {\n allowInput = false;\n }\n // max number size check\n if (serverDataType && numbers.indexOf(keyCode) > -1) {\n const proposedValue: string = val + String.fromCharCode(keyCode);\n if (Number(proposedValue) > getRestriction(serverDataType)) {\n allowInput = false;\n }\n }\n }\n\n selected = false; // ensure if selected and a key input happens, it's no longer selected (for decimal #s)\n\n if (!allowInput || validKeyCodes.indexOf(keyCode) === -1) {\n e.preventDefault();\n }\n }\n }\n\n const onPaste = (e: React.ClipboardEvent) => {\n\n const ele: any = document.getElementById(id);\n if (ele && numericOnly) { // only worry about pasting on numeric only fields\n e.stopPropagation();\n e.preventDefault();\n // get the clipboard paste data\n const clipboardData = e.clipboardData;\n if (clipboardData) {\n let pasted = clipboardData.getData('Text');\n if (pasted && pasted.length > 0) {\n let regex;\n if (acceptDecimals) {\n if (allowNegatives) {\n regex = /[^0-9.-]/g;\n } else {\n regex = /[^0-9.]/g;\n }\n\n // remove anything after first decimal (+ 2 characters)\n if (decimalRestriction && pasted.indexOf(\".\") > -1) {\n let decLength = pasted.substr(pasted.indexOf(\".\"), pasted.length).length;\n if (decLength <= 1) {\n regex = /[^0-9]/g; // if we don't have anything after the decimal, then we will strip the decimal too\n } else if (decLength > decimalRestriction + 1) {\n decLength = decimalRestriction + 1;\n }\n pasted = pasted.substr(0, pasted.indexOf(\".\") + decLength);\n }\n } else {\n // remove anything after first decimal, if there is \n if (pasted.indexOf(\".\") > -1) {\n pasted = pasted.substr(0, pasted.indexOf(\".\"));\n }\n if (allowNegatives) {\n regex = /[^0-9.-]/g;\n } else {\n regex = /[^0-9]/g;\n }\n }\n // remove any non-numeric from remaining string using regex\n pasted = pasted.replace(regex, \"\").replace(/ +/, \" \");\n // final check is on size, if set\n if (serverDataType) {\n const dataTypeVal: Number = getRestriction(serverDataType);\n if (Number(pasted) > dataTypeVal) {\n pasted = pasted.substr(0, dataTypeVal.toString().length);\n if (Number(pasted) > dataTypeVal) { // one more check to see if the value is > numerically\n pasted = pasted.substr(0, pasted.length - 1); // if so, do the final cut down\n }\n }\n }\n ele.value = formatValue(pasted);\n }\n }\n }\n }\n\n const onContainerFocus = () => {\n const ele: any = document.getElementById(id);\n if (ele) {\n selected = true;\n ele.select();\n }\n }\n\n useEffect(() => {\n if (mask && mask.length > 0) {\n const ele = document.getElementById(id);\n if (ele) {\n const inputMask = new InputMask(mask);\n inputMask.mask(ele);\n }\n }\n }, []);\n\n let inputbox = null;\n if (prefix || suffix) {\n\n let pre = null;\n if (prefix) {\n pre = {prefix};\n }\n\n let suf = null;\n if (suffix) {\n suf = {suffix};\n }\n\n inputbox = {pre}{suf}\n } else {\n inputbox = ;\n }\n\n const labelStyles = labelColor ? { color: labelColor } : {}\n\n return (\n \n
\n \n {subText &&\n {subText}\n }\n {toolTip && <>\n (e.currentTarget.src = TooltipOn)} onMouseOut={e => (e.currentTarget.src = TooltipOff)} />\n \n {toolTip}\n \n }\n
\n {inputbox}\n
\n );\n}\n\nconst IconTag = styled.a`\n margin-block-start: 2em;\n margin-left: .5em; \n`;\nconst StyledSubtext = styled.div`\n color: #9EA8AB;\n margin-block-start: 2.0em;\n margin-left: 1.5em;\n font-family: \"futura PT Book italic\";\n font-size: 14px;\n`;\n\nconst StyledTooltip = styled(ReactTooltip)`\n box-shadow: 0 0 4px 2px grey;\n width: 250px;\n font-family: \"Futura Md BT\", helvetica, arial, sans-serif;\n font-size: 12px;\n font-weight: 500;\n text-transform: none;\n`;\nconst BaseInputContainer = styled.div`\n width:100%;\n`;\n\nconst normalBorder = css`\n1px solid ${(props: FormInputProps) => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${(props: FormInputProps) => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst BaseFormInput = styled.input`\n color: #666666; \n border: ${(props: FormInputProps) => props.error ? errorBorder : normalBorder}; \n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: block;\n flex-grow: 1\n outline: 0; \n padding: 0.94em; \n ::placeholder {color:#cccccc;}\n text-align: left;\n text-decoration: none;\n width:100%;\n font-weight: ${(props: FormInputProps) => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${(props: FormInputProps) => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n :focus {\n border-color: ${(props: FormInputProps) => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n font-size: ${(props: FormInputProps) => (props.theme.formSize ? props.theme.formSize.input : '14px')}; \n`;\n\n// styles below are for the \"extras\" input with a prefix/suffix\n\nconst ExtrasInputContainer = styled.div`\n border: ${(props: FormInputProps) => props.error ? errorBorder : normalBorder}; \n background-color: #fff;\n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: flex;\n flex-direction: row;\n outline: 0;\n width:100%;\n :focus-within {\n outline: 1px solid ${(props: FormInputProps) => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n`;\n\nconst ExtrasFormInput = styled.input`\n border: 0;\n padding: 1em;\n outline: 0;\n color: #666666; \n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: ${props => (props.theme.formSize ? props.theme.formSize.input : '14px')};\n ::placeholder {color:#cccccc;}\n text-align: left;\n text-decoration: none;\n vertical-align: text-bottom;\n width: 100%;\n`;\n\nconst Prefix = styled.div`\n color: #8E9A9D;\n text-align: center;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 12px;\n margin-top:2px;\n cursor: pointer;\n padding: 11px 5px 5px 5px;\n min-width: 35px;\n`;\n\nconst Suffix = styled.div`\n color: #8E9A9D;\n text-align:right;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: 12px;\n margin-top:2px;\n cursor: pointer;\n padding: 11px 5px 5px 5px;\n`;\n\nexport default FormInput;","import React, { FC, ReactElement } from 'react';\nimport styled, {withTheme} from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport Select, {components} from 'react-select';\n\nexport interface FormSelectProps {\n name: string,\n label?: string,\n options?: any,\n defaultValue?: any,\n prompt?: string,\n doSort?: boolean,\n doAlphabeticalSort?: boolean,\n error?: boolean,\n theme?: any,\n forceFocus?: boolean,\n disabled?: boolean,\n appendToId?: string,\n isClearable?: boolean,\n changeHandler?(e: any): void\n}\n\nconst DropdownIndicator = (props:any) => {\n return (\n components.DropdownIndicator && (\n \n \n \n )\n );\n };\n\nconst MenuList = (props:any) => {\n const newChildren:any[] =[];\n let prefix:string = \"\";\n \n if(props.selectProps && props.selectProps.id){\n prefix = props.selectProps.id;\n }\n \n if(props.children && Array.isArray(props.children)){\n props.children.forEach((child:ReactElement) => {\n if(child && child.props && child.props.innerProps && child.props.data && child.props.data.value){\n // add a data-test attribute for automated testing\n const innerProps = {\n ...child.props.innerProps,\n 'data-test': prefix && prefix.length > 0 ? prefix + \"-option-\" + child.props.data.value : \"option-\" + child.props.data.value\n }\n // merge into a new props object to overcome readonly issues\n const propsObj = {\n props: {\n ...child.props,\n 'innerProps': innerProps\n }\n };\n // push the new, modified child element for rendering\n newChildren.push(\n {...child, ...propsObj }\n );\n }else{\n // fallback if we dont have the expected properties\n newChildren.push(child);\n }\n });\n }\n \n return (\n \n {newChildren}\n \n );\n}\n\n\nconst FormSelect: FC = (props) => {\n\n const { name, label, options, prompt, defaultValue, doSort, doAlphabeticalSort, error, changeHandler, forceFocus, disabled, appendToId, isClearable = true } = props;\n\n let id:string | undefined = name;\n if(appendToId && appendToId.length > 0){\n id = id += \"_\" + appendToId;\n }\n\n const handleChange = (selectedOption:any) => {\n if(changeHandler !== undefined){\n changeHandler(selectedOption ? selectedOption.value : null);\n } \n }\n\n \n // optional sort\n if (doSort !== undefined && doSort === true) {\n options.sort((a: any, b: any) => {\n return a.order - b.order;\n });\n }\n\n // do alphabetical sort\n if (doAlphabeticalSort !== undefined && doAlphabeticalSort === true) {\n options.sort((a: any, b: any) => a.label.localeCompare(b.label));\n }\n\n // styling to work with the react-select third party component\n const focusColor = props.theme && props.theme.colors ? props.theme.colors.inputFocus : \"#29BC9C\";\n const highlightColor = props.theme && props.theme.colors ? props.theme.colors.tertiaryAccent : \"#00B2DD\";\n const errorColor = props.theme && props.theme.colors ? props.theme.colors.error : \"darkred\";\n const white = \"#FFFFFF\";\n const black = \"#000000\";\n \n const customStyles = {\n menu: (base:any) => {\n return {\n ...base,\n fontFamily: \"'Futura Md BT', helvetica, arial, sans-serif\"\n }\n },\n control: (base: any, state: any) => {\n return {\n ...base,\n height: 45,\n minWidth:'100px',\n borderRadius: 0,\n boxShadow: state.isFocused ? 0 : 0,\n borderColor: error ? errorColor : state.isFocused ? focusColor : base.borderColor,\n '&:hover': {\n borderColor: state.isFocused ? focusColor : base.borderColor\n }\n }\n },\n option: (base:any, state: any) => {\n return {\n ...base,\n color: state.isFocused ? white : black,\n backgroundColor: state.isFocused ? highlightColor : base.highlightColor,\n '&:active': {\n ...base[':active'],\n backgroundColor: highlightColor\n }\n }\n },\n indicatorSeparator: (base:any) => {\n return {\n ...base,\n display: 'none'\n }\n },\n clearIndicator : (base:any) => {\n return {\n ...base,\n color: \"#666666\",\n '&:hover': {\n color: \"#333333\"\n }\n }\n }\n }\n\n return (\n \n \n element and p tag\n const toggleInput = () => {\n setShowInput(!showInput)\n }\n\n // updates local state and form-upload's parent state with the input's value\n const updateValue = (event: any) => {\n if (setFileName) {\n const value = event.currentTarget.value;\n setFileName(value);\n }\n }\n\n // updates local state and form-upload's parent state with the input's value\n const onBlurEvent = (event: any) => {\n if (setFileName) {\n const value = event.currentTarget.value;\n setFileName(value);\n props.setFileName(value, fileExtension, props.index);\n }\n }\n\n // reverts to title text from input if the user hits esc or enter\n const handleKeyPress = (event: any) => {\n const value = event.currentTarget.value;\n setFileName(value)\n if (event.keyCode === 13) {\n if (fileName !== '') {\n toggleInput();\n props.setFileName(value, fileExtension, props.index);\n }\n } else if (event.keyCode === 27) {\n if (fileName !== '') {\n toggleInput();\n }\n }\n }\n\n const openShadowBoxFunc = () => {\n if (props.openShadowBox) {\n props.openShadowBox(props.file);\n }\n }\n\n const openPDFPreview = () => {\n if (props.openPDFPreview) {\n props.openPDFPreview(props.file);\n }\n }\n\n const removeProccessingError = () => {\n if (props.removeFailedProcess && props.id) {\n props.removeFailedProcess(props.id);\n }\n }\n\n const override = () => {\n if (props.overrideFailure && props.id) {\n props.overrideFailure(props.id);\n }\n }\n\n const retry = () => {\n setProcessingRetry(true);\n if (props.retryError && props.id) {\n props.retryError(props.id);\n }\n }\n\n\n if (props.loadingMsg === \"Loading\" && (!props.overlay || props.overlay.show === false)) {\n return (\n // style={{width: \"100px\", height: \"100px\", backgroundColor: \"#dedede\"}}\n \n\n
\n
\n
Processing...
\n \n
\n
\n

{fileName}

\n\n
\n )\n }\n else if (props.errorMsg !== undefined && props.errorMsg !== null) {\n return (\n // style={{width: \"100px\", height: \"100px\", backgroundColor: \"#dedede\"}}\n \n\n
\n
\n
{props.errorMsg}
\n
\n
\n

{fileName}

\n\n
\n )\n }\n else if (!props.file) {\n return null\n }\n\n return (\n \n {(fileExtension.includes('.png') || fileExtension.includes('.jpg') || fileExtension.includes('.jpeg') || fileExtension.includes('.PNG') || fileExtension.includes('.JPG') || fileExtension.includes('JPEG')) ?\n
\n {props.overlay && props.overlay.show && props.file !== '/img/loading.png' &&\n \n \n {!processingRetry && props.overlay && props.overlay.allowOverride === true && Override}\n {!processingRetry && props.overlay && props.overlay.allowRetry === true && {props.overlay.retryLabel}}\n {!processingRetry && props.overlay && props.overlay.allowRemove === true && X}\n \n openShadowBoxFunc()} imageHeight={imageHeight} imageWidth={imageWidth} overlay={props.overlay}>\n {!processingRetry && props.overlay && props.overlay.message && {props.overlay.message}}\n {processingRetry && Checking Image...}\n \n \n }\n {props.watermark && openShadowBoxFunc()} />}\n
openShadowBoxFunc()}\n style={{ backgroundImage: `url(${props.file})` }}\n className=\"img-thumbnail\"\n />\n
\n :\n \n }\n \n {(showInput) ? (updateValue(e))} onBlur={(e: any) => (onBlurEvent(e))} id=\"test\" type=\"text\" value={fileName} /> :\n props.showNameEdit ?

{fileName}

:

{fileName}

}\n {props.primary && fileExtension !== '.pdf' && !fileExtension.includes('.xl') && !props.hideStar &&\n }\n \n )\n}\n\nconst PDFContainer = styled.div`\n cursor: pointer;\n`;\n\nconst PrimaryStar = styled.span`\n height:25px;\n width:25px;\n position:absolute;\n top:2px;\n right:5px;\n color:#fff;\n text-align:center;\n font-size:18px;\n`;\n\nconst InfoThumbnailContainer = styled.div`\n p {\n text-align:left;\n color: #666666;\n font-size: 13px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'}; \n line-height: 15px;\n padding-left:10px;\n position:relative;\n padding-right:8px;\n word-break: break-word;\n }\n .bkg-thumbnail {\n height:120px; \n width:170px;\n padding:15px;\n text-align:center;\n border: 1px rgba(0,0,0,0.15) dashed;\n background:#F6F6F6; \n }\n .info-text {\n padding-top:40px;\n color: #dcdcdc;\n }\n .error-text {\n padding-top:40px;\n color: red;\n }\n`;\n\nconst ThumbnailContainer = styled.div`\n p {\n text-align:left;\n cursor:pointer;\n color: #666666;\n font-size: 13px;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'}; \n line-height: 15px;\n padding-left:10px;\n transition:.2s ease all;\n position:relative;\n padding-right:8px;\n overflow-wrap: break-word; \n > img {\n position:absolute;\n top:1px;\n right:1px;\n width: 13px;\n height: 15px;\n }\n }\n .watermark {\n position:relative;\n > img {\n position:absolute;\n height:5%;\n left:43%;\n top:48%;\n cursor:pointer;\n opacity: .9; \n }\n }\n p:hover {\n top:1px;\n }\n .img-thumbnail {\n height: ${(props: ContainerProps) => props.imageHeight ? props.imageHeight + 'px' : '200px'}; \n width: ${(props: ContainerProps) => props.imageWidth ? props.imageWidth + 'px' : '200px'};\n background-position:center center;\n background-size: cover;\n background-repeat: no-repeat;\n cursor:pointer;\n }\n input {\n display:flex;\n margin:1rem auto;\n color: #999; \n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'}; \n font-size: 13px;\n width:90%;\n margin-top:8px;\n margin-bottom:0;\n }\n .pdfIcon {\n background:#f6f6f6;\n text-align:center;\n width:200px;\n height:150px;\n > img {\n margin-top:40px;\n }\n }\n #pencilIcon {\n opacity:.7;\n height:14px;\n top:0;\n left:190px;\n bottom:0;\n }\n`;\n\nconst Overlay = styled.div`\n height: ${(props: ContainerProps) => props.imageHeight ? props.imageHeight + 'px' : '200px'};\n width: ${(props: ContainerProps) => props.imageWidth ? props.imageWidth + 'px' : '200px'}; \n position: absolute;\n z-index: 2;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\n font-size: 12px;\n color: ${(props: ContainerProps) => props.overlay && props.overlay.color ? props.overlay.color : 'black'};\n text-align: center;\n`;\n\nconst OverlayHeader = styled.div` \n height: 25px;\n line-height: 25px;\n width: 100%;\n background: black;\n text-align: left;\n`;\n\nconst OverlayBody = styled.div`\n margin-top: ${(props: ContainerProps) => props.overlay && props.overlay.allowOverride ? '0' : '0'};\n cursor: pointer;\n`;\n\nconst OverlayMessage = styled.div`\n margin-top: 10px;\n white-space: pre-wrap;\n`;\n\nconst OverlayRemove = styled.a`\n color: white;\n font-size: 14px;\n font-weight: bold;\n position: absolute;\n top: 0;\n right: 5px;\n cursor: pointer;\n`;\n\nconst OverlayButton = styled.a`\n background: #00a657;\n color: white;\n font-size: 11px;\n font-weight: bold;\n cursor: pointer;\n padding: 3px;\n margin-left: 2px;\n`;\n\nexport default React.memo(Thumbnail);","import React, { FC, useState, useEffect } from 'react';\nimport styled from 'styled-components';\n\nexport interface PopOverItem {\n icon: any,\n overIcon?: any,\n name: string,\n clickHandler: Function\n}\n\nexport interface PopOverLocation {\n top?: number,\n left?: number\n}\n\nexport interface PopOverProps {\n index?: number,\n handlePopUpAction?: boolean,\n inactive?: boolean,\n updatePopover?: any,\n popoverEnabled?: boolean,\n options?: PopOverItem[],\n borderColor?: string,\n location?: PopOverLocation\n}\n\ntype Props = PopOverProps & PopOverLocation; \n\nconst PopOver: FC = (props) => {\n\n // isActive determines whether the popover menu is visible\n const [isActive, setIsActive] = useState(props.popoverEnabled);\n // current over if set\n const [mouseOver, setMouseOver] = useState(undefined);\n \n const { index, handlePopUpAction, options } = props;\n\n const togglePopover = () => {\n props.updatePopover(props.index)\n }\n\n const selectPopOverOption = (option:PopOverItem) => {\n option.clickHandler(index !== undefined && index > -1 ? index : option.name);\n if(handlePopUpAction){\n togglePopover();\n }\n }\n\n const setOver = (option:PopOverItem, over:boolean) => {\n if(option.overIcon){\n if(over){\n setMouseOver(option.overIcon);\n }else{\n setMouseOver(undefined);\n }\n }\n }\n \n useEffect(() => {\n if (isActive !== props.popoverEnabled){\n setIsActive(props.popoverEnabled)\n }\n }, [props.popoverEnabled]);\n\n return (\n \n { handlePopUpAction && ... }\n {isActive && \n \n { options && options.map((option:PopOverItem, idx:number) => {\n return setOver(option,true)} onMouseOut={() => setOver(option,false)} onClick={() => {selectPopOverOption(option);}} key={\"popOverOption\"+idx}>\n \n {(!props.inactive && (option.name === 'Inactive')) ? 'Active' : option.name}\n \n })}\n \n } \n \n )\n}\n\nconst PopoverWrapper = styled.div`\n display:flex;\n width:auto;\n font-weight: ${props => (props.theme.font ? props.theme.font.weight.normal : 'normal')};\n position:absolute;\n top: ${(props:PopOverProps) => (props.location ? props.location.top + 'px' : '')};\n left: ${(props:PopOverProps) => (props.location ? props.location.left + 'px' : '')};\n z-index: ${(props:PopOverProps) => (!props.handlePopUpAction ? '1000' : '')};\n`;\n\nconst PopoverToggle = styled.span`\n transform: rotate(-90deg);\n color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue')};\n font-weight: ${props => (props.theme.font ? props.theme.font.weight.bolder : 'bolder')};\n background:#fff;\n height:21px;\n width:24px;\n border-radius:50%;\n padding-bottom:3px;\n text-align:center;\n font-size:14px;\n letter-spacing:1px;\n cursor:pointer;\n`;\n\nconst ThreeDots = styled.span`\n position:relative; \n top:0; \n left:0; \n`;\n\nconst PopOverMenu = styled.div`\n background:#fff;\n color: ${props => (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue')};\n border: 0.5px solid #CCCCCC;\n box-sizing: border-box;\n box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.15);\n min-width: 185px;\n`;\n\nconst PopOverMenuItem = styled.p`\n cursor:pointer;\n font-family: ${props => props.theme.font ? props.theme.font.bold : 'helvetica'};\t\n font-size: 14px;\n line-height: 28px;\n position:relative;\n transition:.2s ease all;\n text-align: left;\n padding: 5px 15px 5px 5px;\n img {\n max-height:20px;\n max-width:20px;\n width:17px;\n margin-right:20px;\n margin-left:10px;\n position:relative;\n top:5px;\n }\n :hover {\n background: #00B2DD;\n color: #FFF;\n ${(props:PopOverItem) => (!props.overIcon ? 'img { -webkit-filter: brightness(0) invert(1); filter: brightness(0) invert(1);}' : '')}; \n }\n`;\n\nexport default React.memo(PopOver);","export interface GLFile {\n id?: number,\n url: string,\n displayText: string,\n active: boolean | null,\n primary:boolean | null,\n order?: number | null,\n watermark?: boolean | null,\n watermarkProcessStatus?: WatermarkProcessStatus,\n userOverride?: boolean | null,\n errorDisplay?: string | null,\n loadingMsg?: string | null,\n base64String?: string | null\n}\n\nexport enum WatermarkProcessStatus {\n SENDING_FILE_TO_SERVER = -1,\n READY_TO_PROCESS = 0,\n PROCESSING = 1,\n NO_WATERMARK = 2,\n WATERMARK = 3,\n WATERMARK_ERROR = 4,\n NOT_PROCESSED = 5,\n CRE_WATERMARK = 6\n}","import React, { FC, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel, {FormFieldLabelStyles} from '../form-field-label/form-field-label';\n\nexport interface FormCheckboxProps {\n name?: string,\n label?: string,\n defaultValue?: boolean,\n error?: boolean,\n value?: boolean,\n disabled?: boolean,\n appendToId?: string,\n styles?: FormCheckboxStyles,\n theme?: any,\n testId?: string,\n forceFocus?: boolean,\n changeHandler?(e: any): void,\n}\n\nexport interface FormCheckboxStyles {\n padding?: string, \n marginTop?: string,\n labelStyles?: FormFieldLabelStyles,\n backgroundColor?: string,\n checkColor?: string,\n hoverColor?: string,\n error?: boolean,\n outline?: string\n}\n\nconst FormCheckbox: FC = (props) => {\n\n const { name, label, changeHandler, forceFocus, value, disabled, appendToId, testId } = props;\n\n let { defaultValue } = props;\n if (!defaultValue) {\n defaultValue = false;\n }\n const [checked, setChecked] = useState(defaultValue);\n const [focused, setFocused] = useState(false);\n\n let id:string | undefined = name;\n if(appendToId && appendToId.length > 0){\n id = id += \"_\" + appendToId;\n }\n\n // click handler\n const handleClick = (e: React.FormEvent) => {\n if (changeHandler) {\n if (typeof value === \"boolean\") {\n setChecked(value)\n } else {\n setChecked(e.currentTarget.checked);\n }\n changeHandler(e.currentTarget.checked);\n }\n }\n\n // To handle click on label.\n const handleLabelClick = (e: React.FormEvent) => {\n if (changeHandler) {\n const check: boolean = e.currentTarget.previousSibling && e.currentTarget.previousSibling.previousSibling && e.currentTarget.previousSibling.previousSibling.checked;\n setChecked(!check)\n changeHandler(!check);\n }\n }\n const onKeyDown = (e: React.KeyboardEvent) => {\n \n const keyPressed = e.charCode || e.which;\n if (keyPressed === 32) { // spacebar\n e.preventDefault();\n const newChecked: boolean = !checked;\n setChecked(newChecked);\n if (changeHandler) {\n changeHandler(newChecked);\n }\n }\n }\n\n const getOutline = () => {\n if(focused){\n return '1px solid ' + (props.theme && props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C');\n }else {\n return '0';\n }\n }\n\n const onFocus = () => {\n setFocused(true);\n }\n\n const onBlur = () => {\n setFocused(false);\n }\n\n return (\n // @ts-ignore\n \n \n \n \n \n );\n}\n\nconst normalBorder = css`\n1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst BaseInputContainer = styled.div`\n width:100%;\n display:inline-flex;\n position:relative;\n padding: ${(props: FormCheckboxProps) => props.styles && props.styles.padding ? props.styles.padding : \"10px\"};\n margin-top: ${(props: FormCheckboxProps) => props.styles && props.styles.marginTop ? props.styles.marginTop : \"15px\"};\n padding-left:0;\n > h5 {\n font-size: ${(props: FormCheckboxProps) => props.styles && props.styles.labelStyles && props.styles.labelStyles.fontSize ? props.styles.labelStyles.fontSize : \"12px\"};\n margin:0;\n margin-top:4px;\n color:rgba(0,0,0,0.68);\n margin-left:45px;\n }\n input[type=\"checkbox\"]:checked {\n background: blue;\n } \n > input {\n position: absolute;\n opacity: 0;\n cursor: pointer;\n height: 100%;\n width: 20px;\n z-index:1;\n background:transparent !important;\n pointer-events: ${(props: FormCheckboxProps) => props.disabled ? \"none\" : \"inherit\"};\n user-select: ${(props: FormCheckboxProps) => props.disabled ? \"none\" : \"inherit\"};\n }\n input:hover ~ .checkmark {\n background-color: ${(props: FormCheckboxProps) => props.styles && props.styles.hoverColor ? props.styles.hoverColor : '#ccc'};\n }\n .checkmark:after {\n content: \"\";\n position: absolute;\n display: none;\n }\n input:checked ~ .checkmark:after {\n display: block;\n }\n .checkmark:after {\n left: 9px;\n top: 5px;\n width: 5px;\n height: 10px;\n border: solid ${(props: FormCheckboxProps) => props.styles && props.styles.checkColor ? props.styles.checkColor : props.theme && props.theme.colors ? props.theme.colors.primaryAccent : '#00ff00'};\n border-width: 0 3px 3px 0;\n -webkit-transform: rotate(45deg);\n -ms-transform: rotate(45deg);\n transform: rotate(45deg);\n }\n .checkmark.disabled {\n background-color: #ccc;\n }\n`;\n\nconst CheckMark = styled.span`\n position: absolute;\n top: 5px;\n left: 0;\n height: 25px;\n width: 25px;\n color: white;\n background: ${(props: FormCheckboxStyles) => props && props.backgroundColor ? props.backgroundColor : '#FFF'};\n border: ${(props: FormCheckboxStyles) => props.error ? errorBorder : normalBorder};\n outline: ${(props: FormCheckboxStyles) => props.outline ? props.outline : '0'}\n`;\n\nconst BaseFormInput = styled.input`\n color: #436f43;\n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: flex;\n outline: 0; \n padding: 1em; \n ::placeholder {color:#dadada;}\n text-align: left;\n text-decoration: none;\n text-transform: capitalize;\n width:20px;\n margin-top:0;\n margin-bottom:0;\n height:20px;\n margin-right:15px;\n background:#fff;\n`;\n\nexport default FormCheckbox;","import { WatermarkProcessStatus, GLFile } from '../types/listing/file';\nimport { Listing } from '../types/listing/listing';\nimport { Space } from '../types/listing/space';\nimport { FeatureFlags } from '../types/state';\n\n// these are the statuses that would place a file in the \"pending\": if its processing, if there IS a watermark (not allowed), if there was an error\nexport const problemWatermarkStatuses:number[] = [\n WatermarkProcessStatus.WATERMARK, \n WatermarkProcessStatus.WATERMARK_ERROR,\n WatermarkProcessStatus.CRE_WATERMARK,\n WatermarkProcessStatus.NOT_PROCESSED,\n WatermarkProcessStatus.PROCESSING,\n WatermarkProcessStatus.READY_TO_PROCESS\n]; \n\n// these are statuses that the bucket will refresh on when changed\nexport const refreshBucketStatuses:number[] = [\n WatermarkProcessStatus.NO_WATERMARK,\n WatermarkProcessStatus.WATERMARK,\n WatermarkProcessStatus.WATERMARK_ERROR,\n WatermarkProcessStatus.CRE_WATERMARK,\n WatermarkProcessStatus.NOT_PROCESSED,\n WatermarkProcessStatus.PROCESSING,\n WatermarkProcessStatus.READY_TO_PROCESS\n]\n\nexport const extractImagesThatNeedProcessing = (listing:Listing) => {\n\n // extract a list of ids of images that need to be processed for a listing.\n let imageIds:number[] = [];\n\n // photos under specifications\n if(listing && listing.photos){\n imageIds = checkFilesThatNeedProcessing(imageIds,listing.photos);\n }\n\n // floorplans under specifications\n if(listing && listing.floorplans){\n imageIds = checkFilesThatNeedProcessing(imageIds,listing.floorplans);\n }\n\n // loop through spaces and extract photos and floorplans\n if(listing && listing.spaces){\n listing.spaces.forEach((space:Space) => {\n if(space && space.photos){\n imageIds = checkFilesThatNeedProcessing(imageIds,space.photos);\n }\n if(space && space.floorplans){\n imageIds = checkFilesThatNeedProcessing(imageIds,space.floorplans);\n }\n });\n }\n\n return imageIds;\n}\n\nexport const checkFilesThatNeedProcessing = (imageIds:number[],fileArr:GLFile[]):number[] => {\n if(fileArr){\n fileArr.forEach((file:GLFile) => {\n imageIds = checkFile(imageIds,file);\n });\n }\n return imageIds;\n}\n\nexport const checkFileForWatermarkProblems = (file:GLFile, watermarkDetectionFeatureFlag: boolean, allowWatermarkingDetect: boolean):boolean => {\n if(!watermarkDetectionFeatureFlag || !allowWatermarkingDetect){ // if not detection enabled, will always be false\n return false;\n }\n\n if(file && file.userOverride === true){ // if a user has overriden, this file won't fall in the pending bucket\n return false;\n }\n\n if(file && file.watermarkProcessStatus !== undefined && file.watermarkProcessStatus !== null && problemWatermarkStatuses.indexOf(file.watermarkProcessStatus) > -1){\n return true;\n }\n return false;\n}\n\nconst checkFile = (ids:number[], file:GLFile) => {\n\n if(file.userOverride && file.userOverride === true && file.id && file.id > 0){\n return ids; // overrides are ignored\n }else{\n if(file.watermarkProcessStatus !== undefined && file.watermarkProcessStatus !== null && problemWatermarkStatuses.indexOf(file.watermarkProcessStatus) > -1 && file.id && file.id > 0){\n ids.push(file.id);\n }\n }\n return ids;\n}","import { State } from '../../../types/state';\nimport { GLFile } from '../../../types/listing/file';\n\nexport const refreshImagesSelector = (state:State):GLFile[] => {\n return state.entry.refreshImages;\n}","import React, { FC, useState } from 'react';\nimport { Document, Page, pdfjs } from 'react-pdf';\nimport styled from 'styled-components';\n\ninterface PDFPreviewProps {\n url: string,\n closeHandler?: () => void;\n}\n\ninterface PageSizeProps {\n width: number,\n height: number\n}\n\nconst PDFPreview: FC = (props) => {\n\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\n\n const {url, closeHandler} = props;\n\n const [numPages, setNumPages] = useState(null);\n const [pageNumber, setPageNumber] = useState(1);\n const [loadError, setLoadError] = useState(false);\n\n const pageSizeHeight:number = window.innerHeight * .80;\n\n const pageSize:PageSizeProps = {\n height: pageSizeHeight,\n width: Math.round(pageSizeHeight * .772727)\n };\n\n const documentLoaded = (data:any) => {\n setLoadError(false);\n setNumPages(data.numPages);\n }\n\n const documentLoadError = () => {\n setLoadError(true);\n }\n\n const closePreview = (e:any) => {\n e.preventDefault();\n if(closeHandler){\n closeHandler();\n }\n }\n\n const previousPage = () => {\n if(pageNumber > 1){\n const newPage = pageNumber - 1;\n setPageNumber(newPage);\n }\n }\n\n const nextPage = () => {\n if(numPages && pageNumber < numPages){\n const newPage = pageNumber + 1;\n setPageNumber(newPage);\n }\n }\n\n return (\n \n \n { numPages !== null && Download PDF }\n X\n \n \n {\n loadError === true && Error Loading PDF\n }\n { \n numPages === null && !loadError && Loading PDF Preview...\n }\n \n \n {\n numPages !== null && (\n <>\n \n \n { pageNumber && pageNumber > 1 &&
<
}
\n Page {pageNumber} of {numPages}\n { pageNumber && numPages && numPages > 0 && pageNumber < numPages &&
>
}
\n
\n \n )\n }\n
\n
\n \n
\n );\n}\n\nconst PDFPreviewContainer = styled.div`\n position:fixed;\n top:0;\n bottom:0;\n right:0;\n left:0;\n margin: 0 auto;\n background:rgba(0,0,0,0.6);\n z-index:2000;\n > span {\n color:#fff;\n font-size:35px;\n position:fixed;\n top:5px;\n right:15px;\n cursor:pointer\n }\n .react-pdf__Page__canvas {\n margin: 0 auto;\n }\n`;\n\nconst PDFPreviewHeader = styled.div`\n border-bottom:solid 1px #333;\n padding: 20px 0 15px 0;\n background: #006A4D;\n color: white;\n width: ${(props: PageSizeProps) => (props.width ? props.width + 'px' : '612px')};\n margin: 0 auto;\n`;\n\nconst PDFPreviewHeaderText = styled.div`\n margin-left: 10px;\n width: 100%;\n display: inline-block;\n width: 94%;\n`;\n\n\nconst PDFDownloadLink = styled.a`\n margin-left: 20px;\n background-color: #00B2DD;\n color: #ffffff;\n border: 0px;\n padding: 0.7em 1.5em;\n cursor: pointer;\n display: inline-block;\n text-decoration: none;\n`;\n\nconst PDFPreviewCloseButton = styled.a`\n color: white;\n font-size: 20px;\n font-weight: bold;\n display: inline-block;\n cursor: pointer;\n :hover {\n color: #FFFAFA;\n }\n`;\n\nconst PDFPlaceholder = styled.div`\n width: ${(props: PageSizeProps) => (props.width ? props.width + 'px' : '612px')} !important;\n height: ${(props: PageSizeProps) => (props.height ? props.height + 'px' : '792px')} !important;;\n background: white;\n color: black;\n margin: 0 auto;\n text-align: center;\n font-size: 16px;\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst PDFDocument = styled(Document)``;\n\nconst PDFPage = styled(Page)`\n > canvas {\n width: ${(props: PageSizeProps) => (props.width ? props.width + 'px' : '612px')} !important; \n height: ${(props: PageSizeProps) => (props.height ? props.height + 'px' : '792px')} !important;\n }\n`;\n\n\n\nconst ErrorText = styled.div`\n color: darkred;\n`;\n\nconst PDFPreviewBody = styled.div`\n`;\n\nconst PDFPreviewFooter = styled.div`\n width: ${(props: PageSizeProps) => (props.width ? props.width + 'px' : '612px')};\n margin: 0 auto;\n background: #006A4D;\n color: white;\n padding: 10px 0 10px 0;\n text-align: center;\n`;\n\nconst PDFPreviewFooterText = styled.div`\n display: inline-block;\n font-size: 16px;\n`;\n\nconst PDFPreviewLeftArrow = styled.a`\n color: white;\n font-size: 20px;\n font-weight: bold;\n margin-right: 10px;\n cursor: pointer;\n display: inline-block;\n width: 50px;\n`;\n\nconst PDFPreviewRightArrow = styled.a`\n color: white;\n font-size: 20px;\n font-weight: bold;\n margin-left: 10px;\n cursor: pointer;\n display: inline-block;\n width: 50px;\n`;\n\nexport default PDFPreview;","import React, { FC, useState, useCallback, useRef } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport Thumbnail, { ThumbnailSize, ThumbnailOverlay } from './thumbnail';\nimport PopOver, { PopOverItem } from '../popover/popover';\nimport { useDropzone } from 'react-dropzone'\nimport { GLFile, WatermarkProcessStatus } from '../../types/listing/file';\nimport { Col, Row, Grid } from 'react-styled-flexboxgrid';\nimport Lightbox from 'react-image-lightbox';\nimport \"react-image-lightbox/style.css\";\nimport { postFileNoWatermarkCheck, postFileWithWatermarkCheck, checkImage } from '../../api/glAxios';\nimport FormCheckbox from '../form-checkbox/form-checkbox'\nimport { useSelector } from 'react-redux';\n// images\nimport DeleteIcon from '../../assets/images/png/deleteIcon.png';\nimport StarIcon from '../../assets/images/png/blueStarIcon.png';\nimport InactiveIcon from '../../assets/images/png/eyeIcon.png';\nimport CBRELogo from '../../assets/images/png/cbre-logo-white.png';\nimport WatermarkIcon from '../../assets/images/png/icon-watermark.png'\nimport { checkFileForWatermarkProblems, problemWatermarkStatuses } from '../../utils/image-check';\nimport { featureFlagSelector } from '../../redux/selectors/featureFlags/feature-flag-selector';\nimport { refreshImagesSelector } from '../../redux/selectors/entry/refresh-images-selector';\nimport ErrorIcon from '../../assets/images/png/icon-error.png';\nimport { User, FeatureFlags } from '../../types/state';\nimport { userSelector } from '../../redux/selectors/system/user-selector';\nimport PDFPreview from './pdf-preview';\nimport { sortGLFiles } from '../../utils/sort-files';\nimport { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';\n\nexport interface FormUploadProps {\n name: string,\n label: string,\n options?: any,\n prompt?: string,\n doSort?: boolean\n title: string,\n isDraggable:boolean,\n accepted: string,\n description: string,\n showPrimary: boolean,\n disabled?: boolean,\n manualError?: boolean,\n manualErrorMessage?: string,\n updatePhotoPayload: any,\n singleUpload?: boolean,\n singleFileUploadWarning?: string,\n files: any,\n watermark?: boolean,\n allowWatermarkingDetect: boolean, // additional flag to indicate whether the upload even allows detect (i.e., brochures dont)\n useRestb?: boolean,\n defaultWaterMarkTrue?: boolean,\n watermarkDetectionFeatureFlag: boolean\n}\n\nconst FormUpload: FC = (props) => {\n\n // variables from props:\n const { name, accepted, description, title,isDraggable, manualError, manualErrorMessage, label, files, singleUpload, singleFileUploadWarning,\n allowWatermarkingDetect, useRestb, defaultWaterMarkTrue, disabled, watermarkDetectionFeatureFlag } = props;\n // used to toggle popover - only one popover can be open at once for ux purposes\n const [popover, setPopover] = useState(-1);\n // used to trigger shadowbox\n const [isOpen, setIsOpen] = useState(false);\n // used to trigger pdf preview\n const [pdfPreviewURL, setPdfPreviewURL] = useState(\"\");\n // index for image array\n const [photoPreviewURL, setPhotoPreviewURL] = useState(\"\");\n // warning message\n const [warningMessage, setWarningMessage] = useState(undefined);\n // feature flags\n const featureFlags: FeatureFlags = useSelector(featureFlagSelector);\n // image refresh bucket\n const imageRefreshBucket: GLFile[] = useSelector(refreshImagesSelector);\n // user selector\n const user: User = useSelector(userSelector);\n\n const watermarkCheckbox = useRef(defaultWaterMarkTrue ? defaultWaterMarkTrue : false);\n\n const findRefreshStatus = (file: GLFile) => {\n if (!imageRefreshBucket) {\n return file.watermarkProcessStatus;\n }\n let watermarkProcessStatus: number | undefined = file.watermarkProcessStatus;\n imageRefreshBucket.forEach((refreshFile: GLFile) => {\n if (file.id && refreshFile.id && refreshFile.id === file.id) {\n watermarkProcessStatus = refreshFile.watermarkProcessStatus;\n }\n });\n return watermarkProcessStatus;\n }\n\n const reorder = (list: any, startIndex: number, endIndex: number): GLFile[] => {\n const [removed] = list.splice(startIndex, 1);\n list.splice(endIndex, 0, removed);\n for (let index = 0; index < list.length; index++) {\n list[index].order = index + 1;\n }\n return list;\n };\n\n // function executed when user drops an item - used to update state with new order.\n const onDragEnd = (result: any) => {\n if (!result.destination) {\n return;\n }\n if (result.destination.index === result.source.index) {\n return;\n }\n const reorderedImages = reorder(payload, result.source.index, result.destination.index);\n props.updatePhotoPayload(reorderedImages);\n setPayload(reorderedImages)\n rerender();\n }\n\n let tempPayload: GLFile[] = [];\n\n let watermarkProcessChanged: boolean = false; // a flag we will change if a change has been detected in status (from the refresh bucket)\n\n if (files && files.length !== 0) {\n if (props.watermark) {\n tempPayload = [];\n files.forEach((file: any) => {\n const checkedStatus = findRefreshStatus(file);\n if (checkedStatus !== file.watermarkProcessStatus) {\n watermarkProcessChanged = true;\n }\n const tempPayloadFile = {\n id: file.id,\n url: file.url,\n displayText: file.displayText,\n active: file.active,\n primary: file.primary,\n userOverride: file.userOverride ? file.userOverride : false,\n watermark: file.watermark ? file.watermark : null,\n loadingMsg: file.loadingMsg ? file.loadingMsg : null,\n errorDisplay: file.errorDisplay ? file.errorDisplay : null,\n watermarkProcessStatus: checkedStatus,\n order: file.order\n }\n tempPayload.push(tempPayloadFile);\n });\n } else {\n tempPayload = [];\n files.forEach((file: any) => {\n const checkedStatus = findRefreshStatus(file);\n if (checkedStatus !== file.watermarkProcessStatus) {\n watermarkProcessChanged = true;\n }\n\n const tempPayloadFile = {\n id: file.id,\n url: file.url,\n displayText: file.displayText,\n active: file.active,\n primary: file.primary,\n userOverride: file.userOverride ? file.userOverride : false,\n loadingMsg: file.loadingMsg ? file.loadingMsg : null,\n errorDisplay: file.errorDisplay ? file.errorDisplay : null,\n watermarkProcessStatus: checkedStatus,\n order: file.order\n }\n tempPayload.push(tempPayloadFile);\n });\n }\n }\n const [payload, setPayload] = useState(tempPayload);\n\n if (watermarkProcessChanged && props.updatePhotoPayload) {\n // if one or more watermark processes has changed, we need to inform the change handler\n props.updatePhotoPayload(tempPayload);\n }\n\n // trigger to display error warning\n const [showError, setShowError] = useState('');\n // file upload limit size - currently 100mb\n const uploadLimit: number = 104857600;\n // force update equivalent:\n const [, updateState] = useState();\n const forceUpdate = useCallback(() => updateState({}), []);\n\n const checkAndSetPrimaryImage = (filesArr: GLFile[]) => {\n if (filesArr.length > 0) {\n // check to see if we have a primary file\n const primaryFileArr: GLFile[] = filesArr.filter(file => file.primary === true)\n if (primaryFileArr.length === 0) {\n // find the candidates that could be a primary file, we'll select the first in line to become the new primary\n const primaryFileCandidates: GLFile[] = filesArr.filter((tempFile: GLFile) => {\n if (tempFile && tempFile.active &&\n (!watermarkDetectionFeatureFlag) || (tempFile.watermarkProcessStatus\n && problemWatermarkStatuses.indexOf(tempFile.watermarkProcessStatus) === -1)) {\n return tempFile;\n }\n });\n if (primaryFileCandidates && primaryFileCandidates.length > 0) {\n primaryFileCandidates[0].primary = true;\n }\n }\n filesArr.sort((a: any, b: any) => (a.primary ? a : b));\n setPayload(filesArr);\n }\n }\n\n const checkRefreshBucket = (file: GLFile): GLFile => {\n if (imageRefreshBucket && imageRefreshBucket.length > 0) {\n imageRefreshBucket.forEach((imageRefreshItem: GLFile) => {\n if (file.id && file.id === imageRefreshItem.id) {\n file.watermarkProcessStatus = imageRefreshItem.watermarkProcessStatus;\n }\n });\n }\n return file;\n }\n\n // Function used for File Dropzone - it checks to make sure it only adds accepted file types\n // This function is additionally called whenever a user clicks on the input and selects a file\n const onDrop = useCallback(acceptedFiles => {\n const fileArray: any = Array();\n const temp: GLFile[] = payload;\n\n if (singleUpload && acceptedFiles.length > 1) {\n acceptedFiles = [acceptedFiles[0]];\n setWarningMessage(singleFileUploadWarning);\n }\n\n setShowError('');\n for (const file of acceptedFiles) {\n const acceptedFileTypes = accepted.split(\",\");\n const tempFileName = file.name.substr(file.name.lastIndexOf('.'), file.name.length);\n for (const acceptedFileType of acceptedFileTypes) {\n if (tempFileName.toLowerCase() === acceptedFileType.replace(/\\s/g, '').toLowerCase()) {\n if (file.size <= uploadLimit) {\n fileArray.push(file)\n let obj: GLFile;\n if (props.watermark) {\n obj = {\n id: -1,\n url: '/img/loading.png',\n // url: \"\",\n displayText: file.name,\n active: false,\n primary: false,\n watermark: watermarkCheckbox.current,\n loadingMsg: \"Loading\",\n watermarkProcessStatus: WatermarkProcessStatus.SENDING_FILE_TO_SERVER\n }\n } else {\n obj = {\n id: -1,\n url: '/img/loading.png',\n // url: \"\",\n displayText: file.name,\n active: false,\n primary: false,\n loadingMsg: \"Loading\",\n watermarkProcessStatus: WatermarkProcessStatus.SENDING_FILE_TO_SERVER\n }\n }\n temp.push(obj);\n } else {\n setShowError('File size exceeds ' + Math.round(uploadLimit / 1048576) + 'mb limit')\n }\n }\n }\n }\n\n setPayload(temp);\n\n // sort by smallest file size first\n fileArray.sort((a: any, b: any) => (a.size - b.size));\n\n const delayBetweenFiles: number = 2000; // the time in MS between each sendAndCheck file call (doesn't affect non watermark)\n const additionalDelay: number = 0; // this is just to make the math easier but still add a slight delay (1/10 second in this case)\n\n for (let i: number = 0; i < fileArray.length; i++) {\n const fileextention = fileArray[i].name.substr(fileArray[i].name.lastIndexOf('.'), fileArray[i].name.length);\n if (watermarkDetectionFeatureFlag && (fileextention.toLowerCase() !== \".pdf\")) {\n setTimeout(() => sendAndCheckFile(fileArray[i], i), (i * delayBetweenFiles) + additionalDelay);\n }\n else {\n sendFile(fileArray[i], i);\n }\n }\n\n checkAndSetPrimaryImage(payload);\n\n rerender();\n\n }, []);\n const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, disabled: disabled }) // dropzone hooks\n\n // sends files to the server, receives image url, then reconstruct the payload\n async function sendFile(theFile: any, i: number) {\n await postFileNoWatermarkCheck(theFile, (data: any) => {\n const temp: GLFile[] = payload;\n // make sure data returns http, otherwise remove placeholder and show an error\n\n const fileExtension = theFile.name.substr(theFile.name.lastIndexOf('.'), theFile.name.length);\n const setWatermarkProcessStatus: boolean = fileExtension && fileExtension.toLowerCase() === \".pdf\" ? false : true;\n\n if (data.url && data.url.includes('http')) {\n let obj: GLFile;\n if (props.watermark) {\n obj = {\n id: data.id,\n url: data.url,\n displayText: theFile.name,\n active: true,\n primary: false,\n watermark: watermarkCheckbox.current\n }\n if (setWatermarkProcessStatus) {\n obj.watermarkProcessStatus = data.watermarkProcessStatus;\n }\n\n } else {\n obj = {\n id: data.id,\n url: data.url,\n displayText: theFile.name,\n active: true,\n primary: (payload[0].url === '/img/loading.png' && i === 0)\n }\n if (setWatermarkProcessStatus) {\n obj.watermarkProcessStatus = data.watermarkProcessStatus;\n }\n }\n for (let index: number = 0; index < temp.length; index++) {\n // if (temp[index].url === '/img/loading.png') {\n if (temp[index].displayText === theFile.name) {\n temp[index] = obj;\n break;\n }\n }\n const modifiedPayload = replaceFileInArray(temp, theFile, obj);\n checkAndSetPrimaryImage(modifiedPayload);\n setPayload(modifiedPayload);\n props.updatePhotoPayload(temp)\n rerender();\n } else {\n let obj: GLFile;\n const errMsg = \"Error uploading file.\";\n obj = {\n id: -1,\n url: '/img/loading.png',\n displayText: theFile.name,\n active: true,\n primary: false,\n watermark: null,\n errorDisplay: errMsg\n }\n\n const modifiedPayload = replaceFileInArray(temp, theFile, obj)\n setPayload(modifiedPayload);\n setShowError('Error uploading');\n rerender();\n }\n })\n }\n // sends files to the server, receives image url, then reconstruct the payload\n async function sendAndCheckFile(theFile: any, i: number) {\n\n // console.log(\"sendAndCheckFile\", new Date().toISOString().substr(11, 8));\n\n let fileUploadFunc = postFileNoWatermarkCheck;\n if (useRestb) { // useRestb needs to be true in order to hit the watermark check function\n fileUploadFunc = postFileWithWatermarkCheck;\n }\n\n await fileUploadFunc(theFile, (data: any) => {\n\n const temp: GLFile[] = payload;\n // make sure data returns http, otherwise remove placeholder and show an error\n if (data.url && data.url.includes('http') && data.watermarkProcessStatus !== WatermarkProcessStatus.SENDING_FILE_TO_SERVER) {\n let obj: GLFile;\n if (props.watermark) {\n obj = {\n id: data.id,\n url: data.url,\n displayText: theFile.name,\n active: true,\n primary: false,\n watermark: watermarkCheckbox.current,\n watermarkProcessStatus: data.watermarkProcessStatus\n }\n } else {\n obj = {\n id: data.id,\n url: data.url,\n displayText: theFile.name,\n active: true,\n primary: false,\n watermarkProcessStatus: data.watermarkProcessStatus\n }\n }\n\n const modifiedPayload = replaceFileInArray(temp, theFile, obj);\n checkAndSetPrimaryImage(modifiedPayload);\n setPayload(modifiedPayload);\n props.updatePhotoPayload(temp)\n rerender();\n } else {\n let obj: any;\n let errMsg = \"Error uploading file.\";\n\n if (data.watermarkCode && data.watermarkCode === 1) {\n errMsg = \"External Watermark Detected. Please choose another Image.\";\n }\n else if (data.watermarkCode && data.watermarkCode === 2) {\n errMsg = \"Unable to upload image file. Watermark Detection Process failed.\";\n }\n else if (data.watermarkCode && data.watermarkCode === 3) {\n errMsg = \"Unable to upload image file. Watermark Detection Process unable to run.\";\n }\n\n obj = {\n id: -1,\n url: '/img/loading.png',\n displayText: theFile.name,\n active: true,\n primary: false,\n watermark: null,\n errorDisplay: errMsg\n }\n\n const modifiedPayload = replaceFileInArray(temp, theFile, obj)\n setPayload(modifiedPayload);\n rerender();\n }\n })\n\n }\n\n const replaceFileInArray = (arr: any, file: any, fileData: GLFile) => {\n\n if (arr && arr.length > 0) {\n for (let index: number = 0; index < arr.length; index++) {\n const currentFile: GLFile = arr[index];\n if (currentFile.displayText === file.name && currentFile.id === -1) {\n arr[index] = fileData;\n break;\n }\n\n }\n }\n\n return arr;\n }\n\n const removeFailedProcess = (id: number) => {\n\n const temp: GLFile[] = payload;\n if (temp && temp.length > 0) {\n\n let toDelete: number | null = null;\n let primaryFile: boolean = false;\n\n temp.forEach((file: GLFile, index: number) => {\n\n if (id && file.id === id) {\n toDelete = index;\n primaryFile = file.primary ? file.primary : false;\n }\n });\n\n if (toDelete !== null && toDelete > -1) {\n temp.splice(toDelete, 1);\n }\n\n checkAndSetPrimaryImage(temp);\n setPayload(temp);\n props.updatePhotoPayload(temp);\n rerender();\n }\n }\n\n const overrideFailure = (id: number) => {\n if (id && payload && payload.length > 0) {\n payload.forEach((file: GLFile) => {\n if (id && file.id === id) {\n file.userOverride = true;\n }\n });\n }\n setPayload(payload);\n props.updatePhotoPayload(payload);\n rerender();\n }\n\n async function retryImage(fileId: string) {\n // Example calling re-try check image\n await checkImage(fileId, (data: any) => {\n const id = data.id;\n let refresh: boolean = false;\n payload.forEach((file: GLFile) => {\n if (file.id === id) {\n file.watermarkProcessStatus = data.watermarkProcessStatus;\n refresh = true;\n }\n });\n if (refresh) {\n rerender();\n }\n });\n }\n\n const retryError = (id: number) => {\n if (id && id > 0) {\n retryImage(id.toString());\n }\n }\n\n // removes the file via the index in the array\n const deleteFile = (index: number) => {\n const temp: GLFile[] = payload;\n const isPrimary: boolean | null = temp[index].primary;\n temp.splice(index, 1);\n checkAndSetPrimaryImage(temp);\n setPayload(temp);\n setWarningMessage(undefined)\n props.updatePhotoPayload(temp);\n }\n\n // removes info message the index in the array\n const deleteFileMsg = (index: number) => {\n const temp: GLFile[] = payload;\n temp.splice(index, 1)\n\n setPayload(temp);\n rerender()\n // props.updatePhotoPayload(temp)\n }\n\n // // removes the file via the index in the array and opens option to replace\n // const replaceFile = (index: number) => {\n // const temp: GLFile[] = payload;\n // const isPrimary: boolean | null = temp[index].primary;\n // temp.splice(index, 1)\n // if (isPrimary && temp[0]) {\n // temp[0].primary = true\n // }\n // setPayload(temp);\n // props.updatePhotoPayload(temp);\n // }\n\n // when popover is triggered, update the index of popover's location - used to only have one open at a time\n const updatePopover = (index: number) => {\n if (popover !== index) {\n setPopover(index)\n } else {\n setPopover(-1)\n }\n }\n\n // sets the primary image by saving the index of the file within the array to the state primary\n const makePrimary = (index: number) => {\n const temp: GLFile[] = payload;\n for (const uno of temp) {\n uno.primary = false;\n }\n temp[index].primary = true;\n const sortedFiles = sortGLFiles(temp);\n setPayload(sortedFiles);\n props.updatePhotoPayload(sortedFiles);\n rerender();\n }\n\n // pushes the index of the file into this array which keeps track of inactive files\n const markInactive = (index: number) => {\n const temp: GLFile[] = payload;\n const isPrimary: boolean | null = temp[index].primary;\n const isActive: boolean | null = temp[index].active;\n temp[index].active = !(temp[index].active)\n checkAndSetPrimaryImage(temp);\n setPayload(temp)\n props.updatePhotoPayload(temp)\n }\n\n // update the index inside the nameArray with the name the user updated in thumbnail\n const setFileName = (fileName: string, extension: string, index: number) => {\n if (payload[index]) {\n const temp: GLFile[] = payload;\n temp[index].displayText = fileName + extension;\n setPayload(temp)\n props.updatePhotoPayload(temp)\n }\n }\n\n // watermark individual thumbnail\n const applyWaterMark = (index: number) => {\n const temp: GLFile[] = payload;\n temp[index].watermark = temp[index].watermark ? false : true;\n setPayload(temp);\n props.updatePhotoPayload(temp);\n rerender();\n }\n\n // turn on/off auto-watermark on upload\n const waterMarkAllImages = () => {\n watermarkCheckbox.current = !watermarkCheckbox.current;\n forceUpdate();\n }\n\n // function used to open the image shadowbox\n const openShadowBox = (url: string) => {\n setPhotoPreviewURL(url);\n setIsOpen(true)\n setTimeout(() => { getImageData(); }, 150)\n }\n\n // function used to open the pdf preview\n const openPDFPreview = (url: string) => {\n document.body.style.overflow = \"hidden\";\n document.body.style.marginRight = \"18px\";\n setPdfPreviewURL(url);\n }\n\n const closePDFPreview = () => {\n document.body.style.overflow = \"auto\";\n document.body.style.marginRight = \"0\";\n setPdfPreviewURL(\"\"); // closes out on re-render\n }\n\n // hit watermark, used during gallery forward/prev functionality\n const hideWatermark = () => {\n const cbreWatermark = document.getElementById('theWatermark');\n if (cbreWatermark) {\n cbreWatermark.style.height = '0px';\n }\n }\n\n // make sure image element exists before rendering watermark on top of it\n async function getImageData() {\n let imagesrc: HTMLImageElement | any;\n let elem: HTMLImageElement | any;\n const checkExist = setInterval(() => {\n imagesrc = document.getElementsByClassName(\"ril-image-current ril__image\");\n elem = document.getElementsByClassName('ril__inner');\n if (imagesrc[0] && imagesrc[0].src && imagesrc[0].complete && imagesrc[0].clientHeight !== 0 && elem[0]) { // eslint-disable-next-line\n clearInterval(checkExist);\n applyWatermark(imagesrc, elem)\n }\n }, 100);\n }\n\n // add height to the watermark, displaying it on the gallery\n const applyWatermark = (imagesrc: any, elem: any) => {\n if (imagesrc[0] && elem[0]) {\n const currentImage = imagesrc[0].src;\n for (const file of payload) {\n if (currentImage === file.url && file.watermark) {\n // let height = imagesrc[0].clientHeight;\n // // if image height is larger than viewport, use viewport height minus padding\n // if (height > window.innerHeight) {\n // height = window.innerHeight - 20;\n // }\n const cbreWatermark = document.getElementById('theWatermark');\n if (!cbreWatermark) {\n const img = document.createElement(\"img\");\n img.src = CBRELogo;\n img.id = 'theWatermark';\n // img.style.height = (height * 0.05) + 'px';\n img.style.height = '15px';\n elem[0].appendChild(img)\n } else {\n cbreWatermark.style.height = '15px';\n }\n }\n }\n }\n }\n\n // force update equivalent\n const rerender = () => {\n setTimeout(() => { forceUpdate() }, 1)\n }\n\n // function used to open the shadowbox\n\n const getPopOverOptions = (itemActive: boolean) => {\n const options: PopOverItem[] = [];\n\n // delete is included in all current scenarios\n options.push({ icon: DeleteIcon, name: 'Delete', clickHandler: deleteFile });\n // if the files accepted props includes images, (or image is active) include the primary object, otherwise omit it\n if (props.showPrimary && itemActive && props.watermark) {\n options.push({ icon: StarIcon, name: 'Primary', clickHandler: makePrimary });\n options.push({ icon: InactiveIcon, name: 'Inactive', clickHandler: markInactive });\n options.push({ icon: WatermarkIcon, name: 'Watermark', clickHandler: applyWaterMark });\n } else if (props.showPrimary && itemActive) {\n options.push({ icon: StarIcon, name: 'Primary', clickHandler: makePrimary });\n options.push({ icon: InactiveIcon, name: 'Inactive', clickHandler: markInactive });\n } else if (!props.showPrimary && props.watermark) {\n options.push({ icon: WatermarkIcon, name: 'Watermark', clickHandler: applyWaterMark });\n } else {\n options.push({ icon: InactiveIcon, name: 'Inactive', clickHandler: markInactive });\n }\n\n return options;\n }\n\n // render methods\n const displayProcessedFiles = () => {\n if (payload && payload[0] && payload[0].url !== '') {\n return <>\n {payload.map((payloadObj: any, index: number) => {\n // check the refresh images to make sure nothing here matches up\n const payloadFile: any = checkRefreshBucket(payloadObj);\n if (!checkFileForWatermarkProblems(payloadFile, watermarkDetectionFeatureFlag, allowWatermarkingDetect)) {\n return (\n isDraggable ?\n \n {provided => (\n \n {getThumbnailContainer(payloadFile, index)}\n \n )}\n \n :\n \n {getThumbnailContainer(payloadFile, index)}\n \n )\n } else {\n return <>;\n }\n })}\n ;\n }\n return <>;\n }\n\n\n const getThumbnailContainer = (payloadFile: any, index: number) => {\n return (\n
\n {payload[index].errorDisplay && deleteFileMsg(index)} >X}\n \n {!(payload[index].loadingMsg || payload[index].errorDisplay) && } {/* tslint:disable-line */}\n
\n )\n }\n\n\n\n const getThumbnailOverlay = (file: GLFile): ThumbnailOverlay => {\n\n if (!file || file.watermarkProcessStatus === undefined || file.watermarkProcessStatus === null\n || (!watermarkDetectionFeatureFlag)) {\n return { show: false, message: \"\", icon: \"\", color: \"\", allowRemove: false, allowOverride: false, allowRetry: false, retryLabel: \"\" };\n }\n\n let overlayMessage = \"\";\n let overlayIcon = null;\n let overlayColor = \"black\";\n let overlayAllowRemove = false;\n let overlayAllowOverride = false;\n let overlayRetry = false;\n let overlayRetryLabel = \"Retry\";\n\n if (file.watermarkProcessStatus === WatermarkProcessStatus.WATERMARK) {\n overlayMessage = \"Watermark detected.\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayAllowOverride = true;\n } else if (file.watermarkProcessStatus === WatermarkProcessStatus.CRE_WATERMARK) {\n overlayMessage = \"Watermark detected. \\n Approval Required.\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayAllowOverride = user && user.isAdmin ? true : false; // only allow override if the user is an admin\n } else if (file.watermarkProcessStatus === WatermarkProcessStatus.WATERMARK_ERROR) {\n overlayMessage = \"Unable to process image \\n(Code: WME)\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayRetry = true;\n overlayRetryLabel = \"Retry\";\n overlayAllowOverride = user && user.isAdmin ? true : false; // allow override if the user is an admin\n } else if (file.watermarkProcessStatus === WatermarkProcessStatus.NOT_PROCESSED) {\n overlayMessage = \"Unable to process image \\n(Code: NOP)\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayRetry = true;\n overlayRetryLabel = \"Retry\";\n overlayAllowOverride = user && user.isAdmin ? true : false; // allow override if the user is an admin\n } else if (file.watermarkProcessStatus === WatermarkProcessStatus.PROCESSING) {\n overlayMessage = \"Unable to process image \\n(Code: PRO)\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayRetry = true;\n overlayRetryLabel = \"Retry\";\n overlayAllowOverride = user && user.isAdmin ? true : false; // allow override if the user is an admin\n } else if (file.watermarkProcessStatus === WatermarkProcessStatus.READY_TO_PROCESS) {\n overlayMessage = \"Unable to process image \\n(Code: RTP)\";\n overlayColor = \"red\";\n overlayIcon = ErrorIcon;\n overlayAllowRemove = true;\n overlayRetry = true;\n overlayRetryLabel = \"Retry\";\n overlayAllowOverride = user && user.isAdmin ? true : false; // allow override if the user is an admin\n }\n\n // using the file, set a message and icon for the overlay \n const overlay: ThumbnailOverlay = {\n show: true,\n message: overlayMessage,\n icon: overlayIcon,\n color: overlayColor,\n allowRemove: overlayAllowRemove,\n allowOverride: overlayAllowOverride,\n allowRetry: overlayRetry,\n retryLabel: overlayRetryLabel\n }\n\n return overlay;\n }\n\n const createRandomKey = (): string => {\n return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);\n }\n\n const displayWatermarkIssues = () => {\n if (!payload || payload.length === 0) {\n return <>;\n }\n\n // create a list of the pending files so we know if we should display the section at all\n const problemFiles: GLFile[] = [];\n payload.forEach((payloadObj: GLFile) => {\n const payloadFile: GLFile = checkRefreshBucket(payloadObj);\n if (checkFileForWatermarkProblems(payloadFile, watermarkDetectionFeatureFlag, allowWatermarkingDetect)) {\n problemFiles.push(payloadFile);\n }\n });\n\n if (problemFiles && problemFiles.length > 0) {\n return (\n \n We’ve detected a watermark in the uploaded images. Please select override if you have permission to use this photo, remove the photo from the listing, or reach out to the Global Listings team for help.\n \n \n {problemFiles.map((payloadFile: GLFile, index: number) => {\n const overlay: ThumbnailOverlay = getThumbnailOverlay(payloadFile);\n return (\n \n
\n \n
\n \n );\n })}\n
\n
\n
\n );\n }\n return <>;\n }\n\n\n const getFileUploadSection = () => {\n return (\n <>\n {\n !(payload && payload[0] && singleUpload) &&\n inputClicked = true} >\n +\n \n \n \n }\n {\n showError !== '' &&

\n {(showError.includes('Error uploading')) ? Error uploading file. Please click window.location.replace(window.location.origin)} style={{ color: '#DF7909', cursor: 'pointer' }}>here to reload application.\n : showError}

\n }\n\n \n )\n\n }\n\n\n\n let inputClicked: boolean = false;\n\n const getListStyle = isDraggingOver => ({\n display: 'flex',\n padding: 8,\n overflow: 'auto',\n });\n\n return (\n \n {title} {description} {props.watermark && }\n {manualError && {manualErrorMessage}}\n {!manualError && warningMessage && {warningMessage}}\n \n
\n
!inputClicked ? event.stopPropagation() : ''\n })}>\n < Grid >\n \n {isDraggable ?\n < DragDropContext onDragEnd={onDragEnd}>\n \n {(provided, snapshot) => (\n
\n {displayProcessedFiles()}\n {provided.placeholder}\n \n {getFileUploadSection()}\n\n \n
\n )}\n
\n \n :\n
0 ? { display: \"flex\", padding: \"8\", overflow: \"auto\" } : { marginLeft: \"8px\", marginRight: \"8px\" }}>\n {displayProcessedFiles()}\n \n {getFileUploadSection()}\n \n
}\n {payload && payload.length === 0 &&\n

Drag & Drop files here

\n }\n {/* {JSON.stringify(payload)} */}\n
\n \n\n\n
\n
\n\n {displayWatermarkIssues()}\n
\n {\n isOpen && (\n setIsOpen(false)}\n reactModalProps={{\n preventScroll: true\n }}\n />\n )\n }\n {pdfPreviewURL && pdfPreviewURL.length > 0 && }\n
\n )\n}\n\nconst ProblemWatermarkFiles = styled.div`\n padding: 5px 10px 10px 10px;\n border: 1px solid #666666;\n margin: 10px 0 0 0;\n background: #F6F6F6;\n width: 100%;\n`;\n\nconst ProblemWatermarkFilesHeader = styled.div`\n text-align: center;\n color: ${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#00B2DD')};\n margin-bottom: 10px;\n`;\n\nconst FormUploadContainer = styled.div`\n > h5 {\n height: 15px;\n width: 601px; \n color: 'red';\n font-family: \"futura PT Book italic\";\n font-size: 12px;\n font-weight:300;\n font-family: ${props => props.theme.font ? props.theme.font : 'italic'}; \n line-height: 15px;\n margin-bottom:15px;\n }\n > h5.formUploadHeader {\n width: auto;\n display: flex;\n align-items: center;\n justify-content: left;\n margin: 30px 0;\n > div {\n width: auto;\n display: block;\n margin-top: 0;\n margin-left: 30px;\n > h5 {\n margin-top:0;\n }\n }\n }\n .plus {\n text-align:center;\n font-size:60px;\n color: ${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#00B2DD')};\n width:200px;\n position:absolute;\n top:25px;\n }\n .file-drop { width:100%; outline:0;border:0;}\n input:focus {outline:0;}\n .file-drop-target {\n display:flex;\n justify-content:flex-end;\n :focus {\n outline-color: ${props => props.theme.colors ? props.theme.colors.inputFocus : '#00B2DD'}; \n }\n }\n .file-drop-target > div {padding:0; width:100% !important;}\n\n #dropIndicator {\n line-height:117px;\n text-align:center;\n width: calc(100% - 310px);\n font-weight: ${props => (props.theme.font ? props.theme.font.weight.normal : 'normal')};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n color:#999;\n } \n`;\n\nconst BaseInputContainer = styled.div`\n width:100%;\n font-weight: ${props => (props.theme.font ? props.theme.font.weight.normal : 'normal')};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n .inactive {\n > div {\n .img-thumbnail { filter:grayscale(1); opacity:.3;}\n }\n }\n .thumb {\n position:relative;\n max-width:200px;\n width:200px;\n }\n .small-thumb{\n position:relative;\n max-width:125px;\n > div {\n .img-thumbnail { filter:grayscale(1); opacity:.3;}\n }\n }\n .file-drop-target-columns .thumb {\n max-width:none;\n }\n`;\n\nconst BaseFormInput = styled.input`\n width:100%;\n`;\n\nconst FileUploadButton = styled.div`\n position:relative;\n width:100%;\n cursor:pointer;\n text-align:center;\n height:150px;\n outline:0;\n display:flex;\n > h5 {\n font-size:20px;\n color: ${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#00B2DD')};\n margin:0;\n padding-top:75px;\n width:200px;\n border: 1px rgba(0,0,0,0.15) dashed;\n background:#F6F6F6;\n }\n > input {\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n cursor:pointer;\n z-index:1;\n min-height:150px;\n }\n`;\n\nconst StyledHeader = styled.h5`\n color: ${(headerProps: FormUploadProps) => headerProps.manualError ? css` \n ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n ` : '#8E9A9D'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n letter-spacing: .03rem;\n margin-block-end: 0.5em;\n`;\n\nconst StyledTitle = styled.span`\n height: 21px;\n width: auto;\n color: ${(headerProps: FormUploadProps) => headerProps.manualError ? css` \n ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n ` : '#8E9A9D'};\n font-family: 'Futura Md BT',helvetica,arial,sans-serif;\n font-size: 16px;\n font-family: ${props => props.theme.font ? props.theme.font : 'helvetica'}; \n line-height: 21px;\n margin-right:10px;\n`;\n\nconst StyledError = styled.div`\n width: 100%;\n color: ${props => props.theme.colors ? props.theme.colors.error : 'red'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n margin-bottom: 10px;\n`;\n\nconst StyledWarning = styled.div`\n width: 100%;\n color: ${props => props.theme.colors ? props.theme.colors.error : 'red'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n margin-bottom: 10px;\n`;\n\nconst DeleteMsg = styled.div`\n cursor: pointer;\n margin-top: 10px;\n margin-right: 10px;\n font-size: 16px;\n color: #02c2f2;\n float: right;\n`\n\nexport default React.memo(FormUpload, (prevProps, nextProps) => nextProps.files !== prevProps.files);","import React, { FC, useState, useEffect } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport { triggerFocusChange } from '../../utils/forms/trigger-focus-change';\n\nexport interface FormRadioButtonProps {\n name: string,\n label?: string,\n defaultValue?: any,\n error: boolean,\n optionVal?: any,\n theme?: any,\n forceFocus: boolean,\n selectedColor? : string,\n changeHandler?(e: any): void\n}\n\ninterface StyleProps {\n theme?: any,\n selectedColor? : string,\n error: boolean,\n focused: boolean\n}\n\nconst FormRadioButton: FC = (props) => {\n\n const { name, label, defaultValue, optionVal, error, forceFocus, selectedColor, changeHandler } = props;\n\n // handle user mouse down to select the item\n const mouseDown = (e: any) => {\n\n triggerFocusChange();\n \n if (changeHandler !== undefined) {\n changeHandler(optionVal);\n }\n }\n\n return (\n \n \n \n \n \n \n );\n}\n\nconst normalBorder = css`\n 1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n 1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'darkred')}; \n`;\n\nconst focusBorder = css`\n 1px solid ${props => (props.theme.colors ? props.theme.colors.primaryAccentLght : '#29BC9C')};\n`;\n\nconst selectedFill = css`\n${props => (props.theme.colors ? props.theme.colors.secondaryAccent : '#A9A9A9')}; \n`;\n\nconst BaseInputContainer = styled.div`\n margin: 0 0 0 0;\n padding: 0 0 0 0;\n float:left;\n\n > label {\n margin: 0 5px 0 0;\n padding: 0 0 0 0;\n float:left;\n background-color: ${(props: StyleProps) => props.theme.colors ? props.theme.colors.primaryBackground : \"#fbfbfb\"} \n border-radius:20px;\n border: ${(props: StyleProps) => props.error ? errorBorder : props.focused ? focusBorder : normalBorder};\n overflow:auto;\n cursor:pointer;\n }\n\n > label h5 {\n text-align:center;\n text-transform: capitalize;\n font-size: 1em;\n color: #AEAEAE;\n padding: 0.75em 1.5em 0.75em 1.5em;\n margin: 0 0 0 0;\n display:block;\n }\n\n > label input {\n position:absolute;\n top:-20px;\n visibility:hidden;\n }\n\n > label input:checked + h5 {\n background-color: ${props => (props.selectedColor ? props.selectedColor : (props.theme.colors ? props.theme.colors.tertiaryAccent : 'deepskyblue'))};\n color:#FFFFFF;\n }\n`;\n\nconst StyledLabel = styled.label``;\n\nconst BaseFormInput = styled.input`\n`;\n\nexport default FormRadioButton;","/* this is a function we can call when needed to force the UI to leave focus on the current field */\nexport const triggerFocusChange = () => {\n const el:any = document.querySelector(':focus');\n if(el){\n el.blur();\n } \n}","import React, { FC, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport FormRadioButton from './form-radiobutton';\nimport { Option } from '../../types/common/option';\n\nexport interface FormRadioGroupProps {\n name: string,\n label?: string,\n options? : any,\n defaultValue?: any,\n error?: boolean,\n forceFocus? : boolean,\n changeHandler?(e: any): void\n}\n\nconst FormRadioGroup: FC = (props) => {\n\n const { name, label, options, defaultValue, forceFocus, changeHandler } = props;\n const error = props.error ? true : false;\n const [ focusValue, setFocusValue ] = useState(\"\");\n const [ selectedValue, setSelectedValue ] = useState(defaultValue);\n const [ lostFocus, setLostFocus ] = useState(false);\n\n const onKeyDown = (e:React.KeyboardEvent) => {\n // if 37 or 39, user is using arrow keys to navigate\n const keyPressed = e.charCode || e.which;\n if(keyPressed === 37){ // left arrow\n e.preventDefault();\n const prev:number = findIdx(-1);\n if(prev > -1){\n setFocusValue(options[prev].value);\n }\n }else if(keyPressed === 39){ // right arrow\n e.preventDefault();\n const next:number = findIdx(1);\n if(next < options.length){\n setFocusValue(options[next].value);\n }\n }else if(keyPressed === 13){\n // if user presses enter, assume they want to select the current option\n if(focusValue !== \"\"){\n setSelectedValue(focusValue);\n if(changeHandler){\n changeHandler(focusValue); // since we use the option value to set the focus, we can just fire a change upwards\n } \n }\n }else if(keyPressed === 9){ // tab \n setFocusValue(\"\");\n setLostFocus(true);\n }\n } \n\n const findIdx = (next:number) => {\n let currentIdx = 0;\n options.forEach((option:any) => {\n if(option.value === focusValue){\n currentIdx = options.indexOf(option);\n }\n });\n return currentIdx + next;\n }\n\n const onFocus = () => {\n // on focus, ensure that the correct option value is focused on\n if(!defaultValue || focusValue !== defaultValue){\n setLostFocus(false);\n if(!defaultValue){\n setFocusValue(options[0].value); // if no default value, set focus on first item in list\n }else{\n setFocusValue(defaultValue);\n }\n }\n }\n\n const handleRBClick = (value:string) => {\n if(changeHandler){\n changeHandler(value);\n setFocusValue(\"\");\n }\n }\n\n const onMouseLeave = () => {\n setLostFocus(true);\n }\n\n useEffect(() => {\n // force focus is passed in externally from a parent, telling the component to focus on itself\n if(forceFocus && !lostFocus){\n const ele = document.getElementById(\"RG\"+name);\n if(ele){\n ele.focus();\n }\n }\n });\n\n return (\n \n \n { options.map((option:Option) => {\n return \n })}\n \n );\n}\n\nconst RadioGroup = styled.div`\n width: 100%;\n : focus {\n outline: none;\n }\n`;\n\nexport default FormRadioGroup;","import React, { FC } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label'\n\nexport interface FormTextAreaProps {\n name?: string,\n label?: string,\n placeholder?: string,\n defaultValue?: string,\n error?: boolean,\n theme?: any,\n appendToId?: string,\n blurHandler?(e: any): void\n}\n\nexport interface StyleErrorProps {\n error?: boolean\n}\n\nconst FormTextArea: FC = (props) => {\n\n const { name, label, placeholder, defaultValue, error, appendToId, blurHandler } = props;\n\n let id:string | undefined = name;\n if(appendToId && appendToId.length > 0){\n id = id += \"_\" + appendToId;\n }\n // handle the blur event and use the callback function to set our value upwards\n const handleBlur = (e: React.FormEvent) => {\n if (blurHandler !== undefined) {\n blurHandler(e.currentTarget.value);\n }\n }\n\n return (\n \n \n \n \n );\n};\n\nconst BaseInputContainer = styled.div`\n width:100%;\n`;\n\nconst normalBorder = css`\n1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst BaseFormTextArea = styled.textarea`\n color: #666666; \n border: ${(props: StyleErrorProps) => props.error ? errorBorder : normalBorder}; \n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: block;\n flex-grow: 1\n outline: 0; \n padding: 1em; \n ::placeholder {color:#dadada;}\n resize: vertical;\n text-align: left;\n text-decoration: none;\n width:100%;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')};\n :focus {\n border-color: ${props => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n font-size: ${props => (props.theme.formSize ? props.theme.formSize.input : '14px')}; \n`;\n\nexport default FormTextArea;","import React, { useState, FC, useMemo } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport iconSuccess from '../../assets/images/png/icon-success.png';\nimport { Tabs, TabList, Tab, TabPanel } from 'react-tabs';\n\nexport interface FormTabbedTextAreaProps {\n name?: string,\n label?: string,\n placeholder?: string,\n defaultValue?: string,\n error?: boolean,\n theme?: any,\n appendToId?: string,\n data?: any,\n tabsettings?: any,\n index?: number,\n updateTabData?(e: any): void,\n updateIndexedTabData?(index: any, e: any): void,\n}\n\nexport interface StyleErrorProps {\n error?: boolean\n}\n\nconst FormTabbedTextArea: FC = (props) => {\n\n const { name, label, error, appendToId, data, tabsettings, index, updateTabData, updateIndexedTabData } = props;\n\n const [langsettings, setlangsettings] = useState(tabsettings);\n const [langdata, setlangdata] = useState(data);\n const [currentIdx, setCurrentIdx] = useState(0);\n\n let currentValue: string = \"\";\n\n const initial = Array.from({ length: langsettings.length }, (v, idx) => idx).map(idx => {\n let arrayLangData = [];\n\n let custom: any = {\n value: ``,\n text: ``\n };\n\n if (langdata && langdata !== null && langdata.length !== 0) {\n if (Array.isArray(langdata)) {\n arrayLangData = langdata;\n } else {\n arrayLangData.push(langdata);\n }\n }\n\n if (arrayLangData.length > 0) {\n const itemData = arrayLangData.filter((d: any) => {\n return d.cultureCode === langsettings[idx].cultureCode;\n });\n if (itemData.length > 0) {\n custom = {...custom, ...itemData[0], value: itemData[0].text};\n }\n }\n\n custom.id = `${idx}`;\n custom.placeholder = `${langsettings[idx].placeholder ? langsettings[idx].placeholder : \"\"}`;\n custom.cultureCode = `${langsettings[idx].cultureCode ? langsettings[idx].cultureCode : idx}`;\n custom.lang = `${langsettings[idx].lang ? langsettings[idx].lang : idx}`;\n\n return custom;\n });\n\n const [state, setState] = useState({ tabdata: initial });\n\n let id: string | undefined = name;\n if (appendToId && appendToId.length > 0) {\n id = id += \"_\" + appendToId;\n\n }\n\n const updateValue = (idx: number, value: any) => {\n\n const tempState: any = state;\n\n if (tempState.tabdata[idx]) {\n tempState.tabdata[idx].value = value;\n }\n\n setState(Object.assign({}, tempState));\n handleChange(tempState.tabdata);\n }\n\n const handleChange = (changedValues: any) => {\n\n // before we bubble data up, get it back into the form that it was sent in (array of MultiLanguageItems)\n let valueArray: any = [];\n if (changedValues.length > 0) {\n valueArray = Array.from({ length: changedValues.length }, (v, idx) => idx).map((idx: any) => {\n // if (changedValues[idx] && changedValues[idx].value !== \"\") {\n if (changedValues[idx]) {\n const val: any = {\n ...changedValues[idx],\n text: `${changedValues[idx].value ? changedValues[idx].value : \"\"}`\n };\n return val;\n } else {\n return null;\n }\n });\n }\n // remove null values\n const removeNullVals = valueArray.filter((d: any) => {\n return d !== null;\n });\n\n if (updateTabData !== undefined) {\n // props.updateTabData(removeNullVals);\n updateTabData(removeNullVals);\n }\n if (updateIndexedTabData !== undefined) {\n updateIndexedTabData(index, removeNullVals);\n }\n }\n\n const selectNewTab = (idx: number) => {\n\n if (currentValue.length > 0) {\n const tempState: any = Object.assign({}, state);\n if (tempState.tabdata[currentIdx]) {\n tempState.tabdata[currentIdx].value = currentValue;\n }\n setState(tempState);\n handleChange(tempState.tabdata);\n }\n\n setCurrentIdx(idx);\n }\n\n\n // handle the blur event and use the callback function to set our value upwards\n const handleBlur = (e: React.FormEvent) => {\n \n updateValue(Number(e.currentTarget.id), e.currentTarget.value);\n \n }\n\n const changeValue = (e: React.FormEvent) => {\n\n currentValue = e.currentTarget.value;\n\n }\n\n const getAccKey = (item: any, idx: number) => {\n let extraKey: string = new Date().getTime().toString();\n if (item.id) {\n extraKey = item.id;\n }\n return \"acc_\" + idx + \"_\" + extraKey;\n }\n\n const TabsMemo = useMemo(() =>\n state.tabdata.map((item: any) => (\n {item.lang}{item.value && typeof item.value === \"string\" && item.value.trim().length > 0 && }\n )), [state]);\n\n const generateTabPanels = () => {\n return state.tabdata.map((item: any, idx: number) => (\n \n ));\n }\n\n return (\n \n \n selectNewTab(tabindex)}\n >\n \n <>{TabsMemo}\n \n <>{generateTabPanels()}\n \n\n \n );\n};\n\nconst STabs = styled(Tabs)`\n font-size: 12px;\n`;\n\nconst STabList = styled(TabList)`\n list-style-type: none;\n padding: 0px 4px 4px 0px;\n display: flex;\n background-color: #e9e9e9;\n margin: 0;\n`;\n\nconst STabPanel = styled(TabPanel)`\n display: none;\n /* min-height: 40vh; */\n border: 1px solid #d3d3d3;\n background-color: white;\n padding: 15px;\n margin-top: -5px;\n\n &.is-selected {\n display: block;\n }\n`;\n\nconst STab = styled(Tab)`\n margin-right: -1px;\n border: 1px solid #e9e9e9;\n border-bottom: 1px solid #d3d3d3;\n padding: 10px;\n user-select: none;\n cursor: pointer;\n color: 1px solid #d3d3d3;\n display: inline-flex;\n\n &.is-selected {\n // color: white;\n // background: black;\n border: 1px solid #d3d3d3;\n color: 1px solid #c6c6c6;\n border-bottom: 1px solid white;\n background-color: white;\n cursor: arrow;\n }\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px rgba(0, 0, 255, .5)\n }\n`;\n\n\n\nconst BaseInputContainer = styled.div`\n width:100%;\n`;\n\nconst normalBorder = css`\n1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst BaseFormTabbedTextArea = styled.textarea`\n color: #666666; \n border: ${(props: StyleErrorProps) => props.error ? errorBorder : normalBorder}; \n box-sizing: border-box;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: block;\n flex-grow: 1;\n outline: 0; \n padding: 1em; \n ::placeholder {color:#dadada};\n resize: vertical;\n text-align: left;\n text-decoration: none;\n width:100%;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')};\n :focus {\n border-color: ${props => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n font-size: ${props => (props.theme.formSize ? props.theme.formSize.input : '14px')}; \n`;\n\nconst TabText = styled.div``;\n\nconst TabIcon = styled.img`\n width: 15px;\n height: 15px;\n margin-left: 5px;\n`;\n\nexport default FormTabbedTextArea;","import React, { FC, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport FormFieldLabel from '../form-field-label/form-field-label';\nimport DatePicker from 'react-datepicker'; // reference: https://reactdatepicker.com/\nimport CalendarIcon from '../../assets/images/png/calendarIcon.png';\nimport \"../../assets/css/react-datepicker.css\";\n\nexport interface FormDateFieldProps {\n name?: string,\n label?: string,\n defaultValue?: any,\n placeholder?: string,\n format?: string,\n restrictInput?: boolean,\n error?: boolean,\n theme? :any,\n appendToId?: string,\n changeHandler?(value:any) : void\n}\n\nconst FormDateField:FC = (props) => {\n const { name, label, placeholder, format, restrictInput, error, appendToId, changeHandler } = props;\n let { defaultValue } = props;\n\n if(defaultValue !== undefined && !(defaultValue instanceof Date) && defaultValue !== null){\n defaultValue = new Date(defaultValue);\n }\n\n let id:string | undefined = name;\n if(appendToId && appendToId.length > 0){\n id = id += \"_\" + appendToId;\n }\n\n const [currentDate, setCurrentDate] = useState(defaultValue);\n\n const dateFormat = format ? format : \"MM/dd/yyyy\";\n\n // handle the change event using our callback\n const handleChange = (date:any) => {\n setCurrentDate(date);\n if(changeHandler !== undefined){\n changeHandler(date);\n }\n }\n\n // this method simulates a click on the input if the user clicks the icon\n const clickIcon = () => {\n const picker:any = name ? document.getElementById(name) : undefined;\n if(picker !== undefined){\n picker.dispatchEvent(new MouseEvent('click',{view: window, bubbles: true, cancelable: true}));\n }\n }\n\n const onKeyDown = (e:React.KeyboardEvent) => {\n const keyCode = e.keyCode ? e.keyCode : e.which;\n const allowed:number[] = [8,46]; // 8 = backspace, 46 = delete\n\n if(keyCode && keyCode !== 9){ // 9 = tab, so let it happen naturally\n // if not tab, check for allowed key strokes\n if(keyCode && allowed.indexOf(keyCode) > -1){\n setCurrentDate(null);\n handleChange(null);\n }else if(restrictInput){\n // if input restricted, don't allow typing outside of anything we allow above\n e.preventDefault();\n }\n }\n }\n\n return(\n \n \n \n \n \n \n \n );\n }\n\nconst BaseInputContainer = styled.div`\n width: 100%;\n`;\n\nconst normalBorder = css`\n1px solid ${props => (props.theme.colors ? props.theme.colors.border : '#cccccc')}; \n`;\n\nconst errorBorder = css` \n1px solid ${props => (props.theme.colors ? props.theme.colors.error : 'red')}; \n`;\n\nconst StyledInputDiv = styled.div`\n border: ${(props: FormDateFieldProps) => props.error ? errorBorder : normalBorder}; \n display: flex;\n position: relative;\n :focus-within {\n outline: 1px solid ${props => props.theme.colors ? props.theme.colors.inputFocus : '#29BC9C'};\n }\n`;\n\nconst StyledDatePicker = styled(DatePicker)`\n color: #666666;\n box-sizing: border-box;\n border: none;\n -webkit-box-sizing: border-box; \n -moz-box-sizing: border-box; \n display: block;\n flex-grow: 1;\n outline: 0; \n padding: 1em; \n ::placeholder {color:#dadada;}\n text-align: left;\n text-decoration: none;\n text-transform: uppercase;\n width:100%;\n font-weight: ${props => props.theme.font ? props.theme.font.weight.normal : 'normal'};\n font-family: ${props => (props.theme.font ? props.theme.font.primary : 'inherit')}; \n font-size: ${props => (props.theme.formSize ? props.theme.formSize.input : '14px')};\n margin: 0;\n vertical-align: middle;\n`;\n\nconst StyledCalendarIcon = styled.img` \n vertical-align: middle;\n border: none;\n background-color: #FFFFFF;\n padding: .65em .75em;\n cursor: pointer;\n`\n\n export default FormDateField;","import React, { FC } from 'react';\nimport { connect } from 'formik';\n\ninterface GLFieldAdapterProps {\n field: any,\n use: any,\n formik: any\n}\n\nconst GLFieldAdapter: FC = ({\n field,\n ...props\n}) => {\n\n if (!props.use || !field) {\n return <>;\n }\n\n const { setFieldValue, setFieldTouched, touched, errors } = props.formik;\n\n // handlers : these are methods that handle values the component needs to set and validate using formik.\n const blurHandler = (value: any) => {\n setFieldValue(field.name, value, false);\n setFieldTouched(field.name, true);\n }\n\n const changeHandler = (value: any) => {\n setFieldValue(field.name, value, false);\n setFieldTouched(field.name, true);\n }\n\n // this is where the adapter does its work : taking the formik values and passing down to our components\n let error = touched[field.name] && errors[field.name];\n let errorMessage = \"\";\n const defaultValue = field.value; // default value of the field\n const name = field.name;\n\n if (error) {\n error = true;\n }\n\n // manual error check - if it exists, we assume there is an error\n const manualErrorName: string = \"manualErrors\";\n if (props[manualErrorName] && props[manualErrorName][name]) {\n error = true;\n errorMessage = props[manualErrorName][name].message;\n }\n\n // create the component we are trying to render, passing down any props and mapped props\n return React.createElement(props.use, { ...props, error, errorMessage, name, defaultValue, blurHandler, changeHandler }, props.children);\n};\n\nexport default connect(GLFieldAdapter);","import React from 'react'\nimport { Field } from 'formik';\nimport GLFieldAdapter from './gl-field-adapter';\n\ninterface GLFieldProps {\n use: any // todo: figure out the type that works for our components.\n}\n\nconst GLField : (p: T & GLFieldProps) => React.ReactElement = (props) => {\n return (\n \n );\n};\n\nexport default GLField;","export const escapeRegexCharacters = (str:string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}","import { AutoCompleteResult, AutoCompleteRequest } from '../../../types/common/auto-complete';\nimport axios from 'axios';\nimport { Address } from '../../../types/listing/address';\nimport { escapeRegexCharacters } from '../../apiUtil';\n\nconst placesURL = \"https://api.mapbox.com/geocoding/v5/mapbox.places/\";\nconst accessToken = \"pk.eyJ1IjoibGlnbGRldnMiLCJhIjoiY2p3amthb2R4MGR6cjQ5cW41MWsxdHB3ciJ9.cmINTRsP78I-obiEXYoNqw\";\n\ninterface MapboxPlaceResult {\n place_name: string,\n result: any\n}\n\ninterface MapboxContextResult {\n id: string,\n text: string\n}\n\nexport const getMapboxPlaces = (request:AutoCompleteRequest): Promise => {\n\n const escapedValue = escapeRegexCharacters(request.value.trim()); \n const urlValue:string = encodeURI(escapedValue);\n\n const cachebuster = new Date().getTime();\n const autocomplete = true;\n const country = \"us\";\n const types = \"country%2Caddress\";\n\n // note: append \"&country=\" + country\n // to restrict to country\n\n const requestURL:string = placesURL + urlValue + \".json?access_token=\" + accessToken + \"&cachebuster=\" + \n cachebuster + \"&autocomplete=\" + autocomplete + \"&types=\" + types;\n\n return axios.get(requestURL).then(res => {\n return convertMapboxResults(res.data.features);\n });\n}\n\nexport const convertMapboxResults = (results:MapboxPlaceResult[]) : AutoCompleteResult[] => {\n \n const converted:AutoCompleteResult[] = [];\n\n results.forEach((result:MapboxPlaceResult) => {\n converted.push({ name: result.place_name, value: result});\n });\n\n return converted;\n}\n\nconst extractMapboxContextResult = (contexts:MapboxContextResult[],search:string):string => {\n let foundContextVaue:string = \"\";\n contexts.forEach((context:MapboxContextResult) => {\n if(context && context.id && context.id.indexOf(search) > -1){\n foundContextVaue = context.text;\n return;\n }\n });\n return foundContextVaue;\n}\n\nexport const createAddressFromMapboxResult = (result: AutoCompleteResult):Address => {\n\n // mapbox : name, value \n /* \n value: \n center: [0] (lng), [1] (lat),\n context: [\n {id: \"postcode....\"}, i.e. 80109\n {id: \"place...\"}, i.e., \"Castle Rock\"\n {id: \"region...\"}, i.e., \"Colorado\"\n {id: \"country...\"}, i.e., \"United States\"\n ],\n address: \"\" i.e., \"3188\",\n text: \"\" i.e., \"W. Calypso Court\"\n\n */\n\n const lng = result.value.center[0];\n const lat = result.value.center[1];\n\n const city:string = extractMapboxContextResult(result.value.context,\"place\");\n const postalCode:string = extractMapboxContextResult(result.value.context,\"postcode\");\n const stateOrProvince:string = extractMapboxContextResult(result.value.context,\"region\");\n const country:string = extractMapboxContextResult(result.value.context,\"country\");\n const street = (result.value.address ? result.value.address + \" \" : \"\") + (result.value.text ? result.value.text : \"\");\n \n return {\n 'street': street,\n 'city': city,\n 'postalCode': postalCode,\n 'stateOrProvince': stateOrProvince,\n 'country': country,\n 'lat': lat,\n 'lng': lng\n }\n}","import { AutoCompleteResult, AutoCompleteRequest } from '../../../types/common/auto-complete';\nimport axios, { AxiosRequestConfig } from 'axios';\nimport { Address } from '../../../types/listing/address';\nimport { escapeRegexCharacters } from '../../apiUtil';\nimport queryString from 'query-string';\n\ninterface PitneyBowesUnit {\n formattedUnitAddress: string\n}\n\ninterface PitneyBowesRange {\n placeName: string,\n units: PitneyBowesUnit[]\n}\n\ninterface PitneyBowesGeometry {\n type: string,\n coordinates: number[]\n}\n\ninterface PitneyBowesAddress {\n formattedAddress: string,\n mainAddressLine: string,\n placeName: string,\n areaName1: string,\n areaName2: string,\n areaName3: string,\n areaName4: string,\n postCode: string,\n postCodeExt: string,\n country: string,\n addressNumber: string,\n streetName: string,\n unitType: string,\n unitValue: string\n}\n\ninterface PitneyBowesAddressResult {\n address: PitneyBowesAddress,\n geometry: PitneyBowesGeometry,\n totalUnitCount: number,\n ranges: PitneyBowesRange[]\n}\n\nconst geosearchURL = \"https://api.pitneybowes.com/location-intelligence/geosearch/v2/locations?\";\n\nconst apiKey:string = \"Rmc57nYFglzdoRhJ9qGZKaBzU0hNxtEE\";\nconst secret:string = \"ZkJj5K5TyuuC3Zgw\";\nconst base64value:string = \"Um1jNTduWUZnbHpkb1JoSjlxR1pLYUJ6VTBoTnh0RUU6WmtKajVLNVR5dXVDM1pndw==\";\nconst token:any = undefined;\n\nexport const getPitneyPlaces = (request:AutoCompleteRequest): Promise => {\n\n const escapedValue = escapeRegexCharacters(request.value.trim()); \n const urlValue:string = encodeURI(escapedValue);\n let country:string = \"USA\";\n if(request.extraData){\n country = request.extraData;\n } \n // const cachebuster = new Date().getTime();\n // const autocomplete = true;\n // \n // const types = \"country%2Caddress\";\n\n // https://api.pitneybowes.com/location-intelligence/geosearch/v2/locations?searchText=1%20Global%20V&country=AUS\n\n const requestBody = {\n 'grant_type': 'client_credentials'\n }\n\n const postConfig:AxiosRequestConfig = {\n method: 'POST',\n url: 'https://api.pitneybowes.com/oauth/token',\n headers: {\n 'Authorization': 'Basic ' + base64value,\n 'Content-Type': 'application/x-www-form-urlencoded'\n },\n data: queryString.stringify(requestBody)\n }\n\n return axios(postConfig).then((ores:any) => {\n\n // tokens expire after 36 seconds, so we just grab them every time for now...we should add logic to check a token instead\n \n const accessToken = ores.data.access_token;\n\n const getConfig:AxiosRequestConfig = {\n method: 'GET',\n url: geosearchURL + \"searchText=\" + urlValue + \"&country=\" + country,\n headers: {\n 'Authorization': 'Bearer ' + accessToken\n }\n }\n\n return axios(getConfig).then(res => {\n return convertPitneyBowesResults(res);\n });\n });\n}\n\nexport const convertPitneyBowesResults = (result:any) : AutoCompleteResult[] => {\n \n const converted:AutoCompleteResult[] = []; \n\n if(result && result.data && result.data.location){\n const addressResults:PitneyBowesAddressResult[] = result.data.location;\n addressResults.forEach((addressResult:PitneyBowesAddressResult) => {\n converted.push({ name: addressResult.address.formattedAddress, value: addressResult});\n });\n }\n\n return converted;\n}\n\nexport const createAddressFromPitneyBowesResult = (result: AutoCompleteResult):Address => {\n\n /*\n location: [0] {\n address: PitneyBowesAddressResult\n geometry: PitneyBowesGeometry,\n totalUnitCount: number\n ranges: PitneyBowesRange[]\n }\n */\n\n if(result.value && result.value){\n\n const location:PitneyBowesAddressResult = result.value;\n\n const lng = location.geometry.coordinates[0];\n const lat = location.geometry.coordinates[1];\n\n const city:string = location.address.areaName3;\n const postalCode:string = location.address.postCode;\n const stateOrProvince:string = location.address.areaName1;\n const country:string = location.address.country;\n const street = location.address.mainAddressLine;\n\n return{ \n 'street': street,\n 'city': city,\n 'postalCode': postalCode,\n 'stateOrProvince': stateOrProvince,\n 'country': country,\n 'lat': lat,\n 'lng': lng \n }\n }else{\n return {\n 'street': 'error',\n 'city': 'error',\n 'postalCode': 'error',\n 'stateOrProvince': 'error',\n 'country': 'error',\n 'lat': 0,\n 'lng': 0 \n }\n }\n\n}","import { AutoCompleteResult, AutoCompleteRequest } from '../../../types/common/auto-complete';\nimport { Address } from '../../../types/listing/address';\nimport { GeoCoordinates } from '../../../types/map/maps';\nimport { AddressComponentsConfig } from \"../../../types/config/config\";\n\n// this is called by the searchable input\nexport const getGooglePlaces = (request: AutoCompleteRequest): Promise => {\n\n const input: string = request.value.trim();\n const service = new google.maps.places.AutocompleteService();\n\n // todo: figure out how to actually remove the restrictions if they aren't set instead of defaulting to the US\n let componentRestrictions = {\n country: ['us']\n };\n if (request.countryCodes) {\n componentRestrictions = {\n country: request.countryCodes\n }\n }\n\n return new Promise((resolve, reject) => {\n if (request.value.trim().length === 0) { // if we don't have a request value, then just return immediately without hitting service\n resolve([]);\n return;\n }\n service.getPlacePredictions({ input, componentRestrictions },\n (predictions, status) => {\n if (status !== google.maps.places.PlacesServiceStatus.OK) {\n // for now, just send back a blank set of results. we should probably handle this gracefully with the component when we build the no results out\n // we need to send back a blank array though, otherwise the previous results stay up if they are still typing.\n resolve([]);\n }\n if (predictions != null) {\n resolve(convertGoogleResults(predictions));\n }\n });\n }\n );\n}\n\n// convert the google results to get them in the form the searchable input needs to display\nexport const convertGoogleResults = (predictions: google.maps.places.AutocompletePrediction[]) => {\n\n const converted: AutoCompleteResult[] = [];\n\n predictions.forEach((result: google.maps.places.AutocompletePrediction) => {\n converted.push({ name: result.description, value: result });\n });\n\n return converted;\n}\n\n// this method is called once a user actually selects an address\nexport const createAddressFromGoogleResult = async (result: AutoCompleteResult, streetAddressSlug: string, siteId: string, addressComponentsConfig?: AddressComponentsConfig): Promise
=> {\n\n // if the user selects a result, we need to geocode\n const request: google.maps.places.PlaceDetailsRequest = {\n placeId: result.value.place_id\n };\n\n const detailResult = await geocode(request);\n return parseGoogleResult(detailResult, streetAddressSlug, result.name, siteId, addressComponentsConfig);\n}\n\nconst parseGoogleResult = (placeResult: google.maps.places.PlaceResult, streetAddressSlug: string, streetName: string, siteId: string, addressComponentsConfig?: AddressComponentsConfig): Address => {\n if (placeResult && placeResult.address_components && placeResult.geometry && placeResult.geometry.location) {\n const coords: GeoCoordinates = convertGoogleLatLng(placeResult.geometry.location);\n const addressComponents = placeResult.address_components;\n\n const cityFieldName = (addressComponentsConfig && addressComponentsConfig.cityFieldName !== \"\") ? addressComponentsConfig.cityFieldName! : \"locality\";\n const city: string = extractResult(addressComponents, cityFieldName, 'long_name');\n\n const postalCode: string = extractResult(addressComponents, 'postal_code', 'long_name');\n let stateOrProvince: string = extractResult(addressComponents, 'administrative_area_level_1', 'short_name');\n if (stateOrProvince && stateOrProvince.length > 0) {\n stateOrProvince = stateOrProvince.split('.').join(\"\"); // remove periods from state abbreviations, if they exist\n stateOrProvince = stateOrProvince.toUpperCase(); // make all abbreviations upper case\n }\n\n const country: string = extractResult(addressComponents, 'country', 'short_name');\n\n const streetNumber: string = extractResult(addressComponents, 'street_number', 'long_name');\n const route: string = extractResult(addressComponents, 'route', 'long_name');\n\n let street = streetAddressSlug;\n if (siteId === \"ae-comm\") {\n street = streetName;\n }\n else if (!!street) {\n // Swap string tokens\n street = street.replace('%(streetNumber)s', streetNumber);\n street = street.replace('%(route)s', route);\n // Remove any unmatched tokens and trim the spaces\n street = street.trim();\n }\n else {\n // fallback with the token string is undefined\n street = streetNumber ? streetNumber + ' ' + route : route;\n }\n\n // fallback for street\n // point of interest\n if (!street || street.length === 0) {\n street = extractResult(addressComponents, 'point_of_interest', 'long_name');\n }\n // final fallback is the entire formatted address\n if (!street || street.length === 0) {\n street = placeResult.formatted_address || \"\";\n }\n\n return {\n 'street': street,\n 'city': city,\n 'postalCode': postalCode,\n 'stateOrProvince': stateOrProvince,\n 'country': country,\n 'lat': coords.lat,\n 'lng': coords.lng\n }\n } else {\n throw new Error('Geocoding Failed');\n }\n}\n\n// convenience function to help us extract data from the google object\nconst extractResult = (addressComponents: google.maps.GeocoderAddressComponent[], fieldName: string, use: string) => {\n let extracted: string = \"\";\n addressComponents.forEach((addressPart: google.maps.GeocoderAddressComponent) => {\n if (addressPart.types && addressPart.types.indexOf(fieldName) > -1) {\n extracted = addressPart[use];\n }\n });\n return extracted;\n}\n\n// extra geocoding service since they aren't passed back by the prediction service\nconst geocode = async (\n request: google.maps.places.PlaceDetailsRequest\n): Promise => {\n\n const placesService = new google.maps.places.PlacesService(document.createElement('div')); // hack: fix this when I'm smarter\n\n return new Promise((resolve, reject) => {\n placesService.getDetails(request, (result, status) => {\n if (result && status === google.maps.places.PlacesServiceStatus.OK) {\n resolve(result);\n } else {\n reject(status);\n }\n });\n });\n};\n\nconst convertGoogleLatLng = (latLng: google.maps.LatLng): GeoCoordinates => {\n return { lat: latLng.lat(), lng: latLng.lng() };\n}","import { State } from '../../../types/state';\n\nexport const countryCodeSelector = (state:State) => {\n return state.mapping.countryCode;\n}","import { Config } from '../../types/config/config';\n\nexport const isEMEA = (config: Config) => config.siteId === 'cbre-im';","import React, { FC } from 'react'\nimport { Col, Row } from 'react-styled-flexboxgrid'\nimport GLField from '../../../../components/form/gl-field';\nimport FormInput, { FormInputProps } from '../../../../components/form-input/form-input';\nimport { AutoCompleteResult, AutoCompleteRequest } from '../../../../types/common/auto-complete';\nimport SearchableInput, { SearchableInputProps, SearchableInputNoDataProps } from '../../../../components/searchable-input/searchable-input';\nimport { getMapboxPlaces, createAddressFromMapboxResult } from '../../../../api/places/mapbox/mapbox';\nimport { getPitneyPlaces, createAddressFromPitneyBowesResult } from '../../../../api/places/pitney-bowes/pitney-bowes';\nimport { getGooglePlaces, createAddressFromGoogleResult } from '../../../../api/places/google/google';\nimport { useSelector } from 'react-redux';\nimport { configSelector } from '../../../../redux/selectors/system/config-selector';\nimport FormSelect from '../../../../components/form-select/form-select';\nimport { FieldConfig, Config, StateFieldConfig } from '../../../../types/config/config';\nimport { Option, StateOrProvinceOption } from '../../../../types/common/option';\nimport { countryCodeSelector } from '../../../../redux/selectors/mapping/country-code-selector';\nimport { isEMEA } from '../../../../utils/config/im';\n\n\ninterface Props {\n placesAPI: string,\n apiCountry: string,\n currentCountryCode: string,\n changeHandler(values: any): void,\n streetChanged(value: string | null): void\n}\n\nexport const AddressFields: FC = (props) => {\n\n const { placesAPI, changeHandler, streetChanged, apiCountry, currentCountryCode } = props;\n\n const config = useSelector(configSelector);\n const countryCode = useSelector(countryCodeSelector);\n\n const addressHandler = (suggestion: AutoCompleteResult) => {\n let address;\n const addressComponentsConfig = config.map.addressComponents;\n streetChanged(null); // since we are selecting a result, ensure the temp street gets zeroed out\n if (placesAPI === \"pitney\") {\n address = createAddressFromPitneyBowesResult(suggestion);\n changeHandler(address);\n } else if (placesAPI === \"mapbox\") {\n address = createAddressFromMapboxResult(suggestion);\n changeHandler(address);\n } else {\n createAddressFromGoogleResult(suggestion, config.streetAddress, config.siteId, addressComponentsConfig).then(addressResult => {\n address = addressResult;\n changeHandler(address);\n });\n }\n }\n\n const findRemoteDataProvider = (request: AutoCompleteRequest): Promise => {\n\n request.countryCodes = isEMEA(config) && !!currentCountryCode ? [currentCountryCode] : config.map.places.limitCountryCodes;\n\n\n if (placesAPI === \"pitney\") {\n return new Promise((resolve, reject) => {\n resolve(getPitneyPlaces(request));\n });\n } else if (placesAPI === \"mapbox\") {\n return new Promise((resolve, reject) => {\n resolve(getMapboxPlaces(request));\n });\n } else {\n return new Promise((resolve, reject) => {\n resolve(getGooglePlaces(request));\n });\n }\n }\n\n const noDataProps: SearchableInputNoDataProps = {\n showNoData: true,\n noDataMessage: 'No addresses found...',\n showNoDataButton: false\n }\n\n const getColSize = (fieldName: string): number => {\n if (config && config[fieldName] && config[fieldName].size) {\n return config[fieldName].size;\n }\n return 12;\n }\n\n const getCountry = () => {\n if (config && config.country && config.country.show && config.country.options && config.country.options.length > 1) {\n const fieldConfig: FieldConfig