403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/lpost/delivery/map/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/ilovecveti.ru/bitrix/js/lpost/delivery/map/dist/app.bundle.js.map
{"version":3,"file":"app.bundle.js","sources":["../src/js/Formatting.js","../src/js/ViewManager.js","../src/js/Balloon.js","../src/js/DateDeliverySelector.js","../src/js/WidgetManager.js"],"sourcesContent":["export default class Formatting\n{\n    constructor()\n    {\n\n    }\n\n    paymentMethod (isCard, isCash) {\n\n        return '';\n        \n        /*isCard = parseInt(isCard);\n        isCash = parseInt(isCash);\n\n        if (isCard == 1 && isCash == 1) {\n            return BX.message(\"LPOST_DELIVERY_SOA_METHOD_PAY_CARD_OR_CASH\");\n        } else if (isCash == 1 && isCard == 0) {\n            return BX.message(\"LPOST_DELIVERY_SOA_METHOD_PAY_CASH\");\n        } else if (isCash == 0 && isCard == 0) {\n            return BX.message(\"LPOST_DELIVERY_SOA_METHOD_PAY_PREPAYMENT\");\n        }*/\n\n    }\n\n    getDayLogistic(days)\n    {\n        // dev\n    }\n\n    /**\n     * @deprecated\n     */\n    dateDayDelivery(date = []){\n        let selectList = BX.create('select');\n        for(let day of date){\n            BX.selectUtils.addNewOption(selectList, day, day);\n        }\n        selectList.classList.add(\"input-date-day-delivery\")\n        return selectList.outerHTML ;\n    }\n\n    /**\n     * @deprecated\n     */\n    dateTimeDelivery(times){\n        console.log(times);\n        let selectList = BX.create('select');\n\n        BX.selectUtils.addNewOption(selectList, '_0', times['_0']);\n        delete times['_0'];\n\n        Object.keys(times).forEach(i => {\n            BX.selectUtils.addNewOption(selectList, i, times[i]);\n        });\n        selectList.classList.add(\"input-date-time-delivery\");\n\n        return selectList.outerHTML ;\n    }\n\n    timeWork (arTime, deliveryDay) {\n\n        if (!arTime) return BX.message(\"LPOST_DELIVERY_SOA_TIME_CLOSE\");\n\n        let date = new Date();\n        date.setDate(date.getDate() + deliveryDay);\n        let days = BX.message(\"LPOST_DELIVERY_SOA_DAYS\");\n\n        for (let i = 0; i < arTime.length; i++) {\n            let day = arTime[i];\n            if (days.indexOf(day.Day) == date.getDay()) {\n                let dayFrom = day.From.substring(0, day.From.length - 3);\n                let dayTo = day.To.substring(0, day.To.length - 3);\n                return dayFrom + \" - \" + dayTo;\n            }\n        }\n    }\n}","export default class ViewManager\n{\n    constructor(parent, popupContent)\n    {\n        this.parent = parent;\n        this.popupContent = popupContent;\n        this.mode = \"pvz\";\n\n        this._onEvent();\n        this._resize();\n    }\n\n\n\n    /**\n     * @param mode (pvz || zone || zone_with_map)\n     */\n    switch (mode) {\n        this._setMode(mode);\n        this._action();\n    }\n\n    _setMode (mode) {\n        this.mode = mode;\n    }\n\n    _getMode () {\n        return this.mode;\n    }\n\n    _action () {\n        if (this._getMode() === \"pvz\") {\n            this._zoneAction(\"hide\");\n            this._zoneWithMapAction('hide');\n            this._pvzAction(\"show\");\n        } else if (this._getMode() === \"zone\") {\n            this._pvzAction(\"hide\");\n            this._zoneWithMapAction('hide');\n            this._zoneAction(\"show\");\n        } else {\n            this._zoneAction(\"hide\");\n            this._zoneWithMapAction('show');\n        }\n    }\n\n    _pvzAction (action) {\n        if (action === \"show\") {\n            this.popupContent.querySelector(\".lpost-pvz__list\").classList.remove(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__ctrl-view._pvz\").classList.remove(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__map\").classList.remove(\"_disabled\");\n        } else {\n            this.popupContent.querySelector(\".lpost-pvz__list\").classList.add(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__ctrl-view._pvz\").classList.add(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__map\").classList.add(\"_disabled\");\n        }\n    }\n\n    _zoneAction (action) {\n        if (action === \"show\") {\n            this.popupContent.querySelector(\".lpost-courier__form\").classList.remove(\"_disabled\");\n        } else {\n            this.popupContent.querySelector(\".lpost-courier__form\").classList.add(\"_disabled\");\n        }\n    }\n\n    _zoneWithMapAction (action) {\n        if (action === \"show\") {\n            this.popupContent.querySelector(\".lpost-pvz__return\").classList.remove(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__map\").classList.remove(\"_disabled\");\n        } else {\n            this.popupContent.querySelector(\".lpost-pvz__return\").classList.add(\"_disabled\");\n            this.popupContent.querySelector(\".lpost-pvz__map\").classList.add(\"_disabled\");\n        }\n    }\n\n    _resize () {\n\n        if (window.innerWidth <= 576) {\n            this.popupContent.classList.add(\"_mobile\");\n        } else {\n            this.popupContent.classList.remove(\"_mobile\");\n        }\n    }\n\n    _onEvent () {\n\n        let _self = this;\n\n\n        BX.bindDelegate(\n            this.popupContent.querySelector(\".lpost-pvz__ctrl-view._pvz\"),\n            'click',\n            {className: \"ctrl-view_item\"},\n            function (e) {\n\n                let btns = BX.findParent(this,\n                    {className: 'lpost-pvz__ctrl-view'}\n                ).querySelectorAll(\".ctrl-view_item\");\n\n                for (let btn of btns) {\n                    btn.classList.remove(\"_active\");\n                }\n\n                this.classList.add(\"_active\");\n\n                if (this.dataset.view === \"list\") {\n                    _self.popupContent.querySelector(\".lpost-pvz__list\").classList.remove(\"_disabled\");\n                } else {\n                    _self.popupContent.querySelector(\".lpost-pvz__list\").classList.add(\"_disabled\");\n                }\n\n            }\n        );\n\n        BX.bindDelegate(this.popupContent, \"click\",\n            {className: \"lpost-pvz__item\"},\n            function (e) {\n                let btns = BX.findParent(\n                    this,\n                    {className: 'lpost-pvz__list-wrapper'}\n                ).querySelectorAll(\".lpost-pvz__item\");\n\n                for (let btn of btns) {\n                    btn.classList.remove(\"_active\");\n                }\n\n                this.classList.add(\"_active\");\n            }\n        );\n\n\n        BX.bind(window, 'resize', BX.proxy(this._resize, this));\n\n        BX.bindDelegate(this.popupContent.querySelector(\".lpost-pvz__list-search\"),\n            \"keyup\",\n            { tagName: \"input\" },\n            function (e) {\n\n                // delay ~ 1s dev?\n                let value = new RegExp(this.value, 'i');\n                _self.parent.createList(_self.parent.listPoints.filter(item => {\n                    if(item.address.search(value) >= 0)\n                    {\n                        return true;\n                    } else {\n                        if(item.metro && item.metro.search(value) >= 0)\n                        {\n                            return true;\n                        }\n                    }\n                }));\n\n            }\n        )\n    }\n\n}","export default class Balloon\n{\n    constructor(type, params)\n    {\n        this.type = type;\n        this.html = \"\";\n        this.params = params;\n    }\n\n    generate(){\n\n        switch (this.type) {\n            case \"pvz\": this.templatePvz(); break;\n            case \"zone\": this.templateZone(); break;\n            default: this.templateEmpty(); break;\n        }\n\n        return this;\n    }\n\n    templatePvz(){\n        this.html = `\n            <div class=\"lpost-pvz__map-balloon\">\n                <div class=\"map-balloon__address _bold\">${this.params.address}</div>\n                <div class=\"map-balloon__sum\">${BX.message(\"LPOST_DELIVERY_SOA_LABLE_DELIVERY_SUM\") + \"#SUM_FORMAT#\"}</div>\n                <div class=\"map-balloon__description\">#DESCRIPTION#</div>\n                <div class=\"map-balloon__time-work\">${BX.message(\"LPOST_DELIVERY_SOA_LABLE_TIME_WORK\") + \"#TIME_WORK#\"}</div>\n                <div class=\"map-balloon__has-fitting-room\">${this.params.has_fitting_room ? BX.message('LPOST_DELIVERY_SOA_HAS_FITTING_ROOM') : BX.message('LPOST_DELIVERY_SOA_NOT_HAS_FITTING_ROOM')}</div>\n                <div class=\"map-balloon__method-pay\">#METHOD_PAY#</div>\n                <div class=\"map-balloon__day-delivery\">${BX.message(\"LPOST_DELIVERY_SOA_LABLE_DELIVERY_DAY\") + \"#DELIVERY_DAY#\"}</div>\n                <div class=\"map-balloon__button\" \n                    data-id=\"${this.params.id}\" \n                    data-address=\"${this.params.address}\" \n                    data-price=\"#SUM#\"\n                    data-day=\"#DELIVERY_DAY#\"  \n                    data-coords=\"${this.params.coords || false}\">${this.params.buttonText}</div>\n            </div>\n        `;\n    }\n\n    templateZone(){\n\n        let additional_properties_html = '';\n\n        if (IS_SHOW_ADDITIONAL_PROPERTIES) {\n            additional_properties_html = `\n                <div class=\"map-balloon__additional-field\">\n                    <label class=\"map-balloon__additional-label\">\n                        Квартира:<input class=\"map-balloon__additional-input lpost-delivery-input-flat\" data-input-for=\"flat\" placeholder=\"Номер квартиры\" type=\"number\" step=\"1\" min=\"0\">\n                    </label>\n                </div>\n                <div class=\"map-balloon__additional-field\">\n                    <label class=\"map-balloon__additional-label\">\n                        Этаж:<input class=\"map-balloon__additional-input lpost-delivery-input-floor\" data-input-for=\"floor\" placeholder=\"Этаж\" type=\"number\" step=\"1\" min=\"0\">\n                    </label>\n                </div>\n                <div class=\"map-balloon__additional-field\">\n                    <label class=\"map-balloon__additional-label\">\n                        Подъезд:<input class=\"map-balloon__additional-input lpost-delivery-input-porch\" data-input-for=\"porch\" placeholder=\"Номер подъезда\" type=\"number\" step=\"1\" min=\"0\">\n                    </label>\n                </div>\n                <div class=\"map-balloon__additional-field\">\n                    <label class=\"map-balloon__additional-label\">\n                        Домофон:<input class=\"map-balloon__additional-input lpost-delivery-input-code\" data-input-for=\"code\" placeholder=\"Код домофона\" type=\"text\">\n                    </label>\n                </div>\n            `;\n        }\n\n        this.html = `        \n            <div class=\"lpost-pvz__map-balloon\">\n                <div class=\"map-balloon__address _bold\">${this.params.address}</div>\n                <div class=\"map-balloon__sum\">${BX.message(\"LPOST_DELIVERY_SOA_LABLE_DELIVERY_SUM\") + \"#SUM_FORMAT#\"}</div>\n                <div class=\"map-balloon__method-pay\">#METHOD_PAY#</div>\n                <div class=\"map-balloon__day-delivery\">${BX.message(\"LPOST_DELIVERY_SOA_LABLE_DELIVERY_DAY\") + \"#DELIVERY_DAY#\"}</div>\n                <div class=\"map-balloon__date-delivery\">#DATE_DELIVERY_SELECTOR#</div>\n                ${additional_properties_html}\n                <div class=\"map-balloon__button\" \n                    data-id=\"${this.params.id}\"\n                    data-address=\"${this.params.address}\" \n                    data-price=\"#SUM#\"\n                    data-day=\"#DELIVERY_DAY#\"\n                    data-date-day-delivery=\"#DATE_DAY_DELIVERY#\"\n                    data-date-time-delivery=\"#DATE_TIME_DELIVERY#\"\n                    data-coords=\"${this.params.coords || false}\">${this.params.buttonText}</div>\n            </div>\n        `;\n    }\n\n    templateEmpty(){\n        this.html = `\n        <div class=\"lpost-pvz__map-balloon\">\n            <div class=\"map-balloon__address\">${this.params.buttonText}</div>\n        </div>`;\n    }\n\n    getHtml(){\n        return this.html;\n    }\n\n};\n\n\n","export default class DateDeliverySelector\r\n{\r\n    constructor(dateList = [])\r\n    {\r\n        this._dateList = dateList;\r\n        this._html = ``;\r\n    }\r\n\r\n    getHtmlDaySelector()\r\n    {\r\n        let select = BX.create('select');\r\n        select.classList.add(\"lpost-delivery-day-selector\", \"input-date-day-delivery\");\r\n\r\n        this._dateList.forEach((e, i) => {\r\n            BX.selectUtils.addNewOption(select,  e.DateDelive, e.DateDelive);\r\n        })\r\n\r\n        return select.outerHTML;\r\n    }\r\n\r\n    getHtmlTimeSelector(valueList = [], indexId)\r\n    {\r\n\r\n        let select = BX.create('select');\r\n        select.classList.add(\"lpost-delivery-time-selector\", 'input-date-time-delivery');\r\n        select.dataset.id = indexId;\r\n\r\n        valueList.forEach((e, i) => {\r\n            BX.selectUtils.addNewOption(select, `${e.TimeFrom},${e.TimeTo}`, `${e.TimeFrom} - ${e.TimeTo}`);\r\n        })\r\n\r\n        return select.outerHTML;\r\n    }\r\n\r\n    getHtmlTimeSelectorList()\r\n    {\r\n        let selectHtmlList = '';\r\n\r\n        this._dateList.forEach((e,i) => {\r\n            selectHtmlList += this.getHtmlTimeSelector(e.Intervals, e.DateDelive);\r\n        })\r\n\r\n        return selectHtmlList;\r\n    }\r\n\r\n    getTimeDefaultValue()\r\n    {\r\n        return this._dateList[0][\"Intervals\"][0][\"TimeFrom\"] + \",\" + this._dateList[0][\"Intervals\"][0][\"TimeTo\"]\r\n    }\r\n\r\n    getDayDefaultValue()\r\n    {\r\n        return this._dateList[0][\"DateDelive\"];\r\n    }\r\n\r\n    generate()\r\n    {\r\n        this._html = `\r\n            <div class=\"lpost-delivery-date-selector\">\r\n                <div class=\"lpost-delivery-date-selector__row\">\r\n                    ${this.getHtmlDaySelector()}\r\n                </div>\r\n                <div class=\"lpost-delivery-date-selector__row\">\r\n                    ${this.getHtmlTimeSelectorList()}\r\n                </div>\r\n            </div>\r\n        `;\r\n\r\n        return this;\r\n    }\r\n\r\n    getHtml()\r\n    {\r\n        return this._html;\r\n    }\r\n\r\n}","import Formatting from \"./Formatting\";\r\nimport ViewManager from \"./ViewManager\";\r\nimport Balloon from \"./Balloon\";\r\nimport DateDeliverySelector from \"./DateDeliverySelector\";\r\n\r\nexport default class WidgetManager\r\n{\r\n    prevDeliveryActiveId = false;\r\n\r\n    constructor(options, orderManager)\r\n    {\r\n        this.orderManager = orderManager;\r\n        this.Formatting = new Formatting();\r\n        this.options = options;\r\n    }\r\n\r\n    init()\r\n    {\r\n        return new Promise((resolve, reject) => {\r\n            this.fetchHtml().then(html => {\r\n\r\n                document.querySelector(\"body\")\r\n                    .insertAdjacentHTML(\"beforeend\", html);\r\n\r\n                this.options.ajaxURL = \"/bitrix/components/lpost/delivery.widget/ajax.php\";\r\n                this.options.selectPoint = false;\r\n                this.popup = this.createPopup();\r\n                this.container = BX(\"bx-soa-delivery\");\r\n                this.popupContent = BX(\"lpost-pvz-popup\").querySelector(\".lpost-pvz\");\r\n                this.point_options = {\r\n                    iconLayout: 'default#image',\r\n                    iconImageHref: '/bitrix/themes/lpost.delivery/map-point.png',\r\n                    iconImageOffset: [-15, -42],\r\n                };\r\n\r\n                this.viewManager = new ViewManager(this, this.popupContent);\r\n\r\n                this.setSelectedDelivery();\r\n                this.clearOldAddress();\r\n\r\n                this.createMap();\r\n                this._event();\r\n\r\n                resolve(this);\r\n\r\n            })\r\n        })\r\n    }\r\n\r\n    fetchHtml()\r\n    {\r\n        return new Promise((resolve, reject) => {\r\n            BX.ajax({\r\n                url: '/bitrix/components/lpost/delivery.widget/ajax.php',\r\n                data: {\r\n                    action: \"show\"\r\n                },\r\n                method: \"POST\",\r\n                onsuccess: data => resolve(data)\r\n            });\r\n        })\r\n    }\r\n\r\n    createMap() {\r\n        if (typeof ymaps === \"undefined\") return false;\r\n\r\n        ymaps.ready(e => {\r\n\r\n            this.map = new ymaps.Map(\r\n                this.popupContent.querySelector(\".lpost-pvz__map\"),\r\n                {\r\n                    center: [55.757741, 37.624725],\r\n                    zoom: 10,\r\n                    controls: []\r\n                },\r\n                {\r\n                    suppressMapOpenBlock: true\r\n                }\r\n            );\r\n\r\n            this.objectManagerZone = new ymaps.ObjectManager({\r\n                clusterize: false,\r\n                clusterDisableClickZoom: false,\r\n                geoObjectOpenBalloonOnClick: true\r\n            });\r\n\r\n            this.objectManagerPvz = new ymaps.ObjectManager({\r\n                clusterize: false,\r\n                clusterDisableClickZoom: false,\r\n                geoObjectOpenBalloonOnClick: false\r\n            });\r\n            let popupContent = this.popupContent;\r\n            this.yandeSearch = new ymaps.SuggestView(\r\n                'search-location', {\r\n                    provider: {\r\n                        suggest: (function (request, options) {\r\n                            // Код, чтобы вернуть подсказки с тем городом, который указан в местоположении\r\n                            let cityName = popupContent.querySelector(\"#search-location\").placeholder;\r\n                            let array = [];\r\n                            return ymaps.suggest(cityName + \", \" + request).then(items => {\r\n                                items.forEach(item => {\r\n                                    if (item.displayName.indexOf(cityName) !== -1) {\r\n                                        array.push(item);\r\n                                    }\r\n                                });\r\n                                return ymaps.vow.resolve(array);\r\n                            });\r\n                        })\r\n                    }\r\n                }\r\n            );\r\n        })\r\n    }\r\n\r\n    getNumberZone (coords) {\r\n        for (let polygon of this.polygons) {\r\n            if (polygon.geometry.contains(coords)) {\r\n                return {\r\n                    zoneNumber: polygon.properties.get(\"zoneNumber\"),\r\n                    idPickup: polygon.properties.get(\"idPickup\"),\r\n                    params: polygon.properties.get(\"params\")\r\n                };\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    getCityID () {\r\n        return this.orderManager.getLocationId();\r\n    }\r\n\r\n    setSelectedDelivery()\r\n    {\r\n        if(!this.orderManager) {\r\n            return false;\r\n        }\r\n\r\n        this.selectedDelivery = this.orderManager.getSelectedDeliveryProfile()\r\n\r\n        if(!this.selectedDelivery) {\r\n            return false;\r\n        }\r\n\r\n        this.showDeliveryButtonLpost(this.selectedDelivery.ID);\r\n\r\n    }\r\n\r\n    showDeliveryButtonLpost(deliveryId)\r\n    {\r\n        let deliveryList = this.popupContent.querySelectorAll(\".lpost-pvz__ctrl-item._button\");\r\n\r\n        for (let deliveryItem of deliveryList) {\r\n\r\n            deliveryItem.classList.remove(\"_active\");\r\n\r\n            if (deliveryItem.dataset.id == deliveryId) {\r\n                deliveryItem.classList.add(\"_active\");\r\n            }\r\n        }\r\n    }\r\n\r\n    createListPvz (cityID) {\r\n\r\n        let _self = this;\r\n        new Promise(function (resolve, reject) {\r\n            let json = _self._request({\r\n                fields: {\r\n                    cityID: cityID,\r\n                    action: \"pvz\"\r\n                },\r\n                async: false,\r\n                type: \"html\"\r\n            });\r\n            resolve(JSON.parse(json));\r\n        }).then(function (data) {\r\n\r\n            _self.removeZone();\r\n            _self.setRegionBlock(data.city.name);\r\n            _self.listPoints = data['pvz_list'];\r\n            _self.createList(_self.listPoints);\r\n            _self.viewManager.switch(\"pvz\");\r\n\r\n            if (_self.map) {\r\n                _self.createPointsPvz(_self.listPoints);\r\n                _self.map.setCenter([data.city.lat, data.city.long], 12);\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    createListZone (cityID) {\r\n        let _self = this;\r\n        new Promise(function (resolve, reject) {\r\n            let json = _self._request({\r\n                fields: {\r\n                    cityID: cityID,\r\n                    action: \"zone\"\r\n                },\r\n                async: false,\r\n                type: \"html\"\r\n            });\r\n            resolve(JSON.parse(json));\r\n        }).then(function (data) {\r\n            _self.removePointsPvz();\r\n            _self.removePointsZone();\r\n            _self.setRegionBlock(data.city.name);\r\n            _self.removeZone();\r\n            _self.createZone(data.zone, data['id_pickup'], {\r\n                isCard: data['is_card'],\r\n                isCash: data['is_cash'],\r\n                deliverySpeed: data['params'] ? data['params']['deliverySpeed'] : {},\r\n            });\r\n\r\n            _self.viewManager.switch(\"zone\");\r\n\r\n            _self.getDefaultCoords(data.city).then(function (data) {\r\n\r\n                _self.map.setCenter(data.cityCoords, 12);\r\n\r\n                if (data.geocode && data.geoObject) {\r\n                    let coords = data.geoObject.geometry.getCoordinates();\r\n\r\n                    let dataZone = _self.getNumberZone(coords);\r\n                    if(dataZone){\r\n                        _self.createPoint(coords, {\r\n                            address: data.geoObject.getAddressLine(),\r\n                            zoneNumber: dataZone['zoneNumber'],\r\n                            idPickup: dataZone['idPickup'],\r\n                            premiseNumber: dataZone ? data.geoObject.getPremiseNumber() : \"\",\r\n                            params: dataZone.params\r\n                        }, false);\r\n                    }\r\n                }\r\n\r\n            });\r\n        });\r\n    }\r\n\r\n    getDefaultCoords (city) {\r\n        return new Promise(BX.proxy(function (resolve, reject) {\r\n\r\n            if (this.options.address) {\r\n                ymaps.geocode(this.options.address).then(function (res) {\r\n                    resolve({\r\n                        geocode: true,\r\n                        geoObject: res.geoObjects.get(0),\r\n                        cityCoords: [city.lat, city.long]\r\n                    });\r\n                });\r\n            } else {\r\n                resolve({\r\n                    geocode: false,\r\n                    cityCoords: [city.lat, city.long]\r\n                });\r\n            }\r\n        }, this));\r\n\r\n    }\r\n\r\n    createZone (zones, idPickup, data = false) {\r\n        if (!zones) return false;\r\n        this.polygons = [];\r\n\r\n        zones = zones.filter( a => typeof a.ZoneNumber == 'undefined');\r\n\r\n\r\n        for (let zone of zones.reverse()) {\r\n\r\n            let dataPolygon = JSON.parse(\"{\" + zone.WKT + \"}\");\r\n\r\n\r\n            let arPolygonCoordinates = [];\r\n\r\n            for (let arItem of dataPolygon.Coordinates){\r\n                let arItemReverse = [];\r\n                for(let key in arItem){\r\n                    arItemReverse[key] = arItem[key].reverse();\r\n                }\r\n                if(this.isMultiPolygon(arItemReverse)){\r\n                    arPolygonCoordinates = arPolygonCoordinates.concat(this.createArPolygonFromMultiPolygon(arItemReverse));\r\n                }else{\r\n                    arPolygonCoordinates.push(arItemReverse);\r\n                }\r\n            }\r\n\r\n            for(let polygon of arPolygonCoordinates){\r\n                let ymapsPolygon = new ymaps.Polygon([polygon],\r\n                    {\r\n                        zoneNumber: 1,\r\n                        idPickup: idPickup,\r\n                        params: data\r\n                    }, {\r\n                        fillColor: \"#6699ff\",\r\n                        interactivityModel: 'default#transparent',\r\n                        opacity: 0.3,\r\n                        zIndex: 100,\r\n                        zIndexHover: 100,\r\n                        interactiveZIndex: 1,\r\n                    })\r\n\r\n                this.polygons.push(ymapsPolygon);\r\n                this.map.geoObjects.add(ymapsPolygon);\r\n            }\r\n\r\n        }\r\n    }\r\n\r\n    removeZone () {\r\n        if (this.map && this.map.geoObjects) {\r\n            this.map.geoObjects.removeAll();\r\n        }\r\n    }\r\n\r\n    removePointsPvz (type) {\r\n        if (this.objectManagerPvz) {\r\n            this.objectManagerPvz.removeAll();\r\n        }\r\n    }\r\n\r\n    removePointsZone() {\r\n        if (this.objectManagerZone) {\r\n            return  this.objectManagerZone.removeAll();\r\n        }\r\n    }\r\n\r\n    createPointsPvz(data) {\r\n\r\n        if (!this.map) return false;\r\n\r\n        this.removePointsPvz();\r\n\r\n        let features = [];\r\n\r\n        for (let item of data) {\r\n            if (!item['coord_lat'] || !item['coord_long']) {\r\n                continue;\r\n            }\r\n\r\n            if (item.params) {\r\n                if (item.params.deliverySpeed) {\r\n                    item.params.deliverySpeed.selected = \"slow\";\r\n                }\r\n            } else {\r\n                item.params = {};\r\n            }\r\n\r\n            item.params.isCard = item.is_card;\r\n            item.params.isCash = item.is_cash;\r\n\r\n            features.push({\r\n                id: item.id_pickup,\r\n                type: 'Feature',\r\n                params: item.params,\r\n                description: item.pickup_dop,\r\n                timeWork: item.time_work,\r\n                geometry: {\r\n                    type: 'Point',\r\n                    coordinates: [item['coord_lat'], item['coord_long']],\r\n                    radius: 100\r\n                },\r\n                properties: {\r\n                    balloonContent: new Balloon(\"pvz\", {\r\n                        address: item.address,\r\n                        has_fitting_room: (item.has_fitting_room === 'Y'),\r\n                        id: item.id_pickup,\r\n                        buttonText: BX.message(\"LPOST_DELIVERY_SOA_MAP_BUTTON_CHOICE\")\r\n                    }).generate().getHtml()\r\n                },\r\n                options: this.point_options,\r\n            })\r\n        }\r\n\r\n        let collection = {\r\n            type: 'FeatureCollection',\r\n            features: features\r\n        };\r\n\r\n        this.objectManagerPvz.add(collection);\r\n        this.map.geoObjects.add(this.objectManagerPvz);\r\n\r\n    }\r\n\r\n    createPointPvz(item, deliverySpeed = \"slow\") {\r\n\r\n        let id = (deliverySpeed === \"fast\") ?\r\n            item.params.deliverySpeed.fast :\r\n            item.params.deliverySpeed.slow;\r\n\r\n        item.params.isCard = item.is_card;\r\n        item.params.isCash = item.is_cash;\r\n\r\n        let object = {\r\n            id: id,\r\n            type: 'Feature',\r\n            params: item.params,\r\n            description: item.pickup_dop,\r\n            timeWork: item.time_work,\r\n            geometry: {\r\n                type: 'Point',\r\n                coordinates: [item['coord_lat'], item['coord_long']],\r\n                radius: 100\r\n            },\r\n            properties: {\r\n                balloonContent: new Balloon(\"pvz\", {\r\n                    address: item.address,\r\n                    has_fitting_room: (item.has_fitting_room === 'Y'),\r\n                    id: id,\r\n                    buttonText: BX.message(\"LPOST_DELIVERY_SOA_MAP_BUTTON_CHOICE\")\r\n                }).generate().getHtml()\r\n            },\r\n            options: this.point_options,\r\n        };\r\n\r\n        this.objectManagerPvz.add(object);\r\n\r\n    }\r\n\r\n    getDataPoint(id) {\r\n        for (let item of this.listPoints) {\r\n            if (item.params && item.params.deliverySpeed) {\r\n                if (item.params.deliverySpeed.fast === id) {\r\n                    return item\r\n                } else if (item.params.deliverySpeed.slow === id) {\r\n                    return item;\r\n                }\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    renderPointPvz(objectId, open = false)\r\n    {\r\n        let geoObject = this.objectManagerPvz.objects.getById(objectId);\r\n\r\n        if (geoObject) {\r\n\r\n            this.setSumDeliveryPoint(geoObject, objectId)\r\n                .then(() => {\r\n                    if (open) {\r\n                        this.objectManagerPvz.objects.balloon.open(objectId);\r\n                    }\r\n                })\r\n        }\r\n    }\r\n\r\n    createList(data) {\r\n\r\n        let containerList = this.popupContent.querySelector(\".lpost-pvz__list-wrapper\");\r\n        BX.cleanNode(containerList);\r\n\r\n        for(let item of data)\r\n        {\r\n            let content = BX.create({\r\n                tag: \"div\",\r\n                attrs: {\r\n                    className: \"list-item_content\",\r\n                },\r\n                children: [\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        text: this.Formatting.timeWork(\r\n                            JSON.parse(item.time_work), item.day_logistic\r\n                        )\r\n                    }),\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        text: item.pickup_dop\r\n                    }),\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        attrs: {\r\n                            className: \"lpost-pvz-list_button\",\r\n                        },\r\n                        dataset: {\r\n                            id: item.id_pickup,\r\n                            address: item.address,\r\n                            coords: item.coord_lat + \",\" + item.coord_long\r\n                        },\r\n                        text: BX.message(\"LPOST_DELIVERY_SOA_MAP_BUTTON_CHOICE_PICK_UP\")\r\n                    })\r\n                ]\r\n            });\r\n\r\n            let title = BX.create({\r\n                tag: \"div\",\r\n                attrs: {\r\n                    className: \"lpost-pvz-list_title\",\r\n                },\r\n                text: item.address,\r\n                children: [\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        attrs: {\r\n                            className: \"title_item _metro\"\r\n                        },\r\n                        text: item.metro\r\n                    }),\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        attrs: {\r\n                            className: \"title_item _address\"\r\n                        },\r\n                        text: item.address\r\n                    }),\r\n                    BX.create({\r\n                        tag: \"div\",\r\n                        attrs: {\r\n                            className: \"title_item _payment\"\r\n                        },\r\n                        html: this.Formatting.paymentMethod(item.is_card, item.is_cash)\r\n                    }),\r\n                ]\r\n            }) ;\r\n\r\n            let elem = BX.create(\"div\", {\r\n                attrs: {\r\n                    className: \"lpost-pvz__item\",\r\n                },\r\n                children: [title, content]\r\n            });\r\n            containerList.append(elem);\r\n        }\r\n\r\n    }\r\n\r\n    setRegionBlock(name) {\r\n        this.popupContent.querySelector(\".lpost-pvz__ctrl-item._location span:last-child\")\r\n            .innerHTML = name;\r\n        this.popupContent.querySelector(\"#search-location\")\r\n            .placeholder = name;\r\n    }\r\n\r\n    getProfileActive() {\r\n        let selectedDeliveryID = this.selectedDelivery?.ID;\r\n\r\n        if(!selectedDeliveryID) {\r\n            return false;\r\n        }\r\n\r\n        return this.getDeliveryProfileById(selectedDeliveryID);\r\n    }\r\n\r\n    getProfileActiveId()\r\n    {\r\n        let profile = this.getProfileActive();\r\n        return profile[\"ID\"] ?? false;\r\n    }\r\n\r\n    isLpostProfile() {\r\n        let profileActive = this.orderManager.getSelectedDeliveryProfile();\r\n\r\n        if(!profileActive) {\r\n            return false;\r\n        }\r\n\r\n        for (let profile of this.orderManager.options.profiles) {\r\n            if (profile.ID === profileActive.ID) {\r\n                return true;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    getDeliveryProfileById(id) {\r\n        for (let profile of this.orderManager.options.profiles) {\r\n            if (profile.ID == id) {\r\n                return profile;\r\n            }\r\n        }\r\n        return false;\r\n    }\r\n\r\n    isActiveDeliverySpeedBlock() {\r\n        if (this.deliverySpeedContainer) {\r\n            return this.deliverySpeedContainer.classList.contains(\"_active\");\r\n        }\r\n        return false;\r\n\r\n    }\r\n\r\n    updateDeliveryProfileActive() {\r\n        let deliveryList = this.popupContent.querySelectorAll(\".lpost-pvz__ctrl-item._button\");\r\n        for (let deliveryItem of deliveryList) {\r\n            if (!BX(\"ID_DELIVERY_ID_\" + deliveryItem.dataset.id)) {\r\n                deliveryItem.classList.add(\"_disabled\");\r\n// deliveryItem.remove();\r\n            } else {\r\n                deliveryItem.classList.remove(\"_disabled\");\r\n            }\r\n        }\r\n    }\r\n\r\n    getActiveProfileType() {\r\n        let activeProfile = this.getProfileActive();\r\n        if (activeProfile && this.isProfileZone(activeProfile)) {\r\n            return \"zone\";\r\n        } else {\r\n            return \"pvz\";\r\n        }\r\n    }\r\n\r\n    isProfileZone(profile) {\r\n        return profile.CLASS_NAME.indexOf(\"Zone\") >= 0\r\n    }\r\n\r\n    createPopup() {\r\n\r\n        let popup = new BX.PopupWindow(\"lpost-pvz-popup\", null, {\r\n            content: document.querySelector('.lpost-pvz'),\r\n            bindOnResize: false,\r\n            zIndex: 0,\r\n            autoHide: true,\r\n            offsetTop: 1,\r\n            offsetLeft: 0,\r\n            resizable: true,\r\n            className: '',\r\n            lightShadow: true,\r\n            closeIcon: \"x\",\r\n            closeByEsc: true,\r\n            params: {},\r\n            overlay: {\r\n                backgroundColor: \"#000\",\r\n                opacity: 80\r\n            },\r\n            events: {\r\n                onAfterPopupShow: function (e) {\r\n                },\r\n                onPopupDestroy: function (e) {\r\n                },\r\n                onPopupShow: function (e) {\r\n                }\r\n            }\r\n        });\r\n        popup.setAnimation(\"scale\");\r\n        return popup;\r\n\r\n    }\r\n\r\n    selectPoint(event) {\r\n\r\n        let profileActive = this.getProfileActive();\r\n        \r\n        let fullAddress = event.target.dataset.address;\r\n\r\n        if (this.isProfileZone(profileActive)) {\r\n            \r\n            if(this.options.store_full_address == '1'){\r\n            \r\n                if(event.target.dataset.porch)\r\n                    fullAddress += `, ${BX.message(\"LPOST_DELIVERY_SOA_PORCH\")} ${event.target.dataset.porch}`;\r\n                if(event.target.dataset.floor)\r\n                    fullAddress += `, ${BX.message(\"LPOST_DELIVERY_SOA_FLOOR\")} ${event.target.dataset.floor}`;\r\n                if(event.target.dataset.flat)\r\n                    fullAddress += `, ${BX.message(\"LPOST_DELIVERY_SOA_FLAT\")} ${event.target.dataset.flat}`;\r\n                if(event.target.dataset.code)\r\n                    fullAddress += `, ${BX.message(\"LPOST_DELIVERY_SOA_CODE\")} ${event.target.dataset.code}`;\r\n            }\r\n\r\n            if(document.querySelector(\"input[name=LPOST_ZONE_NUMBER_ID]\")) {\r\n                document.querySelector(\"input[name=LPOST_ZONE_NUMBER_ID]\").value = event.target.dataset.id;\r\n            }\r\n\r\n            if(document.querySelector(\"input[name=LPOST_ZONE_ADDRESS]\")) {\r\n                document.querySelector(\"input[name=LPOST_ZONE_ADDRESS]\").value = fullAddress;\r\n            }\r\n\r\n            if(document.querySelector(\"input[name=LPOST_ZONE_PRICE]\")) {\r\n                document.querySelector(\"input[name=LPOST_ZONE_PRICE]\").value = event.target.dataset.price;\r\n            }\r\n\r\n            if(document.querySelector(\"input[name=LPOST_ZONE_COORDS]\")) {\r\n                document.querySelector(\"input[name=LPOST_ZONE_COORDS]\").value = event.target.dataset.coords;\r\n            }\r\n\r\n            if(document.querySelector(\"input[name=LPOST_ZONE_DAY]\")) {\r\n                document.querySelector(\"input[name=LPOST_ZONE_DAY]\").value = event.target.dataset.day;\r\n            }\r\n\r\n            if (IS_SHOW_ADDITIONAL_PROPERTIES) {\r\n                let flat = event.target.dataset.flat,\r\n                    floor = event.target.dataset.floor,\r\n                    porch = event.target.dataset.porch,\r\n                    code = event.target.dataset.code;\r\n\r\n                if (typeof flat !== 'undefined') {\r\n                    if (document.querySelector(\"input[name=LPOST_ZONE_FLAT]\")) {\r\n                        document.querySelector(\"input[name=LPOST_ZONE_FLAT]\").value = flat;\r\n                    }\r\n                    this.orderManager.renderAdditionalField(flat, ADDITIONAL_PROPERTY_OPTION_CODES['FLAT']);\r\n                }\r\n\r\n                if (typeof floor !== 'undefined') {\r\n                    if (document.querySelector(\"input[name=LPOST_ZONE_FLOOR]\")) {\r\n                        document.querySelector(\"input[name=LPOST_ZONE_FLOOR]\").value = floor;\r\n                    }\r\n                    this.orderManager.renderAdditionalField(floor, ADDITIONAL_PROPERTY_OPTION_CODES['FLOOR']);\r\n                }\r\n\r\n                if (typeof porch !== 'undefined') {\r\n                    if (document.querySelector(\"input[name=LPOST_ZONE_PORCH]\")) {\r\n                        document.querySelector(\"input[name=LPOST_ZONE_PORCH]\").value = porch;\r\n                    }\r\n                    this.orderManager.renderAdditionalField(porch, ADDITIONAL_PROPERTY_OPTION_CODES['PORCH']);\r\n                }\r\n\r\n                if (typeof code !== 'undefined') {\r\n                    if (document.querySelector(\"input[name=LPOST_ZONE_CODE]\")) {\r\n                        document.querySelector(\"input[name=LPOST_ZONE_CODE]\").value = code;\r\n                    }\r\n                    this.orderManager.renderAdditionalField(code, ADDITIONAL_PROPERTY_OPTION_CODES['CODE']);\r\n                }\r\n            }\r\n\r\n            if(event.target.dataset.dateDayDelivery){\r\n                document.querySelector(\"input[name=LPOST_ZONE_DATE_DAY_DELIVERY]\")\r\n                    .value = event.target.dataset.dateDayDelivery\r\n            }\r\n\r\n            if(event.target.dataset.dateTimeDelivery){\r\n                document.querySelector(\"input[name=LPOST_ZONE_DATE_TIME_DELIVERY]\")\r\n                    .value = event.target.dataset.dateTimeDelivery\r\n            }\r\n\r\n        }\r\n        else {\r\n\r\n            if (this.isActiveDeliverySpeedBlock()) {\r\n                document.querySelector(\"input[name=LPOST_PVZ_ID]\").value = this.getActiveDeliverySpeedId();\r\n            } else {\r\n                document.querySelector(\"input[name=LPOST_PVZ_ID]\").value = event.target.dataset.id;\r\n            }\r\n\r\n            document.querySelector(\"input[name=LPOST_PVZ_PRICE]\").value = event.target.dataset.price;\r\n            document.querySelector(\"input[name=LPOST_PVZ_ADDRESS]\").value = event.target.dataset.address;\r\n            document.querySelector(\"input[name=LPOST_PVZ_DAY]\").value = event.target.dataset.day;\r\n\r\n        }\r\n\r\n        this.options.selectPoint = event.target.dataset.id;\r\n        this.popup.close();\r\n        \r\n\r\n        this.orderManager.renderAddress(fullAddress);\r\n        this.orderManager.renderPrice(event.target.dataset.price);\r\n        \r\n\r\n        this.orderManager.refresh();\r\n    }\r\n\r\n    getSumCalcDelivery(coords, pickupID)\r\n    {\r\n        return new Promise((resolve, reject) => {\r\n            BX.ajax.runAction(\"lpost:delivery.api.DeliveryCalculate.getCalcForWidget\", {\r\n                data: {\r\n                    pickupId: pickupID,\r\n                    coords: coords,\r\n                    profileId: this.getProfileActive().ID,\r\n                    profileType: this.getActiveProfileType()\r\n                }\r\n            })\r\n            .then(response => {\r\n                resolve(response.data);\r\n            })\r\n        })\r\n    }\r\n\r\n    setSumDeliveryPoint(geoObject, idPickup) {\r\n        return new Promise((resolve, reject) => {\r\n            if (geoObject.properties.balloonContent.indexOf(\"#\") >= 0) {\r\n\r\n                this.getSumCalcDelivery(geoObject.geometry.coordinates, idPickup)\r\n                    .then(data => {\r\n\r\n                        if (!data) {\r\n                            reject(\"data empty\");\r\n                        }\r\n\r\n                        geoObject.properties.balloonContent = geoObject.properties.balloonContent\r\n                            .replace(\"#SUM_FORMAT#\", data.sumFormat ? data.sumFormat : 0);\r\n                        geoObject.properties.balloonContent = geoObject.properties.balloonContent\r\n                            .replace(\"#SUM#\", data.sum ? data.sum : 0);\r\n                        geoObject.properties.balloonContent = geoObject.properties.balloonContent\r\n                            .replace(/#DELIVERY_DAY#/g, data.day);\r\n                        geoObject.properties.balloonContent = geoObject.properties.balloonContent\r\n                            .replace(\"#DESCRIPTION#\",\r\n                                geoObject.description ? geoObject.description : \"\"\r\n                            );\r\n\r\n                        if (geoObject.params.isCard || geoObject.params.isCash) {\r\n                            geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                \"#METHOD_PAY#\", this.Formatting.paymentMethod(geoObject.params.isCard, geoObject.params.isCash)\r\n                            );\r\n                        }\r\n\r\n                        if (geoObject.timeWork) {\r\n                            geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                \"#TIME_WORK#\", this.Formatting.timeWork(\r\n                                    JSON.parse(geoObject.timeWork), data.day\r\n                                )\r\n                            );\r\n                        }\r\n\r\n                        if (IS_SHOW_COURIER_DATES) {\r\n\r\n                            if(data.dateDelivery.length > 0) {\r\n                                let dateDeliverySelector = new DateDeliverySelector(data.dateDelivery);\r\n\r\n                                geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                    \"#DATE_DELIVERY_SELECTOR#\", dateDeliverySelector.generate().getHtml()\r\n                                );\r\n\r\n                                geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                    \"#DATE_DAY_DELIVERY#\", dateDeliverySelector.getDayDefaultValue()\r\n                                );\r\n\r\n                                geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                    \"#DATE_TIME_DELIVERY#\", dateDeliverySelector.getTimeDefaultValue()\r\n                                );\r\n                            }\r\n\r\n                        } else {\r\n                            geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                '#DATE_DAY_DELIVERY#',\r\n                                ''\r\n                            );\r\n                            geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                '#DATE_TIME_DELIVERY#',\r\n                                ''\r\n                            );\r\n                            geoObject.properties.balloonContent = geoObject.properties.balloonContent.replace(\r\n                                '#DATE_DELIVERY_SELECTOR#',\r\n                                ''\r\n                            );\r\n                        }\r\n\r\n                        resolve({\r\n                            sum: data.sum,\r\n                            day: data.day\r\n                        });\r\n                    })\r\n\r\n            } else {\r\n                resolve(true);\r\n            }\r\n        })\r\n    }\r\n\r\n    _request(data = false) {\r\n        let result;\r\n        BX.ajax({\r\n            url: this.options.ajaxURL,\r\n            method: \"POST\",\r\n            data: data.fields,\r\n            dataType: data.type || \"html\",\r\n            async: data.async,\r\n            onsuccess: function (response) {\r\n                result = response;\r\n            }\r\n        });\r\n        return result;\r\n    }\r\n\r\n    removeDeliverySpeedContainer() {\r\n        if (this.isActiveDeliverySpeedBlock()) {\r\n            this.deliverySpeedContainer.classList.remove(\"_active\");\r\n            this.deliverySpeedContainer.querySelector(\"#delivery-type-slow\").checked = true;\r\n        }\r\n    }\r\n\r\n    createDeliverySpeedContainer(objectId) {\r\n\r\n        this.removeDeliverySpeedContainer();\r\n\r\n        let objectManager = (this.isProfileZone(this.getProfileActive())) ?\r\n            this.objectManagerZone : this.objectManagerPvz;\r\n        let geoObject = objectManager.objects.getById(objectId);\r\n\r\n        if (geoObject && geoObject.params && geoObject.params.deliverySpeed) {\r\n            if (geoObject.params.deliverySpeed.fast && geoObject.params.deliverySpeed.slow) {\r\n                let objectFastId = geoObject.params.deliverySpeed.fast;\r\n                let objectSlowId = geoObject.params.deliverySpeed.slow;\r\n\r\n                this.deliverySpeedContainer = this.popupContent.querySelector(\".lpost-pvz__ctrl-item._delivery-type\");\r\n                this.deliverySpeedContainer.classList.add(\"_active\");\r\n                this.deliverySpeedContainer.querySelector(\"#delivery-type-slow\").dataset.idPickup = objectSlowId;\r\n                this.deliverySpeedContainer.querySelector(\"#delivery-type-fast\").dataset.idPickup = objectFastId;\r\n\r\n                if (geoObject.params.deliverySpeed.selected === \"fast\") {\r\n                    this.deliverySpeedContainer.querySelector(\"#delivery-type-fast\").checked = true;\r\n                } else {\r\n                    this.deliverySpeedContainer.querySelector(\"#delivery-type-slow\").checked = true;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    getDeliverySpeed() {\r\n        return this.deliverySpeedContainer.querySelector(\".delivery-type__group input:checked\").value;\r\n    }\r\n\r\n    getActiveDeliverySpeedId() {\r\n        return this.deliverySpeedContainer.querySelector(\".delivery-type__group input:checked\").dataset.idPickup;\r\n    }\r\n\r\n    reCreatePointZone(newPickupID = false) {\r\n        let object = this.objectManagerZone.objects.balloon.getData();\r\n        let dataZone = this.getNumberZone(object.geometry.coordinates);\r\n\r\n        this.createPoint(\r\n            object.geometry.coordinates,\r\n            {\r\n                address: object.geometry.address,\r\n                premiseNumber: object.geometry.premiseNumber,\r\n                zoneNumber: dataZone['zoneNumber'],\r\n                idPickup: newPickupID || dataZone['idPickup'],\r\n                params: object.params\r\n            },\r\n            true\r\n        );\r\n    }\r\n\r\n    createPoint(coords, content = {}, balloonOpen = true) {\r\n        let properties = {};\r\n        let propertiesType = \"zone\";\r\n\r\n        if (content.premiseNumber && content.idPickup) {\r\n            properties = {\r\n                address: content.address,\r\n                id: content.idPickup,\r\n                coords: coords,\r\n                buttonText: BX.message(\"LPOST_DELIVERY_SOA_MAP_BUTTON_CHOICE_ZONE\")\r\n            };\r\n        } else {\r\n\r\n            if(Number.isInteger(content.zoneNumber))\r\n            {\r\n                properties = {\r\n                    buttonText: BX.message(\"LPOST_DELIVERY_SOA_MAP_ADDRESS_EMPTY\").replace(\"#ADDRESS#\", content.address)\r\n                };\r\n            }\r\n            else {\r\n                properties = {\r\n                    buttonText: BX.message(\"LPOST_DELIVERY_SOA_MAP_ADDRESS_OUTSIDE\").replace(\"#ADDRESS#\", content.address)\r\n                };\r\n            }\r\n            propertiesType = \"notDelivery\";\r\n\r\n        }\r\n\r\n        this.objectManagerZone.add({\r\n            type: 'FeatureCollection',\r\n            features: [{\r\n                id: content.idPickup,\r\n                type: 'Feature',\r\n                params: content.params,\r\n                geometry: {\r\n                    type: 'Point',\r\n                    coordinates: coords,\r\n                    radius: 100,\r\n                    address: content.address,\r\n                    premiseNumber: content.premiseNumber\r\n                },\r\n                properties: {\r\n                    balloonContent: new Balloon(\r\n                        propertiesType,\r\n                        properties\r\n                    ).generate().getHtml()\r\n                },\r\n                options: this.point_options,\r\n            }]\r\n        });\r\n\r\n        this.map.geoObjects.add(this.objectManagerZone);\r\n        let geoObject = this.objectManagerZone.objects.getById(content.idPickup);\r\n\r\n        if (content.premiseNumber) {\r\n            this.setSumDeliveryPoint(geoObject, content.idPickup)\r\n                .then(BX.proxy(function (data) {\r\n                    if (balloonOpen) {\r\n                        setTimeout(BX.proxy(function () {\r\n                            if (balloonOpen) {\r\n                                this.objectManagerZone.objects.balloon.open(content.idPickup)\r\n                                    .then(resolve => {\r\n                                        this.renderingInformationFromTheBallon();\r\n                                        let map_balloon = BX(\"lpost-pvz-popup\").querySelector('.lpost-pvz__map-balloon');\r\n                                        let input_day = map_balloon.querySelector('.input-date-day-delivery'),\r\n                                            input_time = map_balloon.querySelector('.input-date-time-delivery');\r\n                                        BX.fireEvent(input_day, 'change');\r\n                                        BX.fireEvent(input_time, 'change');\r\n                                    });\r\n                                this.createDeliverySpeedContainer(content.idPickup);\r\n                            }\r\n                        }, this), 5);\r\n\r\n                        let search_input = BX(\"lpost-pvz-popup\").querySelector('#search-location');\r\n\r\n                        if (!properties.address) {\r\n                            search_input.value = '';\r\n                        } else if (search_input.value.trim() !== properties.address) {\r\n                            search_input.value = properties.address\r\n                        }\r\n                    }\r\n                }, this));\r\n        } else {\r\n            if (balloonOpen) {\r\n                this.objectManagerZone.objects.balloon.open(content.idPickup).then(this.renderingInformationFromTheBallon);\r\n                BX(\"lpost-pvz-popup\").querySelector('#search-location').value = '';\r\n            }\r\n        }\r\n    }\r\n\r\n    renderingInformationFromTheBallon() {\r\n        BX(\"lpost-pvz-popup\").querySelector('.lpost-pvz__view div.lpost-courier__form div.lpost-courier__form-info')\r\n            .innerHTML = BX(\"lpost-pvz-popup\").querySelector('.lpost-pvz__map-balloon').innerHTML;\r\n    }\r\n\r\n    clearOldAddress()\r\n    {\r\n        if(this.isLpostProfile() && this.prevDeliveryActiveId != this.getProfileActiveId()) {\r\n            this.orderManager.renderAddress(\"\");\r\n        }\r\n\r\n        this.prevDeliveryActiveId = this.getProfileActiveId();\r\n    }\r\n\r\n    _event()\r\n    {\r\n        let _self = this;\r\n\r\n        if (typeof ymaps !== \"undefined\") {\r\n\r\n            ymaps.ready(BX.proxy(function () {\r\n                this.map.events.add('click', BX.proxy(function (e) {\r\n\r\n                    let objectId = e.get('objectId');\r\n                    let profileActive = this.getProfileActive();\r\n\r\n                    if (!objectId && this.isProfileZone(profileActive)) {\r\n\r\n                        _self.removeDeliverySpeedContainer();\r\n                        _self.removePointsZone();\r\n\r\n                        let coords = e.get('coords');\r\n\r\n                        ymaps.geocode(coords).then(function (res) {\r\n\r\n                            let newObject = res.geoObjects.get(0);\r\n                            let dataZone = _self.getNumberZone(coords);\r\n                            if (dataZone && dataZone['params']['deliverySpeed']['selected']) {\r\n                                dataZone['params']['deliverySpeed']['selected'] = \"slow\";\r\n                            }\r\n\r\n                            _self.createPoint(coords, {\r\n                                address: newObject.getAddressLine(),\r\n                                zoneNumber: dataZone['zoneNumber'],\r\n                                idPickup: dataZone['idPickup'],\r\n                                params: dataZone.params,\r\n                                premiseNumber: newObject.getPremiseNumber(),\r\n                            });\r\n                        });\r\n                    }\r\n                }, this));\r\n\r\n                this.objectManagerZone.events.add(\"click\", BX.proxy(function (e) {\r\n                    // event click point zone\r\n                }, this));\r\n\r\n                this.objectManagerPvz.objects.events.add(\"click\", e => {\r\n                    let objectId = e.get('objectId');\r\n                    this.renderPointPvz(objectId, true);\r\n                    this.createDeliverySpeedContainer(objectId);\r\n                });\r\n\r\n                this.yandeSearch.events.add('select', BX.proxy(function (e) {\r\n                    ymaps.geocode(e.get('item').value, {results: 1})\r\n                        .then(BX.proxy(function (res) {\r\n\r\n                            let geoObject = res.geoObjects.get(0);\r\n                            let coords = geoObject.geometry.getCoordinates();\r\n                            let dataZone = this.getNumberZone(coords);\r\n                            this.removePointsZone();\r\n\r\n                            this.createPoint(coords, {\r\n                                address: geoObject.getAddressLine(),\r\n                                zoneNumber: dataZone['zoneNumber'],\r\n                                idPickup: dataZone['idPickup'],\r\n                                premiseNumber: geoObject.getPremiseNumber(),\r\n                                params: dataZone.params\r\n                            });\r\n\r\n\r\n                        }, this));\r\n                }, this), this);\r\n            }, this));\r\n        }\r\n\r\n        BX.bindDelegate(this.popupContent, \"click\",\r\n            {className: \"map-balloon__button\"},\r\n            e => this.selectPoint(e)\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, \"click\",\r\n            {className: \"lpost-courier__form-btn-for-map\"},\r\n            function () {\r\n                _self.viewManager.switch(\"zone_with_map\")\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, \"click\",\r\n            {className: \"lpost-pvz__return\"},\r\n            function () {\r\n                _self.viewManager.switch(\"zone\")\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, \"click\",\r\n            {className: \"lpost-pvz-list_button\"},\r\n            BX.proxy(function (e) {\r\n\r\n                let coords = e.target.dataset.coords;\r\n                let pickupID = e.target.dataset.id;\r\n\r\n                this.getSumCalcDelivery(coords, pickupID).then(BX.proxy(function (data) {\r\n                    e.target.dataset.price = data.sum;\r\n                    e.target.dataset.day = data.day;\r\n                    this.selectPoint(e);\r\n                }, this));\r\n\r\n            }, this));\r\n\r\n        BX.bindDelegate(document, 'click',\r\n            {className: \"lpost-pvz__popup-run\"},\r\n            BX.proxy(function (e) {\r\n\r\n                if (!this.getCityID()) {\r\n                    alert(BX.message('LPOST_DELIVERY_SOA_ALERT_WHEN_THERE_IS_NO_CITY_ID'));\r\n                    return false;\r\n                }\r\n\r\n                this.updateDeliveryProfileActive();\r\n                this.setSelectedDelivery();\r\n\r\n                let profileActive = this.getProfileActive();\r\n\r\n                if (this.isProfileZone(profileActive)) {\r\n                    this.createListZone(this.getCityID())\r\n                } else {\r\n                    this.createListPvz(this.getCityID(), this.selectedDelivery.ID);\r\n                }\r\n\r\n                this.popup.show();\r\n            }, this)\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'change',\r\n            {className: \"delivery-type__group\"},\r\n            BX.proxy(function (e) {\r\n\r\n                let deliverySpeedId = this.getActiveDeliverySpeedId();\r\n\r\n                let objectManager;\r\n                if (this.isProfileZone(this.getProfileActive())) {\r\n                    objectManager = this.objectManagerZone;\r\n                } else {\r\n                    objectManager = this.objectManagerPvz;\r\n                }\r\n\r\n                let object = objectManager.objects.balloon.getData();\r\n                object.params.deliverySpeed.selected = this.getDeliverySpeed();\r\n\r\n                if (this.isProfileZone(this.getProfileActive())) {\r\n                    this.reCreatePointZone(deliverySpeedId);\r\n                } else {\r\n                    objectManager.remove(object);\r\n                    this.createPointPvz(\r\n                        this.getDataPoint(deliverySpeedId),\r\n                        object.params.deliverySpeed.selected\r\n                    );\r\n                    this.renderPointPvz(deliverySpeedId, true);\r\n                }\r\n\r\n            }, this)\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'click',\r\n            {className: \"lpost-pvz__ctrl-item\"},\r\n            function (e) {\r\n\r\n                if (!BX.hasClass(this, \"_button\")) return false;\r\n\r\n                let deliveryID = this.dataset.id;\r\n                _self.removeDeliverySpeedContainer();\r\n\r\n                if (deliveryID != _self.selectedDelivery.ID) {\r\n                    BX.fireEvent(BX(\"ID_DELIVERY_ID_\" + deliveryID), \"click\");\r\n\r\n                    _self.setSelectedDelivery();\r\n                    let profile = _self.getDeliveryProfileById(_self.selectedDelivery.ID);\r\n\r\n                    if (_self.isProfileZone(profile)) {\r\n                        _self.removePointsPvz();\r\n                        _self.createListZone(_self.getCityID())\r\n                    } else {\r\n                        _self.removePointsZone();\r\n                        _self.createListPvz(_self.getCityID());\r\n                    }\r\n                }\r\n\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'change',\r\n            {className: \"input-date-day-delivery\"},\r\n            e => {\r\n                e.preventDefault();\r\n\r\n                let view = BX.findParent(e.target, {className: 'lpost-pvz__view'});\r\n                view.querySelectorAll('.map-balloon__button').forEach(elem => elem.dataset.dateDayDelivery = e.target.value);\r\n                view.querySelectorAll('.input-date-day-delivery').forEach(elem => elem.value = e.target.value);\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'change',\r\n            {className: \"input-date-time-delivery\"},\r\n            e => {\r\n                e.preventDefault();\r\n\r\n                let view = BX.findParent(e.target, {className: 'lpost-pvz__view'});\r\n                view.querySelectorAll('.map-balloon__button').forEach(elem => elem.dataset.dateTimeDelivery = e.target.value);\r\n                view.querySelectorAll('.input-date-time-delivery').forEach(elem => elem.value = e.target.value);\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'change',\r\n            {className: \"map-balloon__additional-input\"},\r\n            e => {\r\n                e.preventDefault();\r\n\r\n                let field_name = e.target.dataset.inputFor;\r\n\r\n                let view = BX.findParent(e.target, {className: 'lpost-pvz__view'});\r\n                view.querySelectorAll('.map-balloon__button').forEach(elem => {\r\n                    elem.dataset[field_name] = e.target.value\r\n                });\r\n                view.querySelectorAll(`.lpost-delivery-input-${field_name}`).forEach(elem => {\r\n                    elem.value = e.target.value\r\n                });\r\n            }\r\n        );\r\n\r\n        BX.bindDelegate(this.popupContent, 'change',\r\n            {className: \"lpost-delivery-day-selector\"},\r\n            e => this.handlerChangeDaySelector(e)\r\n        );\r\n\r\n\r\n        BX.addCustomEvent('onAjaxSuccess', data => {\r\n            this.setSelectedDelivery();\r\n            this.clearOldAddress();\r\n            this.orderManager.displayInputAddressContainer(this.isLpostProfile())\r\n        });\r\n    }\r\n\r\n    handlerChangeDaySelector(event)\r\n    {\r\n        this.hideAllTimeSelector();\r\n        this.showTimeSelector(event.target.value);\r\n    }\r\n\r\n    hideAllTimeSelector()\r\n    {\r\n        this.popupContent.querySelectorAll(`.lpost-delivery-time-selector`).forEach((e) => {\r\n            e.style.display = \"none\";\r\n        })\r\n    }\r\n\r\n    showTimeSelector(selectorId)\r\n    {\r\n        let timeSelectList = this.popupContent.querySelectorAll(`.lpost-delivery-time-selector[data-id='${selectorId}']`)\r\n        timeSelectList.forEach((e,i) => {\r\n            e.style.display = \"block\"\r\n        })\r\n    }\r\n\r\n    isEqualCoords(arCoords1, arCoords2) {\r\n        return (arCoords1[0] === arCoords2[0]) && (arCoords1[1] === arCoords2[1]);\r\n    }\r\n\r\n    isMultiPolygon(array = []) {\r\n        let first = array[0];\r\n        let last = array[array.length - 1];\r\n\r\n        return !this.isEqualCoords(first, last);\r\n    }\r\n\r\n    createArPolygonFromMultiPolygon(array = []) {\r\n        let arPolygon = [];\r\n        let firstKey = 0;\r\n        let coords = [];\r\n        for (let key in array) {\r\n            if (Number(key) === firstKey) {\r\n                coords = array[key];\r\n                continue;\r\n            }\r\n\r\n            if (this.isEqualCoords(coords, array[key])) {\r\n                arPolygon.push(array.slice(firstKey, Number(key) + 1))\r\n                firstKey = Number(key) + 1;\r\n                coords = array[firstKey];\r\n            }\r\n        }\r\n\r\n        return arPolygon;\r\n    }\r\n\r\n}"],"names":["Formatting","isCard","isCash","days","date","selectList","BX","create","day","selectUtils","addNewOption","classList","add","outerHTML","times","console","log","Object","keys","forEach","i","arTime","deliveryDay","message","Date","setDate","getDate","length","indexOf","Day","getDay","dayFrom","From","substring","dayTo","To","ViewManager","parent","popupContent","mode","_onEvent","_resize","_setMode","_action","_getMode","_zoneAction","_zoneWithMapAction","_pvzAction","action","querySelector","remove","window","innerWidth","_self","bindDelegate","className","e","btns","findParent","querySelectorAll","btn","dataset","view","bind","proxy","tagName","value","RegExp","createList","listPoints","filter","item","address","search","metro","Balloon","type","params","html","templatePvz","templateZone","templateEmpty","has_fitting_room","id","coords","buttonText","additional_properties_html","IS_SHOW_ADDITIONAL_PROPERTIES","DateDeliverySelector","dateList","_dateList","_html","select","DateDelive","valueList","indexId","TimeFrom","TimeTo","selectHtmlList","getHtmlTimeSelector","Intervals","getHtmlDaySelector","getHtmlTimeSelectorList","WidgetManager","options","orderManager","Promise","resolve","reject","fetchHtml","then","document","insertAdjacentHTML","ajaxURL","selectPoint","popup","createPopup","container","point_options","iconLayout","iconImageHref","iconImageOffset","viewManager","setSelectedDelivery","clearOldAddress","createMap","_event","ajax","url","data","method","onsuccess","ymaps","ready","map","Map","center","zoom","controls","suppressMapOpenBlock","objectManagerZone","ObjectManager","clusterize","clusterDisableClickZoom","geoObjectOpenBalloonOnClick","objectManagerPvz","yandeSearch","SuggestView","provider","suggest","request","cityName","placeholder","array","items","displayName","push","vow","polygons","polygon","geometry","contains","zoneNumber","properties","get","idPickup","getLocationId","selectedDelivery","getSelectedDeliveryProfile","showDeliveryButtonLpost","ID","deliveryId","deliveryList","deliveryItem","cityID","json","_request","fields","async","JSON","parse","removeZone","setRegionBlock","city","name","createPointsPvz","setCenter","lat","removePointsPvz","removePointsZone","createZone","zone","deliverySpeed","getDefaultCoords","cityCoords","geocode","geoObject","getCoordinates","dataZone","getNumberZone","createPoint","getAddressLine","premiseNumber","getPremiseNumber","res","geoObjects","zones","a","ZoneNumber","reverse","dataPolygon","WKT","arPolygonCoordinates","Coordinates","arItem","arItemReverse","key","isMultiPolygon","concat","createArPolygonFromMultiPolygon","ymapsPolygon","Polygon","fillColor","interactivityModel","opacity","zIndex","zIndexHover","interactiveZIndex","removeAll","features","selected","is_card","is_cash","id_pickup","description","pickup_dop","timeWork","time_work","coordinates","radius","balloonContent","generate","getHtml","collection","fast","slow","object","objectId","open","objects","getById","setSumDeliveryPoint","balloon","containerList","cleanNode","content","tag","attrs","children","text","day_logistic","coord_lat","coord_long","title","paymentMethod","elem","append","innerHTML","selectedDeliveryID","getDeliveryProfileById","profile","getProfileActive","profileActive","profiles","deliverySpeedContainer","activeProfile","isProfileZone","CLASS_NAME","PopupWindow","bindOnResize","autoHide","offsetTop","offsetLeft","resizable","lightShadow","closeIcon","closeByEsc","overlay","backgroundColor","events","onAfterPopupShow","onPopupDestroy","onPopupShow","setAnimation","event","fullAddress","target","store_full_address","porch","floor","flat","code","price","renderAdditionalField","ADDITIONAL_PROPERTY_OPTION_CODES","dateDayDelivery","dateTimeDelivery","isActiveDeliverySpeedBlock","getActiveDeliverySpeedId","close","renderAddress","renderPrice","refresh","pickupID","runAction","pickupId","profileId","profileType","getActiveProfileType","response","getSumCalcDelivery","replace","sumFormat","sum","IS_SHOW_COURIER_DATES","dateDelivery","dateDeliverySelector","getDayDefaultValue","getTimeDefaultValue","result","dataType","checked","removeDeliverySpeedContainer","objectManager","objectFastId","objectSlowId","newPickupID","getData","balloonOpen","propertiesType","Number","isInteger","setTimeout","renderingInformationFromTheBallon","map_balloon","input_day","input_time","fireEvent","createDeliverySpeedContainer","search_input","trim","isLpostProfile","prevDeliveryActiveId","getProfileActiveId","newObject","renderPointPvz","results","getCityID","alert","updateDeliveryProfileActive","createListZone","createListPvz","show","deliverySpeedId","getDeliverySpeed","reCreatePointZone","createPointPvz","getDataPoint","hasClass","deliveryID","preventDefault","field_name","inputFor","handlerChangeDaySelector","addCustomEvent","displayInputAddressContainer","hideAllTimeSelector","showTimeSelector","style","display","selectorId","timeSelectList","arCoords1","arCoords2","first","last","isEqualCoords","arPolygon","firstKey","slice"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit