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.js.map |
{"version":3,"file":"mobile.bundle.js","sources":["../src/location-helper.js","../src/address-editor/map.js","../src/mixins/keyboard.js","../src/address-editor/autocomplete.js","../src/address-editor/field.js","../src/address-editor/fields.js","../src/address-editor.js"],"sourcesContent":["import {\n\tFormat,\n\tLocation,\n\tAddress,\n\tLocationType,\n\tPoint,\n\tFormatTemplateType,\n\tAddressType,\n\tControlMode,\n\tBaseSource,\n\tLocationRepository,\n\tAddressStringConverter,\n} from 'location.core';\n\nimport { Factory } from 'location.source';\n\nexport class LocationHelper\n{\n\tstatic makeObjectFromLocation(location: Location): Object\n\t{\n\t\treturn JSON.parse(location.toJson());\n\t}\n\n\tstatic makeAddressFromObject(address: Object): Address\n\t{\n\t\treturn new Address(address);\n\t}\n\n\tstatic makeObjectFromAddress(address: Address): Object\n\t{\n\t\treturn JSON.parse(address.toJson());\n\t}\n\n\tstatic makeFormatFromObject(format: Object): Format\n\t{\n\t\treturn new Format(format);\n\t}\n\n\tstatic makeSource(): ?BaseSource\n\t{\n\t\treturn Factory.create(\n\t\t\tBX.message('LOCATION_MOBILE_SOURCE_CODE'),\n\t\t\tBX.message('LOCATION_MOBILE_LANGUAGE_ID'),\n\t\t\tBX.message('LOCATION_MOBILE_SOURCE_LANGUAGE_ID'),\n\t\t\tBX.message('LOCATION_MOBILE_SOURCE_PARAMS')\n\t\t);\n\t}\n\n\tstatic makeRepository(): LocationRepository\n\t{\n\t\treturn new LocationRepository();\n\t}\n\n\tstatic getTextAddress(address: ?Object, addressFormat: Object, template: string): string\n\t{\n\t\tif (address === null)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst locAddressFormat = LocationHelper.makeFormatFromObject(addressFormat);\n\n\t\treturn AddressStringConverter.convertAddressToStringTemplate(\n\t\t\tLocationHelper.makeAddressFromObject(address),\n\t\t\tlocAddressFormat.getTemplate(template),\n\t\t\t'text',\n\t\t\t', ',\n\t\t\tlocAddressFormat\n\t\t);\n\t}\n\n\tstatic getTextAddressForAutocomplete(address: ?Object, addressFormat: Object): string\n\t{\n\t\treturn LocationHelper.getTextAddress(address, addressFormat, FormatTemplateType.AUTOCOMPLETE);\n\t}\n\n\tstatic getTextAddressForDefault(address: ?Object, addressFormat: Object): string\n\t{\n\t\treturn LocationHelper.getTextAddress(address, addressFormat, FormatTemplateType.DEFAULT);\n\t}\n\n\tstatic getTextAddressForMap(address: ?Object, addressFormat: Object): string\n\t{\n\t\tlet result = LocationHelper.getTextAddressForAutocomplete(address, addressFormat);\n\t\tif (result.trim() === '')\n\t\t{\n\t\t\tresult = LocationHelper.getTextAddressForDefault(address, addressFormat);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic makeMapRenderProps(\n\t\taddress: ?Object,\n\t\tdeviceGeoPosition: ?Object,\n\t\tisEditable: boolean,\n\t\tmapContainer: HTMLElement\n\t): Object\n\t{\n\t\tconst result = {\n\t\t\tzoomControl: false,\n\t\t\tmode: isEditable ? ControlMode.edit : ControlMode.view,\n\t\t\tmapContainer,\n\t\t};\n\n\t\tif (!LocationHelper.isAddressValidForMap(address))\n\t\t{\n\t\t\tif (deviceGeoPosition)\n\t\t\t{\n\t\t\t\tresult.location = {\n\t\t\t\t\tlatitude: deviceGeoPosition.latitude,\n\t\t\t\t\tlongitude: deviceGeoPosition.longitude,\n\t\t\t\t\ttype: LocationType.BUILDING,\n\t\t\t\t};\n\t\t\t\tresult.searchOnRender = !address;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst defaultLocationPoint = JSON.parse(BX.message('LOCATION_MOBILE_DEFAULT_LOCATION_POINT'));\n\t\t\t\tif (defaultLocationPoint)\n\t\t\t\t{\n\t\t\t\t\tresult.location = {\n\t\t\t\t\t\tlatitude: defaultLocationPoint.latitude,\n\t\t\t\t\t\tlongitude: defaultLocationPoint.longitude,\n\t\t\t\t\t\ttype: LocationType.BUILDING,\n\t\t\t\t\t};\n\t\t\t\t\tresult.searchOnRender = !address;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresult.location = {\n\t\t\t\tlatitude: address.latitude,\n\t\t\t\tlongitude: address.longitude,\n\t\t\t\ttype: Math.max(\n\t\t\t\t\t...Object.keys(address.fieldCollection).map(Number)\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic makeAutocompleteParams(address: ?Object, deviceGeoPosition: ?Object): Object\n\t{\n\t\tconst result = {};\n\n\t\tconst biasPoint = LocationHelper.getAutocompleteBiasPoint(address, deviceGeoPosition)\n\t\tif (biasPoint)\n\t\t{\n\t\t\tresult.biasPoint = biasPoint;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic getAutocompleteBiasPoint(address: ?Object, deviceGeoPosition: ?Object): ?Point\n\t{\n\t\tif (\n\t\t\taddress !== null\n\t\t\t&& address.latitude !== ''\n\t\t\t&& address.longitude !== ''\n\t\t)\n\t\t{\n\t\t\treturn new Point(\n\t\t\t\taddress.latitude,\n\t\t\t\taddress.longitude\n\t\t\t);\n\t\t}\n\n\t\tif (deviceGeoPosition)\n\t\t{\n\t\t\treturn new Point(\n\t\t\t\tdeviceGeoPosition.latitude,\n\t\t\t\tdeviceGeoPosition.longitude\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tstatic search(query, address: ?Object, deviceGeoPosition: ?Object): Promise\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst source = LocationHelper.makeSource();\n\n\t\t\tsource.autocompleteService.autocomplete(\n\t\t\t\tquery,\n\t\t\t\tLocationHelper.makeAutocompleteParams(address, deviceGeoPosition),\n\t\t\t)\n\t\t\t\t.then(\n\t\t\t\t\t(searchResults) => {\n\t\t\t\t\t\tresolve(searchResults.map(LocationHelper.makeObjectFromLocation));\n\t\t\t\t\t},\n\t\t\t\t\t() => {\n\t\t\t\t\t\treject();\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t});\n\t}\n\n\tstatic makeAddressFromText(line2Value: string, addressFormat: Object): Object\n\t{\n\t\tconst locAddressFormat = LocationHelper.makeFormatFromObject(addressFormat);\n\t\tconst locAddress = LocationHelper.makeAddressFromObject({\n\t\t\tlanguageId: locAddressFormat.languageId,\n\t\t});\n\t\tlocAddress.fieldCollection.setFieldValue(\n\t\t\tAddressType.ADDRESS_LINE_2,\n\t\t\tline2Value\n\t\t);\n\n\t\treturn LocationHelper.makeObjectFromAddress(locAddress);\n\t}\n\n\tstatic findAddressByLocation(location: Object): Promise\n\t{\n\t\treturn new Promise((resolve, reject) => {\n\n\t\t\tconst repository = LocationHelper.makeRepository();\n\n\t\t\trepository.findByExternalId(\n\t\t\t\tlocation.externalId,\n\t\t\t\tlocation.sourceCode,\n\t\t\t\tlocation.languageId,\n\t\t\t).then(\n\t\t\t\t(foundLocation) => {\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tfoundLocation\n\t\t\t\t\t\t\t? LocationHelper.makeObjectFromAddress(foundLocation.address)\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\treject();\n\t\t\t\t}\n\t\t\t);\n\t\t});\n\t}\n\n\tstatic getAddressFieldsValues(address: Object, addressFormat: Object): Array<Object>\n\t{\n\t\tconst locAddress = address ? LocationHelper.makeAddressFromObject(address) : null;\n\t\tconst locAddressFormat = LocationHelper.makeFormatFromObject(addressFormat);\n\n\t\tconst result = [];\n\n\t\tfor (const type in locAddressFormat.fieldCollection.fields)\n\t\t{\n\t\t\tconst field = locAddressFormat.fieldCollection.fields[type];\n\n\t\t\tresult.push({\n\t\t\t\tname: field.name,\n\t\t\t\ttype: field.type,\n\t\t\t\tvalue: locAddress ? locAddress.fieldCollection.getFieldValue(type) : '',\n\t\t\t});\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic applyFieldsToAddress(address: ?Object, addressFormat: Object, fields: Array<Object>): ?Object\n\t{\n\t\tconst locAddressFormat = LocationHelper.makeFormatFromObject(addressFormat);\n\t\tconst locAddress = LocationHelper.makeAddressFromObject(\n\t\t\taddress || { languageId: locAddressFormat.languageId }\n\t\t);\n\n\t\tlet allFieldsAreEmpty = true;\n\t\tfor (const field of fields)\n\t\t{\n\t\t\tconst currentValue = locAddress.fieldCollection.getFieldValue(field.type);\n\n\t\t\tif (currentValue !== field.value)\n\t\t\t{\n\t\t\t\tlocAddress.fieldCollection.setFieldValue(\n\t\t\t\t\tfield.type,\n\t\t\t\t\tfield.value\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (field.value !== null && field.value !== '')\n\t\t\t{\n\t\t\t\tallFieldsAreEmpty = false;\n\t\t\t}\n\t\t}\n\n\t\tif (allFieldsAreEmpty)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn LocationHelper.makeObjectFromAddress(locAddress);\n\t}\n\n\tstatic applyDetailsToAddress(address: Object, details: string): Object\n\t{\n\t\tconst locAddress = LocationHelper.makeAddressFromObject(address);\n\n\t\tlocAddress.fieldCollection.setFieldValue(\n\t\t\tAddressType.ADDRESS_LINE_2,\n\t\t\tdetails\n\t\t);\n\n\t\treturn LocationHelper.makeObjectFromAddress(locAddress);\n\t}\n\n\tstatic getAddressDetails(address: Object): string\n\t{\n\t\tconst locAddress = LocationHelper.makeAddressFromObject(address);\n\n\t\treturn locAddress.fieldCollection.getFieldValue(AddressType.ADDRESS_LINE_2) || '';\n\t}\n\n\tstatic getLocationTypeClarification(location: Object): string\n\t{\n\t\treturn location.fieldCollection[LocationType.TMP_TYPE_CLARIFICATION] || '';\n\t}\n\n\tstatic isAddressValidForMap(address: ?Object): boolean\n\t{\n\t\treturn (\n\t\t\taddress\n\t\t\t&& address.latitude !== ''\n\t\t\t&& address.longitude !== ''\n\t\t\t&& address.latitude !== '0'\n\t\t\t&& address.longitude !== '0'\n\t\t);\n\t}\n\n\tstatic getLine2FieldName(addressFormat: Object): string\n\t{\n\t\tconst locAddressFormat = LocationHelper.makeFormatFromObject(addressFormat);\n\n\t\tconst field = locAddressFormat.getField(AddressType.ADDRESS_LINE_2);\n\t\tif (!field)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn field.name;\n\t}\n}\n","import { Dom } from 'main.core';\nimport { LocationHelper } from '../location-helper';\n\nexport default\n{\n\tprops: {\n\t\taddress: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\taddressFormat: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tdeviceGeoPosition: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tdata: () => {\n\t\treturn {\n\t\t\tisSearchingMap: false,\n\t\t\tisSettingDetails: false,\n\t\t\taddressDetailsDraft: '',\n\t\t};\n\t},\n\tmounted()\n\t{\n\t\tthis.source = LocationHelper.makeSource();\n\t\tthis.renderMap();\n\t\tif (this.isEditable)\n\t\t{\n\t\t\tthis.subscribeToMapEvents();\n\t\t}\n\t},\n\tmethods: {\n\t\trenderMap(): void\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.source.mapMobile.render(\n\t\t\t\t\tLocationHelper.makeMapRenderProps(\n\t\t\t\t\t\tthis.address,\n\t\t\t\t\t\tthis.deviceGeoPosition,\n\t\t\t\t\t\tthis.isEditable,\n\t\t\t\t\t\tthis.$refs['map']\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}, 500);\n\t\t},\n\t\tsubscribeToMapEvents(): void\n\t\t{\n\t\t\tthis.source.mapMobile.onLocationChangedEventSubscribe((event) => {\n\t\t\t\tconst address = event.data.location.address;\n\n\t\t\t\tthis.$emit('address-changed', LocationHelper.makeObjectFromAddress(address));\n\t\t\t});\n\n\t\t\tthis.source.mapMobile.onStartChangingSubscribe((event) => {\n\t\t\t\tthis.lastMapSearchRequestId = event.data.requestId;\n\t\t\t});\n\n\t\t\tthis.source.mapMobile.onEndChangingSubscribe((event) => {\n\t\t\t\tif (\n\t\t\t\t\tthis.lastMapSearchRequestId !== null\n\t\t\t\t\t&& event.data.requestId !== this.lastMapSearchRequestId\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.isSearchingMap = false;\n\t\t\t\tthis.lastMapSearchRequestId = null;\n\t\t\t});\n\n\t\t\tthis.source.mapMobile.onMapViewChangedSubscribe(() => {\n\t\t\t\tthis.lastMapSearchRequestId = '';\n\t\t\t\tthis.isSearchingMap = true;\n\t\t\t});\n\t\t},\n\t\tonAddressClicked(): void\n\t\t{\n\t\t\tthis.$emit('address-clicked');\n\t\t},\n\t\tonMarkerClicked(event): void\n\t\t{\n\t\t\tif (!this.isEditable && this.address)\n\t\t\t{\n\t\t\t\tthis.source.mapMobile.panTo(\n\t\t\t\t\tthis.address.latitude,\n\t\t\t\t\tthis.address.longitude,\n\t\t\t\t);\n\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t},\n\t\topenSetDetails(): void\n\t\t{\n\t\t\tthis.addressDetailsDraft = this.addressDetails;\n\t\t\tthis.isSettingDetails = true;\n\t\t\tthis.showOverlay();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst addressDetailsNode = this.getAddressDetailsNode();\n\t\t\t\tif (addressDetailsNode)\n\t\t\t\t{\n\t\t\t\t\taddressDetailsNode.focus();\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t\tthis.adjustAddressDetailsNodeHeight();\n\t\t},\n\t\tonDoneWithSettingDetails(): void\n\t\t{\n\t\t\tthis.$emit(\n\t\t\t\t'address-changed',\n\t\t\t\tLocationHelper.applyDetailsToAddress(\n\t\t\t\t\tthis.address,\n\t\t\t\t\tthis.addressDetailsDraft\n\t\t\t\t)\n\t\t\t);\n\t\t\tthis.isSettingDetails = false;\n\t\t\tthis.hideOverlay();\n\t\t},\n\t\tonSearchClicked(): void\n\t\t{\n\t\t\tthis.$emit('search-clicked');\n\t\t},\n\t\tonDone(): void\n\t\t{\n\t\t\tthis.$emit('done-clicked');\n\t\t},\n\t\tgetOverlayNode(): HTMLElement\n\t\t{\n\t\t\treturn this.$refs['overlay'];\n\t\t},\n\t\tshowOverlay()\n\t\t{\n\t\t\tconst overlayNode = this.getOverlayNode();\n\t\t\tif (overlayNode)\n\t\t\t{\n\t\t\t\tDom.style(overlayNode, 'display', 'block');\n\t\t\t}\n\t\t},\n\t\thideOverlay()\n\t\t{\n\t\t\tconst overlayNode = this.getOverlayNode();\n\t\t\tif (overlayNode)\n\t\t\t{\n\t\t\t\tDom.style(overlayNode, 'display', 'none');\n\t\t\t}\n\t\t},\n\t\tgetAddressDetailsNode(): HTMLElement\n\t\t{\n\t\t\treturn this.$refs['address-details'];\n\t\t},\n\t\tadjustAddressDetailsNodeHeight()\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst addressDetailsNode = this.getAddressDetailsNode();\n\t\t\t\tif (addressDetailsNode)\n\t\t\t\t{\n\t\t\t\t\tDom.style(addressDetailsNode, 'height', 'auto');\n\t\t\t\t\tDom.style(addressDetailsNode, 'height', `${addressDetailsNode.scrollHeight}px`);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t},\n\tcomputed: {\n\t\taddressText(): string\n\t\t{\n\t\t\treturn LocationHelper.getTextAddressForMap(this.address, this.addressFormat);\n\t\t},\n\t\taddressDetails(): string\n\t\t{\n\t\t\treturn LocationHelper.getAddressDetails(this.address);\n\t\t},\n\t\taddressContainerClasses(): Object\n\t\t{\n\t\t\treturn {\n\t\t\t\t'mobile-address-map-address-container': true,\n\t\t\t\t'mobile-address-map-address-container-map-searching': this.isSearchingMap,\n\t\t\t};\n\t\t},\n\t\tline2FieldName(): string\n\t\t{\n\t\t\treturn LocationHelper.getLine2FieldName(this.addressFormat);\n\t\t},\n\t},\n\ttemplate: `\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`\n};\n","export default {\n\tdata: () => {\n\t\treturn {\n\t\t\tisKeyboardShown: false,\n\t\t};\n\t},\n\tmethods: {\n\t\tsubscribeToKeyboardEvents(): void\n\t\t{\n\t\t\twindow.app.exec('enableCaptureKeyboard', true);\n\t\t\tBXMobileApp.addCustomEvent('onKeyboardWillShow', () => {\n\t\t\t\tthis.isKeyboardShown = true;\n\t\t\t});\n\t\t\tBXMobileApp.addCustomEvent('onKeyboardWillHide', () => {\n\t\t\t\tthis.isKeyboardShown = false;\n\t\t\t});\n\t\t},\n\t\tadjustWindowHeight(): void\n\t\t{\n\t\t\tconst currentHeight = window.innerHeight;\n\t\t\tdocument.body.style.height = `${currentHeight}px`;\n\t\t},\n\t},\n}\n","import {\n\tDom,\n\tRuntime,\n} from 'main.core';\nimport { Loader } from 'main.loader';\nimport { LocationHelper } from '../location-helper';\nimport Keyboard from '../mixins/keyboard';\n\nexport default\n{\n\tmixins: [Keyboard],\n\tprops: {\n\t\taddress: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\taddressFormat: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tdeviceGeoPosition: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\trecentAddresses: {\n\t\t\ttype: Array,\n\t\t\trequired: false,\n\t\t\tdefault: [],\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tdata: () => {\n\t\treturn {\n\t\t\tsearchQuery: '',\n\t\t\tisSearching: false,\n\t\t\tsearchTookPlace: false,\n\t\t\tinputTookPlace: false,\n\t\t\tsearchResults: [],\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.locationRepository = LocationHelper.makeRepository();\n\t\tthis.debouncedSearch = Runtime.debounce(this.search, 500, this);\n\t\tthis.loader = new Loader();\n\t\tthis.subscribeToKeyboardEvents();\n\t},\n\tmounted()\n\t{\n\t\tthis.adjustSearchQueryNodeHeight();\n\t\tthis.refreshSearchQuery();\n\t},\n\tmethods: {\n\t\tsearch(query): void\n\t\t{\n\t\t\tthis.lastQuery = query;\n\t\t\tthis.isSearching = true;\n\n\t\t\tLocationHelper.search(query, this.address, this.deviceGeoPosition).then(\n\t\t\t\t(searchResults) => {\n\t\t\t\t\tif (query !== this.lastQuery)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.searchResults = searchResults;\n\t\t\t\t\tthis.searchTookPlace = true;\n\t\t\t\t\tthis.isSearching = false;\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tif (query !== this.lastQuery)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.searchResults = [];\n\t\t\t\t\tthis.searchTookPlace = true;\n\t\t\t\t\tthis.isSearching = false;\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\tonFoundItemClicked(location): void\n\t\t{\n\t\t\tthis.loader.show(this.$refs['search-results-loader']);\n\n\t\t\tLocationHelper.findAddressByLocation(location).then(\n\t\t\t\t(address) => {\n\t\t\t\t\tthis.loader.hide();\n\n\t\t\t\t\tthis.$emit('address-picked', address);\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tthis.loader.hide();\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\tonRecentAddressItemClicked(address): void\n\t\t{\n\t\t\tthis.$emit('address-picked', address);\n\t\t},\n\t\trefreshSearchQuery(): void\n\t\t{\n\t\t\tthis.searchQuery = this.getTextAddressForAutocomplete(this.address);\n\t\t},\n\t\tonMapClicked(): void\n\t\t{\n\t\t\tif (this.inputTookPlace && this.searchResults.length > 0)\n\t\t\t{\n\t\t\t\tthis.onFoundItemClicked(this.searchResults[0]);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.$emit('map-clicked');\n\t\t\t}\n\t\t},\n\t\tonAddressNotFoundClicked(): void\n\t\t{\n\t\t\tthis.$emit('address-not-found-clicked');\n\t\t},\n\t\tonClearAddress(): void\n\t\t{\n\t\t\tthis.$emit('clear-address');\n\t\t\tthis.searchTookPlace = false;\n\t\t\tthis.searchResults = [];\n\n\t\t\tthis.adjustSearchQueryNodeHeight();\n\t\t},\n\t\tonSearchQueryInput(): void\n\t\t{\n\t\t\tthis.inputTookPlace = true;\n\t\t\tthis.adjustSearchQueryNodeHeight();\n\n\t\t\tthis.$emit(\n\t\t\t\t'address-changed',\n\t\t\t\tLocationHelper.makeAddressFromText(this.searchQuery, this.addressFormat)\n\t\t\t);\n\t\t},\n\t\tadjustSearchQueryNodeHeight(): void\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst searchQueryNode = this.$refs['search-query'];\n\t\t\t\tif (searchQueryNode)\n\t\t\t\t{\n\t\t\t\t\tDom.style(searchQueryNode, 'height', 'auto');\n\t\t\t\t\tDom.style(searchQueryNode, 'height', `${searchQueryNode.scrollHeight}px`);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t\tgetLocationTypeClarification(location): string\n\t\t{\n\t\t\treturn LocationHelper.getLocationTypeClarification(location);\n\t\t},\n\t\tgetTextAddressForAutocomplete(address)\n\t\t{\n\t\t\treturn LocationHelper.getTextAddressForAutocomplete(address, this.addressFormat);\n\t\t},\n\t\tgetRecentResultItemClasses(index)\n\t\t{\n\t\t\tconst isLastItem = this.recentAddresses.length - 1 === index;\n\n\t\t\treturn {\n\t\t\t\t'mobile-address-autocomplete-results-result-item': !isLastItem,\n\t\t\t\t'mobile-address-autocomplete-results-result-item-no-bottom-border': isLastItem,\n\t\t\t};\n\t\t},\n\t},\n\tcomputed: {\n\t\tsearchResultsContainerStyle(): Object\n\t\t{\n\t\t\treturn {\n\t\t\t\topacity: this.isSearching ? 0.5 : 1,\n\t\t\t};\n\t\t},\n\t\tshouldShowAddressNotFound(): boolean\n\t\t{\n\t\t\treturn this.address && this.searchTookPlace;\n\t\t},\n\t\thasRecentAddresses(): boolean\n\t\t{\n\t\t\treturn this.recentAddresses.length > 0;\n\t\t},\n\t\tnoMatchesFoundText(): string\n\t\t{\n\t\t\tconst locPhrase =\n\t\t\t\tthis.searchResults.length === 0\n\t\t\t\t\t? 'LOCATION_MOBILE_APP_MATCHES_NOT_FOUND_MSGVER_1'\n\t\t\t\t\t: 'LOCATION_MOBILE_APP_MATCHES_NO_DESIRED_MATCHES'\n\t\t\t;\n\n\t\t\treturn this.$Bitrix.Loc.getMessage(locPhrase);\n\t\t},\n\t},\n\twatch: {\n\t\tisSearching(newValue): void\n\t\t{\n\t\t\tif (newValue === true)\n\t\t\t{\n\t\t\t\tthis.loader.show(this.$refs['search-results-loader']);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.loader.hide();\n\t\t\t}\n\t\t},\n\t\tsearchQuery(newValue): void\n\t\t{\n\t\t\tif (newValue === '')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.debouncedSearch(newValue);\n\t\t},\n\t\taddress(): void\n\t\t{\n\t\t\tthis.refreshSearchQuery();\n\t\t},\n\t\tisKeyboardShown(newValue): void\n\t\t{\n\t\t\tif (newValue)\n\t\t\t{\n\t\t\t\tsetTimeout(() => this.adjustWindowHeight(),0);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdocument.body.style.height = '';\n\t\t\t}\n\t\t},\n\t},\n\ttemplate: `\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`\n};\n","import { Dom } from 'main.core';\nimport Keyboard from '../mixins/keyboard';\n\nexport default\n{\n\tmixins: [Keyboard],\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ttype: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: '',\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tdata: () => {\n\t\treturn {\n\t\t\tisFocused: false,\n\t\t};\n\t},\n\tmounted()\n\t{\n\t\tthis.adjustQueryNodeHeight();\n\t},\n\tcomputed: {\n\t\tisTitleVisible(): boolean\n\t\t{\n\t\t\treturn this.isFocused || this.value;\n\t\t},\n\t\ttitleClasses(): Object\n\t\t{\n\t\t\treturn {\n\t\t\t\t'mobile-address-field-title': true,\n\t\t\t\t'mobile-address-field-title-focused': this.isFocused,\n\t\t\t};\n\t\t},\n\t\tplaceholder(): string\n\t\t{\n\t\t\treturn this.isTitleVisible\n\t\t\t\t? this.$Bitrix.Loc.getMessage('LOCATION_MOBILE_APP_NOT_ENTERED')\n\t\t\t\t: this.name;\n\t\t},\n\t},\n\tmethods: {\n\t\tonFocusIn(): void\n\t\t{\n\t\t\tthis.isFocused = true;\n\n\t\t\tif (window.platform === 'android')\n\t\t\t{\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.adjustWindowHeight()\n\n\t\t\t\t\tconst container = this.$refs['container'];\n\t\t\t\t\tconst buttonOffset = 50;\n\t\t\t\t\tconst containerPosition = container.getBoundingClientRect().top;\n\t\t\t\t\tconst offsetPosition = containerPosition - buttonOffset;\n\n\t\t\t\t\twindow.scrollTo({\n\t\t\t\t\t\ttop: offsetPosition,\n\t\t\t\t\t\tbehavior: 'smooth'\n\t\t\t\t\t});\n\n\t\t\t\t}, 300);\n\t\t\t}\n\t\t},\n\t\tonFocusOut(): void\n\t\t{\n\t\t\tthis.isFocused = false;\n\t\t},\n\t\tonInput(event): void\n\t\t{\n\t\t\tthis.$emit('input', {\n\t\t\t\ttype: this.type,\n\t\t\t\tvalue: event.target.value,\n\t\t\t});\n\n\t\t\tthis.adjustQueryNodeHeight();\n\t\t},\n\t\tadjustQueryNodeHeight(): void\n\t\t{\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst queryNode = this.$refs['textarea-query'];\n\t\t\t\tif (queryNode)\n\t\t\t\t{\n\t\t\t\t\tDom.style(queryNode, 'height', 'auto');\n\t\t\t\t\tDom.style(queryNode, 'height', `${queryNode.scrollHeight}px`);\n\t\t\t\t}\n\t\t\t}, 0);\n\t\t},\n\t},\n\ttemplate: `\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`\n};\n","import Field from './field';\nimport Keyboard from '../mixins/keyboard';\nimport { LocationHelper } from '../location-helper';\nimport { Dom } from 'main.core';\n\nexport default\n{\n\tmixins: [Keyboard],\n\tcomponents: {\n\t\t'field': Field,\n\t},\n\tprops: {\n\t\taddress: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\taddressFormat: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tdata: () => {\n\t\treturn {\n\t\t\tfields: [],\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tthis.fields = LocationHelper.getAddressFieldsValues(this.address, this.addressFormat);\n\t\tthis.subscribeToKeyboardEvents();\n\t},\n\tmethods: {\n\t\tsaveValues(): void\n\t\t{\n\t\t\tthis.$emit(\n\t\t\t\t'address-changed',\n\t\t\t\tLocationHelper.applyFieldsToAddress(\n\t\t\t\t\tthis.address,\n\t\t\t\t\tthis.addressFormat,\n\t\t\t\t\tthis.fields\n\t\t\t\t)\n\t\t\t);\n\t\t},\n\t\tonNewSearchClicked(): void\n\t\t{\n\t\t\tthis.$emit('new-search-clicked');\n\t\t},\n\t\tonBackToMapClicked(): void\n\t\t{\n\t\t\tthis.$emit('back-to-map-clicked');\n\t\t},\n\t\tonFieldInput(event): void\n\t\t{\n\t\t\tconst field = this.fields.find((field) => field.type === event.type);\n\t\t\tif (field)\n\t\t\t{\n\t\t\t\tfield.value = event.value;\n\t\t\t}\n\t\t},\n\t\tonDone(): void\n\t\t{\n\t\t\tthis.$emit('done', LocationHelper.applyFieldsToAddress(this.address, this.addressFormat, this.fields));\n\t\t},\n\t\thasSource(): boolean\n\t\t{\n\t\t\tconst source = LocationHelper.makeSource();\n\n\t\t\treturn !!source;\n\t\t},\n\t},\n\tcomputed: {\n\t\tshouldShowNewSearchButton(): boolean\n\t\t{\n\t\t\treturn !this.isKeyboardShown && this.hasSource();\n\t\t},\n\t},\n\twatch: {\n\t\tisKeyboardShown(newValue): void\n\t\t{\n\t\t\tconst mobileWrapper = document.querySelector('.mobile-address-container');\n\n\t\t\tif (newValue)\n\t\t\t{\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tDom.style(mobileWrapper, 'height', `calc(100% + ${this.$refs['save-values'].offsetHeight}px)`);\n\t\t\t\t\tthis.adjustWindowHeight();\n\t\t\t\t},0)\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tDom.style(mobileWrapper, 'height', '');\n\t\t\t\t\tdocument.body.style.height = '';\n\t\t\t\t},0)\n\t\t\t}\n\t\t}\n\t},\n\ttemplate: `\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`\n};\n","import { ajax } from 'main.core';\nimport MapMode from './address-editor/map';\nimport AutocompleteMode from './address-editor/autocomplete';\nimport FieldsMode from './address-editor/fields';\n\nimport { LocationHelper } from './location-helper';\n\nimport 'ui.design-tokens';\nimport './css/address-editor.css';\n\nconst ModeList = {\n\tmap: 'map',\n\tautocomplete: 'autocomplete',\n\tfields: 'fields',\n};\n\nexport default\n{\n\tprops: {\n\t\tinitialAddress: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\taddressFormat: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t\tdefault: JSON.parse(\n\t\t\t\tBX.message('LOCATION_WIDGET_DEFAULT_FORMAT')\n\t\t\t),\n\t\t},\n\t\tdeviceGeoPosition: {\n\t\t\ttype: Object,\n\t\t\trequired: false,\n\t\t},\n\t\trecentAddresses: {\n\t\t\ttype: Array,\n\t\t\trequired: false,\n\t\t\tdefault: [],\n\t\t},\n\t\tisEditable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: true,\n\t\t},\n\t\tuid: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\t},\n\tcomponents: {\n\t\t'map-mode': MapMode,\n\t\t'autocomplete-mode': AutocompleteMode,\n\t\t'fields-mode': FieldsMode,\n\t},\n\tdata: () => {\n\t\treturn {\n\t\t\taddress: null,\n\t\t\tmode: null,\n\t\t};\n\t},\n\tcreated()\n\t{\n\t\tif (this.initialAddress)\n\t\t{\n\t\t\tthis.setAddress(this.initialAddress);\n\t\t}\n\n\t\tthis.initializeMode();\n\t},\n\tcomputed: {\n\t\tisModeMap(): boolean\n\t\t{\n\t\t\treturn this.mode === ModeList.map;\n\t\t},\n\t\tisModeAutocomplete(): boolean\n\t\t{\n\t\t\treturn this.mode === ModeList.autocomplete;\n\t\t},\n\t\tisModeFields(): boolean\n\t\t{\n\t\t\treturn this.mode === ModeList.fields;\n\t\t},\n\t},\n\tmethods: {\n\t\tinitializeMode(): void\n\t\t{\n\t\t\tconst source = LocationHelper.makeSource();\n\n\t\t\tif (source)\n\t\t\t{\n\t\t\t\tif (this.isEditable)\n\t\t\t\t{\n\t\t\t\t\tthis.setMode(ModeList.autocomplete);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (LocationHelper.isAddressValidForMap(this.address))\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setMode(ModeList.map);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.setMode(ModeList.fields);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.setMode(ModeList.fields);\n\t\t\t}\n\t\t},\n\t\tsetAddress(address): void\n\t\t{\n\t\t\tthis.address = address;\n\t\t},\n\t\tsetMode(mode): void\n\t\t{\n\t\t\tthis.mode = mode;\n\t\t},\n\t\temitAddressUsed(): void\n\t\t{\n\t\t\tif (!this.isEditable)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst emitAddressValue = this.getEmitAddressValue();\n\t\t\tif (emitAddressValue.value !== null)\n\t\t\t{\n\t\t\t\tthis.saveRecentAddress();\n\t\t\t}\n\n\t\t\tconst params = {\n\t\t\t\taddress: emitAddressValue,\n\t\t\t};\n\t\t\tif (this.uid)\n\t\t\t{\n\t\t\t\tparams.uid = this.uid;\n\t\t\t}\n\n\t\t\tBXMobileApp.Events.postToComponent('Location::MobileAddressEditor::AddressSelected', params);\n\t\t},\n\t\tgetEmitAddressValue(): Object\n\t\t{\n\t\t\tif (this.address === null)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tvalue: null,\n\t\t\t\t\ttext: '',\n\t\t\t\t\tcoords: [],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst address = LocationHelper.makeAddressFromObject(this.address);\n\n\t\t\tif (this.initialAddress)\n\t\t\t{\n\t\t\t\taddress.id = this.initialAddress.id || 0;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tvalue: address.toJson(),\n\t\t\t\ttext: LocationHelper.getTextAddressForDefault(this.address, this.addressFormat),\n\t\t\t\tcoords: (address.latitude !== '' && address.longitude !== '')\n\t\t\t\t\t? [address.latitude, address.longitude]\n\t\t\t\t\t: [],\n\t\t\t};\n\t\t},\n\t\tsaveRecentAddress()\n\t\t{\n\t\t\tajax.runAction('location.api.recentaddress.save', {\n\t\t\t\tdata: {\n\t\t\t\t\taddress: this.address,\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tonMapSearchClicked(): void\n\t\t{\n\t\t\tif (!this.isEditable)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setMode(ModeList.autocomplete);\n\t\t},\n\t\tonMapAddressChanged(address): void\n\t\t{\n\t\t\tthis.setAddress(address);\n\t\t},\n\t\tonMapDone(): void\n\t\t{\n\t\t\tthis.emitAddressUsed();\n\t\t},\n\t\tonMapAddressClicked(): void\n\t\t{\n\t\t\tif (this.isEditable)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.setMode(ModeList.fields);\n\t\t},\n\t\tonAutocompleteAddressPicked(address): void\n\t\t{\n\t\t\tthis.setAddress(address);\n\t\t\tthis.setMode(ModeList.map);\n\t\t},\n\t\tonAutocompleteAddressChanged(address): void\n\t\t{\n\t\t\tthis.setAddress(address);\n\t\t},\n\t\tonAutocompleteMapClicked(): void\n\t\t{\n\t\t\tthis.setMode(ModeList.map);\n\t\t},\n\t\tonAutocompleteAddressNotFoundClicked(): void\n\t\t{\n\t\t\tthis.setMode(ModeList.fields);\n\t\t},\n\t\tonAutocompleteClearAddress(): void\n\t\t{\n\t\t\tthis.setAddress(null);\n\t\t},\n\t\tonFieldsAddressChanged(address): void\n\t\t{\n\t\t\tthis.setAddress(address);\n\t\t},\n\t\tonFieldsNewSearchClicked(): void\n\t\t{\n\t\t\tthis.setMode(ModeList.autocomplete);\n\t\t},\n\t\tonFieldsDone(address): void\n\t\t{\n\t\t\tthis.setAddress(address);\n\t\t\tthis.emitAddressUsed();\n\t\t},\n\t\tonFieldsBackToMapClicked(): void\n\t\t{\n\t\t\tthis.setMode(ModeList.map);\n\t\t},\n\t},\n\ttemplate: `\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`\n};\n"],"names":["LocationHelper","makeObjectFromLocation","location","JSON","parse","toJson","makeAddressFromObject","address","Address","makeObjectFromAddress","makeFormatFromObject","format","Format","makeSource","Factory","create","BX","message","makeRepository","LocationRepository","getTextAddress","addressFormat","template","locAddressFormat","AddressStringConverter","convertAddressToStringTemplate","getTemplate","getTextAddressForAutocomplete","FormatTemplateType","AUTOCOMPLETE","getTextAddressForDefault","DEFAULT","getTextAddressForMap","result","trim","makeMapRenderProps","deviceGeoPosition","isEditable","mapContainer","zoomControl","mode","ControlMode","edit","view","isAddressValidForMap","latitude","longitude","type","LocationType","BUILDING","searchOnRender","defaultLocationPoint","Math","max","Object","keys","fieldCollection","map","Number","makeAutocompleteParams","biasPoint","getAutocompleteBiasPoint","Point","search","query","Promise","resolve","reject","source","autocompleteService","autocomplete","then","searchResults","makeAddressFromText","line2Value","locAddress","languageId","setFieldValue","AddressType","ADDRESS_LINE_2","findAddressByLocation","repository","findByExternalId","externalId","sourceCode","foundLocation","getAddressFieldsValues","fields","field","push","name","value","getFieldValue","applyFieldsToAddress","allFieldsAreEmpty","currentValue","applyDetailsToAddress","details","getAddressDetails","getLocationTypeClarification","TMP_TYPE_CLARIFICATION","getLine2FieldName","getField","props","required","Boolean","default","data","isSearchingMap","isSettingDetails","addressDetailsDraft","mounted","renderMap","subscribeToMapEvents","methods","setTimeout","mapMobile","render","$refs","onLocationChangedEventSubscribe","event","$emit","onStartChangingSubscribe","lastMapSearchRequestId","requestId","onEndChangingSubscribe","onMapViewChangedSubscribe","onAddressClicked","onMarkerClicked","panTo","stopPropagation","openSetDetails","addressDetails","showOverlay","addressDetailsNode","getAddressDetailsNode","focus","adjustAddressDetailsNodeHeight","onDoneWithSettingDetails","hideOverlay","onSearchClicked","onDone","getOverlayNode","overlayNode","Dom","style","scrollHeight","computed","addressText","addressContainerClasses","line2FieldName","isKeyboardShown","subscribeToKeyboardEvents","window","app","exec","BXMobileApp","addCustomEvent","adjustWindowHeight","currentHeight","innerHeight","document","body","height","mixins","Keyboard","recentAddresses","Array","searchQuery","isSearching","searchTookPlace","inputTookPlace","created","locationRepository","debouncedSearch","Runtime","debounce","loader","Loader","adjustSearchQueryNodeHeight","refreshSearchQuery","lastQuery","onFoundItemClicked","show","hide","onRecentAddressItemClicked","onMapClicked","length","onAddressNotFoundClicked","onClearAddress","onSearchQueryInput","searchQueryNode","getRecentResultItemClasses","index","isLastItem","searchResultsContainerStyle","opacity","shouldShowAddressNotFound","hasRecentAddresses","noMatchesFoundText","locPhrase","$Bitrix","Loc","getMessage","watch","newValue","String","isFocused","adjustQueryNodeHeight","isTitleVisible","titleClasses","placeholder","onFocusIn","platform","container","buttonOffset","containerPosition","getBoundingClientRect","top","offsetPosition","scrollTo","behavior","onFocusOut","onInput","target","queryNode","components","Field","saveValues","onNewSearchClicked","onBackToMapClicked","onFieldInput","find","hasSource","shouldShowNewSearchButton","mobileWrapper","querySelector","offsetHeight","ModeList","initialAddress","uid","MapMode","AutocompleteMode","FieldsMode","setAddress","initializeMode","isModeMap","isModeAutocomplete","isModeFields","setMode","emitAddressUsed","emitAddressValue","getEmitAddressValue","saveRecentAddress","params","Events","postToComponent","text","coords","id","ajax","runAction","onMapSearchClicked","onMapAddressChanged","onMapDone","onMapAddressClicked","onAutocompleteAddressPicked","onAutocompleteAddressChanged","onAutocompleteMapClicked","onAutocompleteAddressNotFoundClicked","onAutocompleteClearAddress","onFieldsAddressChanged","onFieldsNewSearchClicked","onFieldsDone","onFieldsBackToMapClicked"],"mappings":"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"}