Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/location/mobile/dist/ |
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/location/mobile/dist/mobile.bundle.min.js |
this.BX=this.BX||{};this.BX.Location=this.BX.Location||{};(function(t,e,s,i,d){"use strict";class a{static makeObjectFromLocation(t){return JSON.parse(t.toJson())}static makeAddressFromObject(t){return new e.Address(t)}static makeObjectFromAddress(t){return JSON.parse(t.toJson())}static makeFormatFromObject(t){return new e.Format(t)}static makeSource(){return s.Factory.create(BX.message("LOCATION_MOBILE_SOURCE_CODE"),BX.message("LOCATION_MOBILE_LANGUAGE_ID"),BX.message("LOCATION_MOBILE_SOURCE_LANGUAGE_ID"),BX.message("LOCATION_MOBILE_SOURCE_PARAMS"))}static makeRepository(){return new e.LocationRepository}static getTextAddress(t,s,i){if(t===null){return""}const d=a.makeFormatFromObject(s);return e.AddressStringConverter.convertAddressToStringTemplate(a.makeAddressFromObject(t),d.getTemplate(i),"text",", ",d)}static getTextAddressForAutocomplete(t,s){return a.getTextAddress(t,s,e.FormatTemplateType.AUTOCOMPLETE)}static getTextAddressForDefault(t,s){return a.getTextAddress(t,s,e.FormatTemplateType.DEFAULT)}static getTextAddressForMap(t,e){let s=a.getTextAddressForAutocomplete(t,e);if(s.trim()===""){s=a.getTextAddressForDefault(t,e)}return s}static makeMapRenderProps(t,s,i,d){const r={zoomControl:false,mode:i?e.ControlMode.edit:e.ControlMode.view,mapContainer:d};if(!a.isAddressValidForMap(t)){if(s){r.location={latitude:s.latitude,longitude:s.longitude,type:e.LocationType.BUILDING};r.searchOnRender=!t}else{const s=JSON.parse(BX.message("LOCATION_MOBILE_DEFAULT_LOCATION_POINT"));if(s){r.location={latitude:s.latitude,longitude:s.longitude,type:e.LocationType.BUILDING};r.searchOnRender=!t}}}else{r.location={latitude:t.latitude,longitude:t.longitude,type:Math.max(...Object.keys(t.fieldCollection).map(Number))}}return r}static makeAutocompleteParams(t,e){const s={};const i=a.getAutocompleteBiasPoint(t,e);if(i){s.biasPoint=i}return s}static getAutocompleteBiasPoint(t,s){if(t!==null&&t.latitude!==""&&t.longitude!==""){return new e.Point(t.latitude,t.longitude)}if(s){return new e.Point(s.latitude,s.longitude)}return null}static search(t,e,s){return new Promise(((i,d)=>{const r=a.makeSource();r.autocompleteService.autocomplete(t,a.makeAutocompleteParams(e,s)).then((t=>{i(t.map(a.makeObjectFromLocation))}),(()=>{d()}))}))}static makeAddressFromText(t,s){const i=a.makeFormatFromObject(s);const d=a.makeAddressFromObject({languageId:i.languageId});d.fieldCollection.setFieldValue(e.AddressType.ADDRESS_LINE_2,t);return a.makeObjectFromAddress(d)}static findAddressByLocation(t){return new Promise(((e,s)=>{const i=a.makeRepository();i.findByExternalId(t.externalId,t.sourceCode,t.languageId).then((t=>{e(t?a.makeObjectFromAddress(t.address):null)}),(()=>{s()}))}))}static getAddressFieldsValues(t,e){const s=t?a.makeAddressFromObject(t):null;const i=a.makeFormatFromObject(e);const d=[];for(const t in i.fieldCollection.fields){const e=i.fieldCollection.fields[t];d.push({name:e.name,type:e.type,value:s?s.fieldCollection.getFieldValue(t):""})}return d}static applyFieldsToAddress(t,e,s){const i=a.makeFormatFromObject(e);const d=a.makeAddressFromObject(t||{languageId:i.languageId});let r=true;for(const t of s){const e=d.fieldCollection.getFieldValue(t.type);if(e!==t.value){d.fieldCollection.setFieldValue(t.type,t.value)}if(t.value!==null&&t.value!==""){r=false}}if(r){return null}return a.makeObjectFromAddress(d)}static applyDetailsToAddress(t,s){const i=a.makeAddressFromObject(t);i.fieldCollection.setFieldValue(e.AddressType.ADDRESS_LINE_2,s);return a.makeObjectFromAddress(i)}static getAddressDetails(t){const s=a.makeAddressFromObject(t);return s.fieldCollection.getFieldValue(e.AddressType.ADDRESS_LINE_2)||""}static getLocationTypeClarification(t){return t.fieldCollection[e.LocationType.TMP_TYPE_CLARIFICATION]||""}static isAddressValidForMap(t){return t&&t.latitude!==""&&t.longitude!==""&&t.latitude!=="0"&&t.longitude!=="0"}static getLine2FieldName(t){const s=a.makeFormatFromObject(t);const i=s.getField(e.AddressType.ADDRESS_LINE_2);if(!i){return""}return i.name}}var r={props:{address:{type:Object,required:false},addressFormat:{type:Object,required:true},deviceGeoPosition:{type:Object,required:false},isEditable:{type:Boolean,required:false,default:true}},data:()=>({isSearchingMap:false,isSettingDetails:false,addressDetailsDraft:""}),mounted(){this.source=a.makeSource();this.renderMap();if(this.isEditable){this.subscribeToMapEvents()}},methods:{renderMap(){setTimeout((()=>{this.source.mapMobile.render(a.makeMapRenderProps(this.address,this.deviceGeoPosition,this.isEditable,this.$refs["map"]))}),500)},subscribeToMapEvents(){this.source.mapMobile.onLocationChangedEventSubscribe((t=>{const e=t.data.location.address;this.$emit("address-changed",a.makeObjectFromAddress(e))}));this.source.mapMobile.onStartChangingSubscribe((t=>{this.lastMapSearchRequestId=t.data.requestId}));this.source.mapMobile.onEndChangingSubscribe((t=>{if(this.lastMapSearchRequestId!==null&&t.data.requestId!==this.lastMapSearchRequestId){return}this.isSearchingMap=false;this.lastMapSearchRequestId=null}));this.source.mapMobile.onMapViewChangedSubscribe((()=>{this.lastMapSearchRequestId="";this.isSearchingMap=true}))},onAddressClicked(){this.$emit("address-clicked")},onMarkerClicked(t){if(!this.isEditable&&this.address){this.source.mapMobile.panTo(this.address.latitude,this.address.longitude);t.stopPropagation()}},openSetDetails(){this.addressDetailsDraft=this.addressDetails;this.isSettingDetails=true;this.showOverlay();setTimeout((()=>{const t=this.getAddressDetailsNode();if(t){t.focus()}}),0);this.adjustAddressDetailsNodeHeight()},onDoneWithSettingDetails(){this.$emit("address-changed",a.applyDetailsToAddress(this.address,this.addressDetailsDraft));this.isSettingDetails=false;this.hideOverlay()},onSearchClicked(){this.$emit("search-clicked")},onDone(){this.$emit("done-clicked")},getOverlayNode(){return this.$refs["overlay"]},showOverlay(){const t=this.getOverlayNode();if(t){d.Dom.style(t,"display","block")}},hideOverlay(){const t=this.getOverlayNode();if(t){d.Dom.style(t,"display","none")}},getAddressDetailsNode(){return this.$refs["address-details"]},adjustAddressDetailsNodeHeight(){setTimeout((()=>{const t=this.getAddressDetailsNode();if(t){d.Dom.style(t,"height","auto");d.Dom.style(t,"height",`${t.scrollHeight}px`)}}),0)}},computed:{addressText(){return a.getTextAddressForMap(this.address,this.addressFormat)},addressDetails(){return a.getAddressDetails(this.address)},addressContainerClasses(){return{"mobile-address-map-address-container":true,"mobile-address-map-address-container-map-searching":this.isSearchingMap}},line2FieldName(){return a.getLine2FieldName(this.addressFormat)}},template:`\n\t\t<div class="mobile-address-map-container">\n\t\t\t<div ref="overlay" class="mobile-address-map-overlay"></div>\n\t\t\t<div ref="map" class="mobile-address-map-map"></div>\n\t\t\t<div\n\t\t\t\tv-if="isEditable"\n\t\t\t\t@click="onSearchClicked"\n\t\t\t\tclass="mobile-address-map-search"\n\t\t\t>\n\t\t\t\t<div class="mobile-address-map-search-icon"></div>\n\t\t\t\t<div class="mobile-address-map-search-text">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_SEARCH') }}\n\t\t\t\t</div>\n </div>\n <div\n v-show="address"\n :class="addressContainerClasses"\n >\n\t\t\t\t<div\n\t\t\t\t\t@click="onAddressClicked"\n\t\t\t\t\tclass="mobile-address-map-address-address"\n\t\t\t\t>\n\t\t\t\t\t<div class="mobile-address-map-address-address-text">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t@click="onMarkerClicked"\n\t\t\t\t\t\t\tclass="mobile-address-map-address-address-marker">\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{{ addressText }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if="isEditable"\n\t\t\t\t\t\t@click="openSetDetails"\n\t\t\t\t\t\tclass="mobile-address-map-open-set-details"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-if="isEditable"\n\t\t\t\t\t@click="onDone"\n\t\t\t\t\tclass="mobile-address-map-address-done"\n\t\t\t\t>\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_DONE') }}\n\t\t\t\t</div>\n\t\t\t</div>\t\t\t\t\n\t\t\t<div\n\t\t\t\tv-if="isSettingDetails"\n\t\t\t\tclass="mobile-address-map-address-details"\n\t\t\t>\n\t\t\t\t<div class="mobile-address-map-address-details-title">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_DETAILS_TITLE') }}\n\t\t\t\t</div>\n\t\t\t\t<div class="mobile-address-map-address-details-textarea-container">\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tv-model="addressDetailsDraft"\n\t\t\t\t\t\t:placeholder="line2FieldName"\n\t\t\t\t\t\t@input="adjustAddressDetailsNodeHeight"\n\t\t\t\t\t\tref="address-details"\n\t\t\t\t\t\trows="1"\n\t\t\t\t\t\tclass="mobile-address-map-address-details-textarea"\n\t\t\t\t\t></textarea>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\t@click="onDoneWithSettingDetails"\n\t\t\t\t\tclass="mobile-address-map-address-details-done"\n\t\t\t\t>\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_SAVE_DETAILS') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};var o={data:()=>({isKeyboardShown:false}),methods:{subscribeToKeyboardEvents(){window.app.exec("enableCaptureKeyboard",true);BXMobileApp.addCustomEvent("onKeyboardWillShow",(()=>{this.isKeyboardShown=true}));BXMobileApp.addCustomEvent("onKeyboardWillHide",(()=>{this.isKeyboardShown=false}))},adjustWindowHeight(){const t=window.innerHeight;document.body.style.height=`${t}px`}}};var n={mixins:[o],props:{address:{type:Object,required:false},addressFormat:{type:Object,required:true},deviceGeoPosition:{type:Object,required:false},recentAddresses:{type:Array,required:false,default:[]},isEditable:{type:Boolean,required:false,default:true}},data:()=>({searchQuery:"",isSearching:false,searchTookPlace:false,inputTookPlace:false,searchResults:[]}),created(){this.locationRepository=a.makeRepository();this.debouncedSearch=d.Runtime.debounce(this.search,500,this);this.loader=new i.Loader;this.subscribeToKeyboardEvents()},mounted(){this.adjustSearchQueryNodeHeight();this.refreshSearchQuery()},methods:{search(t){this.lastQuery=t;this.isSearching=true;a.search(t,this.address,this.deviceGeoPosition).then((e=>{if(t!==this.lastQuery){return}this.searchResults=e;this.searchTookPlace=true;this.isSearching=false}),(()=>{if(t!==this.lastQuery){return}this.searchResults=[];this.searchTookPlace=true;this.isSearching=false}))},onFoundItemClicked(t){this.loader.show(this.$refs["search-results-loader"]);a.findAddressByLocation(t).then((t=>{this.loader.hide();this.$emit("address-picked",t)}),(()=>{this.loader.hide()}))},onRecentAddressItemClicked(t){this.$emit("address-picked",t)},refreshSearchQuery(){this.searchQuery=this.getTextAddressForAutocomplete(this.address)},onMapClicked(){if(this.inputTookPlace&&this.searchResults.length>0){this.onFoundItemClicked(this.searchResults[0])}else{this.$emit("map-clicked")}},onAddressNotFoundClicked(){this.$emit("address-not-found-clicked")},onClearAddress(){this.$emit("clear-address");this.searchTookPlace=false;this.searchResults=[];this.adjustSearchQueryNodeHeight()},onSearchQueryInput(){this.inputTookPlace=true;this.adjustSearchQueryNodeHeight();this.$emit("address-changed",a.makeAddressFromText(this.searchQuery,this.addressFormat))},adjustSearchQueryNodeHeight(){setTimeout((()=>{const t=this.$refs["search-query"];if(t){d.Dom.style(t,"height","auto");d.Dom.style(t,"height",`${t.scrollHeight}px`)}}),0)},getLocationTypeClarification(t){return a.getLocationTypeClarification(t)},getTextAddressForAutocomplete(t){return a.getTextAddressForAutocomplete(t,this.addressFormat)},getRecentResultItemClasses(t){const e=this.recentAddresses.length-1===t;return{"mobile-address-autocomplete-results-result-item":!e,"mobile-address-autocomplete-results-result-item-no-bottom-border":e}}},computed:{searchResultsContainerStyle(){return{opacity:this.isSearching?.5:1}},shouldShowAddressNotFound(){return this.address&&this.searchTookPlace},hasRecentAddresses(){return this.recentAddresses.length>0},noMatchesFoundText(){const t=this.searchResults.length===0?"LOCATION_MOBILE_APP_MATCHES_NOT_FOUND_MSGVER_1":"LOCATION_MOBILE_APP_MATCHES_NO_DESIRED_MATCHES";return this.$Bitrix.Loc.getMessage(t)}},watch:{isSearching(t){if(t===true){this.loader.show(this.$refs["search-results-loader"])}else{this.loader.hide()}},searchQuery(t){if(t===""){return}this.debouncedSearch(t)},address(){this.refreshSearchQuery()},isKeyboardShown(t){if(t){setTimeout((()=>this.adjustWindowHeight()),0)}else{document.body.style.height=""}}},template:`\n\t\t<div class="mobile-address-autocomplete-container">\n\t\t\t<div \n\t\t\t\tref="search-results-loader"\n\t\t\t\tclass="mobile-address-autocomplete-results-search-loader"\n\t\t\t></div>\n\t\t\t<div class="mobile-address-autocomplete-query-container">\n\t\t\t\t<div class="mobile-address-autocomplete__inner"> \t\t\t\t\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tv-model="searchQuery"\n\t\t\t\t\t\t:placeholder="$Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_ENTER_ADDRESS')"\n\t\t\t\t\t\t@input="onSearchQueryInput"\n\t\t\t\t\t\tref="search-query"\n\t\t\t\t\t\trows="1"\n\t\t\t\t\t\tclass="mobile-address-autocomplete-query-query"\n\t\t\t\t\t></textarea>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if="address"\n\t\t\t\t\t\t@click="onClearAddress"\n\t\t\t\t\t\tclass="mobile-address-autocomplete-query-clear"\n\t\t\t\t\t></div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass="mobile-address-autocomplete-query-search-icon"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t\t<div @click="onMapClicked" class="mobile-address-autocomplete-query-map-link"> \t\t\t\t\n\t\t\t\t\t<div class="mobile-address-autocomplete-query-map-icon"></div>\n\t\t\t\t\t<div class="mobile-address-autocomplete-query-map-text">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_MAP') }}\n\t\t\t\t\t</div>\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-if="address"\n\t\t\t\t:style="searchResultsContainerStyle"\n\t\t\t\tclass="mobile-address-autocomplete-results-container"\n\t\t\t>\n\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-container">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for="item in searchResults"\t\t\t\t\t\t\t\n\t\t\t\t\t\t@click="onFoundItemClicked(item)"\n\t\t\t\t\t\tclass="mobile-address-autocomplete-results-result-item"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-name">\n\t\t\t\t\t\t\t{{ item.name }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-address-details">\n\t\t\t\t\t\t\t{{ getLocationTypeClarification(item) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\t\t\t\t \n\t\t\t\t<div\n\t\t\t\t\tv-show="shouldShowAddressNotFound"\n\t\t\t\t\t@click="onAddressNotFoundClicked"\n\t\t\t\t\tclass="mobile-address-autocomplete-results-result-item-not-found-container"\n\t\t\t\t>\n\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-not-found">\n\t\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-not-found-text">\n\t\t\t\t\t\t\t{{ noMatchesFoundText }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-not-found-text">\n\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_ENTER_INFORMATION_MANUALLY_MSGVER_1') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else-if="hasRecentAddresses"\n\t\t\t\tclass="mobile-address-autocomplete-results-container"\n\t\t\t>\n\t\t\t\t<div class="mobile-address-autocomplete-results-title">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_RECENT_ADDRESSES') }}\n\t\t\t\t</div>\n\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-container">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for="(item, index) in recentAddresses"\n\t\t\t\t\t\t@click="onRecentAddressItemClicked(item)"\n\t\t\t\t\t\t:class="getRecentResultItemClasses(index)"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class="mobile-address-autocomplete-results-result-item-name">\n\t\t\t\t\t\t\t{{ getTextAddressForAutocomplete(item) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class="mobile-address-autocomplete-results-empty-state">\n\t\t\t\t<div class="mobile-address-autocomplete-results-empty-state-icon">\n\t\t\t\t</div>\n\t\t\t\t<div class="mobile-address-autocomplete-results-empty-state-inner">\n\t\t\t\t\t<div class="mobile-address-autocomplete-results-empty-state-title">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_EMPTY_STATE_TITLE') }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class="mobile-address-autocomplete-results-empty-state-desc">\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_EMPTY_STATE_DESCRIPTION') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};var l={mixins:[o],props:{name:{type:String,required:true},type:{type:Number,required:true},value:{type:String,required:false,default:""},isEditable:{type:Boolean,required:false,default:true}},data:()=>({isFocused:false}),mounted(){this.adjustQueryNodeHeight()},computed:{isTitleVisible(){return this.isFocused||this.value},titleClasses(){return{"mobile-address-field-title":true,"mobile-address-field-title-focused":this.isFocused}},placeholder(){return this.isTitleVisible?this.$Bitrix.Loc.getMessage("LOCATION_MOBILE_APP_NOT_ENTERED"):this.name}},methods:{onFocusIn(){this.isFocused=true;if(window.platform==="android"){setTimeout((()=>{this.adjustWindowHeight();const t=this.$refs["container"];const e=50;const s=t.getBoundingClientRect().top;const i=s-e;window.scrollTo({top:i,behavior:"smooth"})}),300)}},onFocusOut(){this.isFocused=false},onInput(t){this.$emit("input",{type:this.type,value:t.target.value});this.adjustQueryNodeHeight()},adjustQueryNodeHeight(){setTimeout((()=>{const t=this.$refs["textarea-query"];if(t){d.Dom.style(t,"height","auto");d.Dom.style(t,"height",`${t.scrollHeight}px`)}}),0)}},template:`\n\t\t<div ref="container" class="mobile-address-field-container">\n\t\t\t<div\n\t\t\t\tv-show="isTitleVisible"\n\t\t\t\t:class="titleClasses"\n\t\t\t>\n\t\t\t\t{{name}}\n\t\t\t</div>\n\t\t\t<textarea\n\t\t\t\t:placeholder="placeholder"\n\t\t\t\t:value="value"\n\t\t\t\t:disabled="!isEditable"\n\t\t\t\t@focus="onFocusIn"\n\t\t\t\t@focusout="onFocusOut"\n\t\t\t\t@input="onInput"\n\t\t\t\tclass="mobile-address-field"\n\t\t\t\tref="textarea-query"\n\t\t\t\ttype="text"\n\t\t\t\trows="1"\n\t\t\t></textarea>\n\t\t</div>\n\t`};var c={mixins:[o],components:{field:l},props:{address:{type:Object,required:false},addressFormat:{type:Object,required:true},isEditable:{type:Boolean,required:false,default:true}},data:()=>({fields:[]}),created(){this.fields=a.getAddressFieldsValues(this.address,this.addressFormat);this.subscribeToKeyboardEvents()},methods:{saveValues(){this.$emit("address-changed",a.applyFieldsToAddress(this.address,this.addressFormat,this.fields))},onNewSearchClicked(){this.$emit("new-search-clicked")},onBackToMapClicked(){this.$emit("back-to-map-clicked")},onFieldInput(t){const e=this.fields.find((e=>e.type===t.type));if(e){e.value=t.value}},onDone(){this.$emit("done",a.applyFieldsToAddress(this.address,this.addressFormat,this.fields))},hasSource(){const t=a.makeSource();return!!t}},computed:{shouldShowNewSearchButton(){return!this.isKeyboardShown&&this.hasSource()}},watch:{isKeyboardShown(t){const e=document.querySelector(".mobile-address-container");if(t){setTimeout((()=>{d.Dom.style(e,"height",`calc(100% + ${this.$refs["save-values"].offsetHeight}px)`);this.adjustWindowHeight()}),0)}else{setTimeout((()=>{d.Dom.style(e,"height","");document.body.style.height=""}),0)}}},template:`\n\t\t<div class="mobile-address-fields-fields-inner-container">\n\t\t\t<div class="mobile-address-fields-fields-container">\n\t\t\t\t<div class="mobile-address-fields-item-wrap">\n\t\t\t\t\t<field\t\t\t\t\t\t\n\t\t\t\t\t\tv-for="field in fields"\n\t\t\t\t\t\t:name="field.name"\n\t\t\t\t\t\t:type="field.type"\n\t\t\t\t\t\t:value="field.value"\n\t\t\t\t\t\t:isEditable="isEditable"\n\t\t\t\t\t\t@input="onFieldInput"\n\t\t\t\t\t>\n\t\t\t\t\t</field>\n\t\t\t\t</div>\t\t\t\t \n\t\t\t\t<div\n\t\t\t\t\tv-if="isEditable"\n\t\t\t\t\tv-show="shouldShowNewSearchButton"\n\t\t\t\t\t@click="onNewSearchClicked"\n\t\t\t\t\tclass="mobile-address-fields-search-container"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-test-id="newSearchButton"\n\t\t\t\t\t\tclass="mobile-address-fields-search"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class="mobile-address-fields-search-icon-search"></div>\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_NEW_SEARCH') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tv-if="!isEditable"\n\t\t\t\t\t@click="onBackToMapClicked"\n\t\t\t\t\tclass="mobile-address-fields-search-container"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-test-id="backToMapButton"\n\t\t\t\t\t\tclass="mobile-address-fields-search"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_BACK_TO_MAP') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-if="isEditable"\n\t\t\t\tv-show="!isKeyboardShown"\n\t\t\t\t@click="onDone"\n\t\t\t\tclass="mobile-address-fields-use-this-address-container"\n\t\t\t>\n\t\t\t\t<div class="mobile-address-fields-use-this-address">\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_DONE') }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div\n\t\t\tv-show="isKeyboardShown"\n\t\t\t@click="saveValues"\n\t\t\tclass="mobile-address-fields-save-values"\n\t\t\tref="save-values"\n\t\t>\n\t\t\t{{ $Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_SAVE_VALUES') }}\n\t\t</div>\n\t`};const u={map:"map",autocomplete:"autocomplete",fields:"fields"};var m={props:{initialAddress:{type:Object,required:false},addressFormat:{type:Object,required:false,default:JSON.parse(BX.message("LOCATION_WIDGET_DEFAULT_FORMAT"))},deviceGeoPosition:{type:Object,required:false},recentAddresses:{type:Array,required:false,default:[]},isEditable:{type:Boolean,required:false,default:true},uid:{type:String,required:false}},components:{"map-mode":r,"autocomplete-mode":n,"fields-mode":c},data:()=>({address:null,mode:null}),created(){if(this.initialAddress){this.setAddress(this.initialAddress)}this.initializeMode()},computed:{isModeMap(){return this.mode===u.map},isModeAutocomplete(){return this.mode===u.autocomplete},isModeFields(){return this.mode===u.fields}},methods:{initializeMode(){const t=a.makeSource();if(t){if(this.isEditable){this.setMode(u.autocomplete)}else{if(a.isAddressValidForMap(this.address)){this.setMode(u.map)}else{this.setMode(u.fields)}}}else{this.setMode(u.fields)}},setAddress(t){this.address=t},setMode(t){this.mode=t},emitAddressUsed(){if(!this.isEditable){return}const t=this.getEmitAddressValue();if(t.value!==null){this.saveRecentAddress()}const e={address:t};if(this.uid){e.uid=this.uid}BXMobileApp.Events.postToComponent("Location::MobileAddressEditor::AddressSelected",e)},getEmitAddressValue(){if(this.address===null){return{value:null,text:"",coords:[]}}const t=a.makeAddressFromObject(this.address);if(this.initialAddress){t.id=this.initialAddress.id||0}return{value:t.toJson(),text:a.getTextAddressForDefault(this.address,this.addressFormat),coords:t.latitude!==""&&t.longitude!==""?[t.latitude,t.longitude]:[]}},saveRecentAddress(){d.ajax.runAction("location.api.recentaddress.save",{data:{address:this.address}})},onMapSearchClicked(){if(!this.isEditable){return}this.setMode(u.autocomplete)},onMapAddressChanged(t){this.setAddress(t)},onMapDone(){this.emitAddressUsed()},onMapAddressClicked(){if(this.isEditable){return}this.setMode(u.fields)},onAutocompleteAddressPicked(t){this.setAddress(t);this.setMode(u.map)},onAutocompleteAddressChanged(t){this.setAddress(t)},onAutocompleteMapClicked(){this.setMode(u.map)},onAutocompleteAddressNotFoundClicked(){this.setMode(u.fields)},onAutocompleteClearAddress(){this.setAddress(null)},onFieldsAddressChanged(t){this.setAddress(t)},onFieldsNewSearchClicked(){this.setMode(u.autocomplete)},onFieldsDone(t){this.setAddress(t);this.emitAddressUsed()},onFieldsBackToMapClicked(){this.setMode(u.map)}},template:`\n\t\t<div class="mobile-address-container mobile-address--scope">\n\t\t\t<map-mode\n\t\t\t\tv-if="isModeMap"\n\t\t\t\t:address="address"\n\t\t\t\t:addressFormat="addressFormat"\n\t\t\t\t:deviceGeoPosition="deviceGeoPosition"\n\t\t\t\t:isEditable="isEditable"\n\t\t\t\t@search-clicked="onMapSearchClicked"\n\t\t\t\t@address-changed="onMapAddressChanged"\n\t\t\t\t@done-clicked="onMapDone"\n\t\t\t\t@address-clicked="onMapAddressClicked"\n\t\t\t\tref="mobile-container"\n\t\t\t>\n\t\t\t</map-mode>\n\t\t\t<autocomplete-mode\n\t\t\t\tv-if="isModeAutocomplete"\n\t\t\t\t:address="address"\n\t\t\t\t:addressFormat="addressFormat"\n\t\t\t\t:deviceGeoPosition="deviceGeoPosition"\n\t\t\t\t:recentAddresses="recentAddresses"\n\t\t\t\t:isEditable="isEditable"\n\t\t\t\t@address-picked="onAutocompleteAddressPicked"\n\t\t\t\t@address-changed="onAutocompleteAddressChanged"\n\t\t\t\t@map-clicked="onAutocompleteMapClicked"\n\t\t\t\t@address-not-found-clicked="onAutocompleteAddressNotFoundClicked"\n\t\t\t\t@clear-address="onAutocompleteClearAddress"\n\t\t\t>\n\t\t\t</autocomplete-mode>\n\t\t\t<fields-mode\n\t\t\t\tv-if="isModeFields"\n\t\t\t\t:address="address"\n\t\t\t \t:addressFormat="addressFormat"\n\t\t\t\t:isEditable="isEditable"\n\t\t\t\t@address-changed="onFieldsAddressChanged"\n\t\t\t\t@new-search-clicked="onFieldsNewSearchClicked"\n\t\t\t \t@done="onFieldsDone"\n\t\t\t\t@back-to-map-clicked="onFieldsBackToMapClicked"\n\t\t\t>\n\t\t\t</fields-mode>\n\t\t</div>\n\t`};t.AddressEditor=m})(this.BX.Location.Mobile=this.BX.Location.Mobile||{},BX.Location.Core,BX.Location.Source,BX,BX); //# sourceMappingURL=mobile.bundle.map.js