JSFiddle - React, Tailwind, and code Playground

by atach

HTML

<script src="http://puximex.finogeev.com.fstest.ru/templates/pux/js/kladr/jquery.kladr.min.js"></script>
<script src="http://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<div id="map-1"></div>		
		<div class="add-panel" id="kladr_adr">
            <div class="wrp">
                <form class="add-panel__request regular__ctrls">
                    <div class="ffield">
                        <label class="ffield__lbl">
                            Город
                        </label>
                        <input name="city" type="text" class="long">
                    </div>
                    <div class="ffield">
                        <label class="ffield__lbl">
                            Улица
                        </label>
                        <input name="street" type="text" class="long">
                    </div>
                    <div class="ffield">
                        <label class="ffield__lbl">
                            Номер дома
                        </label>
                        <input name="building" type="text" class="small">

                        <label class="ffield__lbl2">
                            Корпус/строение
                        </label>
                        <input name="building-add" type="text" class="small">
                    </div>
                </form>               
            </div>
        </div>

CSS

body, html {
            padding: 0;
            margin: 0;
            width: 100%;
            height: 100%;
        }
        #map-1 {
            width: 100%;
            height: 80%;
        }
        
        
        .mini_map {
	        width: 400px;
	        height: 200px;
        }

#kladr_adr .add-panel {
    position: relative;
    z-index: 100;
    margin: 20px;
}

#kladr_adr .add-panel .wrp {
    width: 680px;
    margin: 0 auto;
    position: relative;
    border: 1px solid rgb(104, 104, 104);
    background-color: rgb(236, 236, 236);
    border-radius: 5px;
    padding-top: 15px;
}

#kladr_adr .add-panel__map {
    width: 472px;
    height: 147px;
    float: left;
    padding: 10px;
    border-radius: 3px;
    background: #F2F2F2;
    -moz-box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
    box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
}

#kladr_adr .panel_map {
	width: 100%;
    height: 250px;
    float: left;
    margin: 10px 0;
    background: #F2F2F2;
    -moz-box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
    -webkit-box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
    box-shadow: 0px 1px 0px rgb(255, 255, 255), inset 0px 1px 3px rgba(0, 0, 0, 0.25);
}

#kladr_adr #map {
    background: #F2F2F2;
    background-size: 473px 147px;
    cursor: move;
}

#kladr_adr .add-panel__request-ui input[type="text"]
{
    width: 240px;
}

#kladr_adr label {
    font-size: 100%;
    font: inherit;
    font-weight: normal;
    font-style: normal;
    vertical-align: baseline;
    font-family: Helvetica, Arial;
}

#kladr_adr .regular__ctrls .ffield {
    position: relative;
    padding-top: 2px;
    padding-bottom: 11px;
    overflow: hidden;
    width: 100%;
}

#kladr_adr .regular__ctrls .spinner{
    position: absolute;
   ...

JavaScript

(function($){
	
	
    $(function() {
    
        var container = $('#kladr_adr');
        
        var token = '51dfe5d42fb2b43e3300006e';
        var key = '86a2c2a06f1b2451a87d05512cc2c3edfdf41969';        
        
        var city = container.find( '[name="city"]' );
        var street = container.find( '[name="street"]' );
        var building = container.find( '[name="building"]' );
        var buildingAdd = container.find( '[name="building-add"]' );

        var map = null;
        var placemark = null;
        var map_created = false;
        var geoPoint;
        var timestamp = new Date().getTime();              
		
			

        // Формирует подписи в autocomplete
        var LabelFormat = function( obj, query ){
            var label = '';
            
            var name = obj.name.toLowerCase();
            query = query.toLowerCase();
            
            var start = name.indexOf(query);
            start = start > 0 ? start : 0;

            if(obj.typeShort){
                label += '<span class="ac-s2">' + obj.typeShort + '. ' + '</span>';
            }

            if(query.length < obj.name.length){
                label += '<span class="ac-s2">' + obj.name.substr(0, start) + '</span>';
                label += '<span class="ac-s">' + obj.name.substr(start, query.length) + '</span>';
                label += '<span class="ac-s2">' + obj.name.substr(start+query.length, obj.name.length-query.length-start) + '</span>';
            } else {
                label += '<span class="ac-s">' + obj.name + '</span>';
            }

            if(obj.parents){
                for(var k = obj.parents.length-1; k>-1; k--){
                    var parent = obj.parents[k];
                    if(parent.name){
                        if(label) label += '<span class="ac-st">, </span>';
                        label += '<span class="ac-st">' + parent.name + ' ' + parent.typeShort + '.</span>';
                    }
                }
            }

       ...