UI debug details

This commit is contained in:
Tony Air 2020-05-14 01:46:13 +07:00
parent 1f15be7009
commit 4307eb559d
6 changed files with 363 additions and 363 deletions

2
dist/js/app.js vendored

File diff suppressed because one or more lines are too long

2
dist/js/app.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/_components/_ui.map.api.js","webpack:///./src/js/_components/drivers/_map.google.marker.js","webpack:///./src/js/_components/drivers/_map.google.js","webpack:///./src/js/_consts.js","webpack:///./src/js/_events.js","webpack:///./src/js/types/SilverShop.Page.CheckoutPageController.js","webpack:///external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","NAME","$BODY","MAP_DRIVER","CONSTS","W","window","MapAPI","el","ui","this","Drv","$el","config","data","jQuery","parseJSON","css","console","log","getName","init","drv","on","Events","MAPAPILOADED","e","map","getMap","addGeoJson","geocode","result","addMarker","addClass","trigger","MAPLOADED","localStorage","each","removeData","removeClass","fn","_jQueryInterface","Constructor","noConflict","JQUERY_NO_CONFLICT","AJAX","LOADED","jsMapAPI","Obj","google","maps","OverlayView","options","setMap","position","html","divClass","align","isDebugMode","debug","onClick","onMouseOver","isBoolean","arg","isNotUndefined","hasContent","length","isString","isFunction","div","document","createElement","style","className","innerHTML","setAttribute","getPanes","overlayMouseTarget","appendChild","event","addDomListener","stopPropagation","$div","find","positionInPixels","getProjection","fromLatLngToDivPixel","LatLng","offset","y","undefined","x","divWidth","outerWidth","divHeight","outerHeight","Array","isArray","join","top","left","draw","ENVS","markers","googleApiLoaded","append","$mapDiv","zoom","center","lat","lng","MarkerUI","Map","fullscreenControl","styles","default_zoom","popup","geocoder","Geocoder","crds","pos","marker","showPopup","MAPMARKERCLICK","push","content","$popup","getDiv","setCenter","setZoom","opacity","preventDefault","hidePopup","setPosition","restoreBounds","MAPPOPUPCLOSE","addr","callback","address","results","status","error","latLng","location","latlng","bounds","features","geometry","coordinates","LatLngBounds","forEach","id","properties","icon","flyToMarker","extend","fitBounds","padding","getPosition","default_bounds","getZoom","restoreZoom","TABHIDDEN","TABFOCUSED","OFFLINE","ONLINE","SWIPELEFT","SWIPERIGHT","ALLERTAPPEARED","ALERTREMOVED","LODEDANDREADY","LAZYIMAGEREADY","LAZYIMAGESREADY","SCROLL","RESIZE","CAROUSEL_READY","SET_TARGET_UPDATE","RESTORE_FIELD","FORM_INIT_BASICS","FORM_INIT_STEPPED","FORM_INIT_VALIDATE","FORM_INIT_VALIDATE_FIELD","FORM_INIT_STORAGE","FORM_VALIDATION_FAILED","FORM_STEPPED_NEW_STEP","FORM_STEPPED_FIRST_STEP","FORM_STEPPED_LAST_STEP","FORM_FIELDS"],"mappings":"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","file":"js/app_SilverShop.Page.CheckoutPageController.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/mnt/data/srv/dist/repositories/webpack-bootstrap-ui-kit/dist\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/types/SilverShop.Page.CheckoutPageController.js\");\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\nimport '../../scss/_components/_ui.map.scss';\n\nimport CONSTS from 'js/_consts';\n\nconst MapAPI = (($) => {\n // Constants\n const NAME = 'jsMapAPI';\n const DATA_KEY = NAME;\n const $BODY = $('body');\n\n const MAP_DRIVER = CONSTS['MAP_DRIVER'];\n const W = window;\n\n class MapAPI {\n // Constructor\n constructor(el) {\n const ui = this;\n const Drv = new MAP_DRIVER();\n\n ui.$el = $(el);\n\n const $el = ui.$el;\n const config = $el.data();\n\n config['center'] = [\n config['lng'] ? config['lng'] : $BODY.data('default-lng'),\n config['lat'] ? config['lat'] : $BODY.data('default-lat'),\n ];\n\n config['style'] = config['style']\n ? jQuery.parseJSON(config['style'])\n : null;\n\n config['font-family'] = $BODY.css('font-family');\n\n console.log(`${NAME}: initializing ${Drv.getName()}...`);\n Drv.init($el, config);\n ui.drv = Drv;\n\n $el.on(Events.MAPAPILOADED, (e) => {\n ui.map = Drv.getMap();\n\n if (config['geojson']) {\n console.log(`${NAME}: setting up geocode data`);\n Drv.addGeoJson(config);\n } else if (config['address']) {\n console.log(config['address']);\n console.log(`${NAME}: setting up address marker`);\n Drv.geocode(config['address'], (result) => {\n console.log(result);\n });\n } else if (config['lat'] && config['lng']) {\n console.log(`${NAME}: setting up single lat/lng marker`);\n\n if (!config['icon']) {\n config['icon'] = '<i class=\"fas fa-map-marker-alt\"></i>';\n }\n\n Drv.addMarker([config['lng'], config['lat']], config);\n }\n\n $el.data(DATA_KEY, ui);\n $el.addClass(`${NAME}-active`);\n\n $el.trigger(Events.MAPLOADED);\n console.log(`${NAME}: Map is loaded`);\n });\n }\n\n // Public methods\n getMap() {\n return ui.map;\n }\n\n dispose() {\n const ui = this;\n\n ui.$el = null;\n $.removeData(ui.$el[0], DATA_KEY);\n\n ui.$el.removeClass(`${NAME}-active`);\n }\n\n static _jQueryInterface() {\n if (typeof W.localStorage !== 'undefined') {\n return this.each(function() {\n // attach functionality to el\n const $el = $(this);\n let data = $el.data(DATA_KEY);\n\n if (!data) {\n data = new MapAPI(this);\n $el.data(DATA_KEY, data);\n }\n });\n }\n }\n }\n\n // jQuery interface\n $.fn[NAME] = MapAPI._jQueryInterface;\n $.fn[NAME].Constructor = MapAPI;\n $.fn[NAME].noConflict = function() {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return MapAPI._jQueryInterface;\n };\n\n // auto-apply\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n $('.mapAPI-map-container').jsMapAPI();\n });\n\n return MapAPI;\n})($);\n\nexport default MapAPI;\n","const Obj = {\n init: () => {\n class GoogleMapsHtmlOverlay extends google.maps.OverlayView {\n constructor(options) {\n super();\n const ui = this;\n\n ui.setMap(options.map);\n ui.position = options.position;\n ui.html = options.html\n ? options.html\n : '<div class=\"mapboxgl-marker\"><i class=\"marker-icon fas fa-map-marker-alt\"></i></div>';\n ui.divClass = options.divClass;\n ui.align = options.align;\n ui.isDebugMode = options.debug;\n ui.onClick = options.onClick;\n ui.onMouseOver = options.onMouseOver;\n\n ui.isBoolean = (arg) => {\n if (typeof arg === 'boolean') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isNotUndefined = (arg) => {\n if (typeof arg !== 'undefined') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.hasContent = (arg) => {\n if (arg.length > 0) {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isString = (arg) => {\n if (typeof arg === 'string') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isFunction = (arg) => {\n if (typeof arg === 'function') {\n return true;\n } else {\n return false;\n }\n };\n }\n onAdd() {\n const ui = this;\n\n // Create div element.\n ui.div = document.createElement('div');\n ui.div.style.position = 'absolute';\n\n // Validate and set custom div class\n if (ui.isNotUndefined(ui.divClass) && ui.hasContent(ui.divClass))\n ui.div.className = ui.divClass;\n\n // Validate and set custom HTML\n if (\n ui.isNotUndefined(ui.html) &&\n ui.hasContent(ui.html) &&\n ui.isString(ui.html)\n )\n ui.div.innerHTML = ui.html;\n\n // If debug mode is enabled custom content will be replaced with debug content\n if (ui.isBoolean(ui.isDebugMode) && ui.isDebugMode) {\n ui.div.className = 'debug-mode';\n ui.div.innerHTML =\n '<div style=\"height: 10px; width: 10px; background: red; border-radius: 100%;\"></div>' +\n '<div style=\"position: absolute; top: 5px; padding: 5px; width: 130px; text-align: center; font-size: 18px; text-transform: uppercase; font-weight: bolder; background: red; color: white; font-family: Arial;\">Debug mode</div>';\n ui.div.setAttribute(\n 'style',\n 'position: absolute;' +\n 'border: 5px dashed red;' +\n 'height: 150px;' +\n 'width: 150px;' +\n 'display: flex;' +\n 'justify-content: center;' +\n 'align-items: center;',\n );\n }\n\n // Add element to clickable layer\n ui.getPanes().overlayMouseTarget.appendChild(ui.div);\n\n // Add listeners to the element.\n google.maps.event.addDomListener(ui.div, 'click', (event) => {\n google.maps.event.trigger(ui, 'click');\n if (ui.isFunction(ui.onClick)) ui.onClick();\n event.stopPropagation();\n });\n\n google.maps.event.addDomListener(ui.div, 'mouseover', (event) => {\n google.maps.event.trigger(ui, 'mouseover');\n if (ui.isFunction(ui.onMouseOver)) ui.onMouseOver();\n event.stopPropagation();\n });\n }\n\n draw() {\n const ui = this;\n let $div = $(ui.div).find(\n '.mapboxgl-marker,.marker-pin,.mapboxgl-popup,.popup',\n );\n if (!$div.length) {\n $div = $(ui.div);\n }\n\n // Calculate position of div\n const positionInPixels = ui\n .getProjection()\n .fromLatLngToDivPixel(new google.maps.LatLng(ui.position));\n\n // Align HTML overlay relative to original position\n const offset = {\n y: undefined,\n x: undefined,\n };\n const divWidth = $div.outerWidth();\n const divHeight = $div.outerHeight();\n\n switch (Array.isArray(ui.align) ? ui.align.join(' ') : '') {\n case 'left top':\n offset.y = divHeight;\n offset.x = divWidth;\n break;\n case 'left center':\n offset.y = divHeight / 2;\n offset.x = divWidth;\n break;\n case 'left bottom':\n offset.y = 0;\n offset.x = divWidth;\n break;\n case 'center top':\n offset.y = divHeight;\n offset.x = divWidth / 2;\n break;\n case 'center center':\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n case 'center bottom':\n offset.y = 0;\n offset.x = divWidth / 2;\n break;\n case 'right top':\n offset.y = divHeight;\n offset.x = 0;\n break;\n case 'right center':\n offset.y = divHeight / 2;\n offset.x = 0;\n break;\n case 'right bottom':\n offset.y = 0;\n offset.x = 0;\n break;\n default:\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n }\n\n // Set position\n ui.div.style.top = `${positionInPixels.y - offset.y}px`;\n ui.div.style.left = `${positionInPixels.x - offset.x}px`;\n }\n\n getPosition() {\n const ui = this;\n return ui.position;\n }\n\n getDiv() {\n const ui = this;\n return ui.div;\n }\n\n setPosition(position, align) {\n const ui = this;\n ui.position = position;\n ui.align = align;\n ui.draw();\n }\n }\n return GoogleMapsHtmlOverlay;\n },\n};\n\nexport default Obj;\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../../_events';\nimport MarkerUI from './_map.google.marker';\n\nconst GoogleMapsDriver = (($) => {\n class GoogleMapsDriver {\n getName() {\n return 'GoogleMapsDriver';\n }\n\n init($el, config = []) {\n const ui = this;\n const W = window;\n\n ui.$el = $el;\n ui.config = config;\n ui.markers = [];\n\n W[`init${ui.getName()}`] = () => {\n ui.googleApiLoaded();\n };\n\n $('body').append(\n `<script async defer src=\"https://maps.googleapis.com/maps/api/js?key=${\n config['key']\n }&callback=init${ui.getName()}\"></script>`,\n );\n }\n\n googleApiLoaded() {\n const ui = this;\n\n const $el = ui.$el;\n const config = ui.config;\n const $mapDiv = $el.find('.mapAPI-map');\n\n const zoom = config['mapZoom'] ? config['mapZoom'] : 10;\n const center = config['center']\n ? {\n lat: config['center'][1],\n lng: config['center'][0],\n }\n : {\n lat: 0,\n lng: 0,\n };\n const style = config['style'] ? config['style'] : null;\n\n console.log(`${ui.getName()}: API is loaded`);\n // init fontawesome icons\n ui.MarkerUI = MarkerUI.init($);\n\n ui.map = new google.maps.Map($mapDiv[0], {\n zoom,\n center,\n fullscreenControl: true,\n styles: style,\n });\n\n ui.default_zoom = zoom;\n\n $mapDiv.addClass('mapboxgl-map');\n\n ui.popup = new ui.MarkerUI({\n map: ui.map,\n align: ['center', 'top'],\n divClass: 'mapboxgl-popup popup mapboxgl-popup-anchor-bottom d-none',\n html:\n '<div class=\"mapboxgl-popup-tip\"></div><div class=\"mapboxgl-popup-content\">' +\n '<div class=\"mapboxgl-popup-close-button\" type=\"button\" aria-label=\"Close popup\">×</div>' +\n '<div class=\"html\"></div>' +\n '</div>',\n });\n\n ui.geocoder = new google.maps.Geocoder();\n\n $el.trigger(Events.MAPAPILOADED);\n }\n\n addMarker(crds, config) {\n const ui = this;\n\n const pos = {\n lat: crds[1],\n lng: crds[0],\n };\n\n const marker = new ui.MarkerUI({\n position: pos,\n map: ui.map,\n align: ['center', 'top'],\n html: `<div class=\"mapboxgl-marker\"><div id=\"Marker${config['id']}\" data-id=\"${config['id']}\" class=\"marker\">${config['icon']}</div></div>`,\n onClick: () => {\n const $el = $(`#Marker${config['id']}`);\n ui.showPopup(pos, config['content']);\n\n $el.trigger(Events.MAPMARKERCLICK);\n },\n });\n\n ui.markers.push(marker);\n\n return marker;\n }\n\n showPopup(pos, content) {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n if (ui.config['flyToMarker']) {\n ui.map.setCenter(pos); // panTo\n if (!ui.config['noZoom']) {\n ui.map.setZoom(18);\n }\n }\n\n // keep it hidden to render content\n $popup.css({\n opacity: '0',\n });\n $popup.removeClass('d-none');\n\n $popup.find('.mapboxgl-popup-content .html').html(content);\n\n $popup.find('.mapboxgl-popup-close-button').on('click', (e) => {\n e.preventDefault();\n ui.hidePopup();\n });\n\n // set position when content was rendered\n ui.popup.setPosition(pos, ['center', 'top']);\n\n // display popup\n $popup.css({\n 'margin-top': '-1rem',\n opacity: '1',\n });\n }\n\n hidePopup() {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n $popup.addClass('d-none');\n if (!ui.config['noRestoreBounds'] || ui.config['flyToBounds']) {\n ui.restoreBounds();\n }\n\n ui.$el.trigger(Events.MAPPOPUPCLOSE);\n }\n\n geocode(addr, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n address: addr,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].geometry.location;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Geocode was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n reverseGeocode(latLng, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n location: latlng,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].formatted_address;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Reverse Geocoding was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n addGeoJson(config) {\n const ui = this;\n\n const firstMarker = config['geojson'].features[0].geometry.coordinates;\n //Map.setCenter(firstMarker);\n const bounds = new google.maps.LatLngBounds();\n\n // add markers to map\n config['geojson'].features.forEach((marker) => {\n const id = marker.id;\n const crds = marker.geometry.coordinates;\n const content = marker.properties.content;\n\n ui.addMarker(crds, {\n id,\n content,\n icon: marker.icon,\n flyToMarker: config['flyToMarker'],\n });\n\n bounds.extend({\n lat: crds[1],\n lng: crds[0],\n });\n });\n\n if (ui.markers.length > 1) {\n ui.map.fitBounds(bounds, {\n padding: 30,\n }); //panToBounds\n } else if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.default_bounds = bounds;\n ui.default_zoom = ui.map.getZoom();\n }\n\n getMap() {\n const ui = this;\n return ui.map;\n }\n\n getPopup() {\n const ui = this;\n return ui.popup;\n }\n\n restoreBounds() {\n const ui = this;\n\n if (ui.default_bounds && ui.markers.length > 1) {\n ui.map.fitBounds(ui.default_bounds, {\n padding: 30,\n }); //panToBounds\n } else {\n if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.restoreZoom();\n }\n }\n\n restoreZoom() {\n const ui = this;\n\n ui.map.setZoom(ui.default_zoom);\n }\n }\n\n return GoogleMapsDriver;\n})($);\n\nexport default GoogleMapsDriver;\n","/**\n * Add your global events here\n */\n\nimport MAP_DRIVER from './_components/drivers/_map.google';\n//import MAP_DRIVER from './_components/drivers/_map.mapbox';\n\nconst CONSTS = {\n ENVS: [\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n ],\n MAP_DRIVER,\n};\n\nexport default CONSTS;\n","/**\n * Add your global events here\n */\n\nmodule.exports = {\n AJAX: 'ajax-load',\n TABHIDDEN: 'tab-hidden',\n TABFOCUSED: 'tab-focused',\n OFFLINE: 'offline',\n ONLINE: 'online',\n LOADED: 'load',\n SWIPELEFT: 'swipeleft panleft',\n SWIPERIGHT: 'swiperight panright',\n ALLERTAPPEARED: 'alert-appeared',\n ALERTREMOVED: 'alert-removed',\n LODEDANDREADY: 'load-ready',\n LAZYIMAGEREADY: 'image-lazy-bg-loaded',\n LAZYIMAGESREADY: 'images-lazy-loaded',\n MAPLOADED: 'map-loaded',\n MAPAPILOADED: 'map-api-loaded',\n MAPMARKERCLICK: 'map-marker-click',\n MAPPOPUPCLOSE: 'map-popup-close',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n CAROUSEL_READY: 'bs.carousel.ready',\n SET_TARGET_UPDATE: 'set-target-update',\n RESTORE_FIELD: 'restore-field',\n FORM_INIT_BASICS: 'form-basics',\n FORM_INIT_STEPPED: 'form-init-stepped',\n FORM_INIT_VALIDATE: 'form-init-validate',\n FORM_INIT_VALIDATE_FIELD: 'form-init-validate-field',\n FORM_INIT_STORAGE: 'form-init-storage',\n FORM_VALIDATION_FAILED: 'form-validation-failed',\n FORM_STEPPED_NEW_STEP: 'form-new-step',\n FORM_STEPPED_FIRST_STEP: 'form-first-step',\n FORM_STEPPED_LAST_STEP: 'form-last-step',\n FORM_FIELDS: 'input,textarea,select',\n};\n","\"use strict\";\n\nimport '../_components/_ui.map.api';\n","module.exports = jQuery;"],"sourceRoot":""}
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/_components/_ui.map.api.js","webpack:///./src/js/_components/drivers/_map.google.marker.js","webpack:///./src/js/_components/drivers/_map.google.js","webpack:///./src/js/_consts.js","webpack:///./src/js/_events.js","webpack:///./src/js/types/SilverShop.Page.CheckoutPageController.js","webpack:///external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","NAME","$BODY","MAP_DRIVER","CONSTS","W","window","MapAPI","el","ui","this","Drv","$el","config","data","jQuery","parseJSON","css","console","log","getName","init","drv","on","Events","MAPAPILOADED","e","map","getMap","addGeoJson","geocode","result","addMarker","addClass","trigger","MAPLOADED","localStorage","each","removeData","removeClass","fn","_jQueryInterface","Constructor","noConflict","JQUERY_NO_CONFLICT","AJAX","LOADED","jsMapAPI","Obj","google","maps","OverlayView","options","setMap","position","html","divClass","align","isDebugMode","debug","onClick","onMouseOver","isBoolean","arg","isNotUndefined","hasContent","length","isString","isFunction","div","document","createElement","style","className","innerHTML","setAttribute","getPanes","overlayMouseTarget","appendChild","event","addDomListener","stopPropagation","$div","find","positionInPixels","getProjection","fromLatLngToDivPixel","LatLng","offset","y","undefined","x","divWidth","outerWidth","divHeight","outerHeight","Array","isArray","join","top","left","draw","ENVS","markers","googleApiLoaded","append","$mapDiv","zoom","center","lat","lng","MarkerUI","Map","fullscreenControl","styles","default_zoom","popup","geocoder","Geocoder","crds","pos","marker","showPopup","MAPMARKERCLICK","push","content","$popup","getDiv","setCenter","setZoom","opacity","preventDefault","hidePopup","setPosition","restoreBounds","MAPPOPUPCLOSE","addr","callback","address","results","status","error","latLng","location","latlng","bounds","features","geometry","coordinates","LatLngBounds","forEach","id","properties","icon","flyToMarker","extend","fitBounds","padding","getPosition","default_bounds","getZoom","restoreZoom","TABHIDDEN","TABFOCUSED","OFFLINE","ONLINE","SWIPELEFT","SWIPERIGHT","ALLERTAPPEARED","ALERTREMOVED","LODEDANDREADY","LAZYIMAGEREADY","LAZYIMAGESREADY","SCROLL","RESIZE","CAROUSEL_READY","SET_TARGET_UPDATE","RESTORE_FIELD","FORM_INIT_BASICS","FORM_INIT_STEPPED","FORM_INIT_VALIDATE","FORM_INIT_VALIDATE_FIELD","FORM_INIT_STORAGE","FORM_VALIDATION_FAILED","FORM_STEPPED_NEW_STEP","FORM_STEPPED_FIRST_STEP","FORM_STEPPED_LAST_STEP","FORM_FIELDS"],"mappings":"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","file":"js/app_SilverShop.Page.CheckoutPageController.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/mnt/data/srv/dist/repositories/webpack-bootstrap-ui-kit/dist\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/types/SilverShop.Page.CheckoutPageController.js\");\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\nimport '../../scss/_components/_ui.map.scss';\n\nimport CONSTS from 'js/_consts';\n\nconst MapAPI = (($) => {\n // Constants\n const NAME = 'jsMapAPI';\n const DATA_KEY = NAME;\n const $BODY = $('body');\n\n const MAP_DRIVER = CONSTS['MAP_DRIVER'];\n const W = window;\n\n class MapAPI {\n // Constructor\n constructor(el) {\n const ui = this;\n const Drv = new MAP_DRIVER();\n\n ui.$el = $(el);\n\n const $el = ui.$el;\n const config = $el.data();\n\n config['center'] = [\n config['lng'] ? config['lng'] : $BODY.data('default-lng'),\n config['lat'] ? config['lat'] : $BODY.data('default-lat'),\n ];\n\n config['style'] = config['style']\n ? jQuery.parseJSON(config['style'])\n : null;\n\n config['font-family'] = $BODY.css('font-family');\n\n console.log(`${NAME}: initializing ${Drv.getName()}...`);\n Drv.init($el, config);\n ui.drv = Drv;\n\n $el.on(Events.MAPAPILOADED, (e) => {\n ui.map = Drv.getMap();\n\n if (config['geojson']) {\n console.log(`${NAME}: setting up geocode data`);\n Drv.addGeoJson(config);\n } else if (config['address']) {\n console.log(config['address']);\n console.log(`${NAME}: setting up address marker`);\n Drv.geocode(config['address'], (result) => {\n console.log(result);\n });\n } else if (config['lat'] && config['lng']) {\n console.log(`${NAME}: setting up single lat/lng marker`);\n\n if (!config['icon']) {\n config['icon'] = '<i class=\"fas fa-map-marker-alt\"></i>';\n }\n\n Drv.addMarker([config['lng'], config['lat']], config);\n }\n\n $el.data(DATA_KEY, ui);\n $el.addClass(`${NAME}-active`);\n\n $el.trigger(Events.MAPLOADED);\n console.log(`${NAME}: Map is loaded`);\n });\n }\n\n // Public methods\n getMap() {\n return ui.map;\n }\n\n dispose() {\n const ui = this;\n\n ui.$el = null;\n $.removeData(ui.$el[0], DATA_KEY);\n\n ui.$el.removeClass(`${NAME}-active`);\n }\n\n static _jQueryInterface() {\n if (typeof W.localStorage !== 'undefined') {\n return this.each(function() {\n // attach functionality to el\n const $el = $(this);\n let data = $el.data(DATA_KEY);\n\n if (!data) {\n data = new MapAPI(this);\n $el.data(DATA_KEY, data);\n }\n });\n }\n }\n }\n\n // jQuery interface\n $.fn[NAME] = MapAPI._jQueryInterface;\n $.fn[NAME].Constructor = MapAPI;\n $.fn[NAME].noConflict = function() {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return MapAPI._jQueryInterface;\n };\n\n // auto-apply\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n $('.mapAPI-map-container').jsMapAPI();\n });\n\n return MapAPI;\n})($);\n\nexport default MapAPI;\n","const Obj = {\n init: () => {\n class GoogleMapsHtmlOverlay extends google.maps.OverlayView {\n constructor(options) {\n super();\n const ui = this;\n\n ui.setMap(options.map);\n ui.position = options.position;\n ui.html = options.html\n ? options.html\n : '<div class=\"mapboxgl-marker\"><i class=\"marker-icon fas fa-map-marker-alt\"></i></div>';\n ui.divClass = options.divClass;\n ui.align = options.align;\n ui.isDebugMode = options.debug;\n ui.onClick = options.onClick;\n ui.onMouseOver = options.onMouseOver;\n\n ui.isBoolean = (arg) => {\n if (typeof arg === 'boolean') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isNotUndefined = (arg) => {\n if (typeof arg !== 'undefined') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.hasContent = (arg) => {\n if (arg.length > 0) {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isString = (arg) => {\n if (typeof arg === 'string') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isFunction = (arg) => {\n if (typeof arg === 'function') {\n return true;\n } else {\n return false;\n }\n };\n }\n onAdd() {\n const ui = this;\n\n // Create div element.\n ui.div = document.createElement('div');\n ui.div.style.position = 'absolute';\n\n // Validate and set custom div class\n if (ui.isNotUndefined(ui.divClass) && ui.hasContent(ui.divClass))\n ui.div.className = ui.divClass;\n\n // Validate and set custom HTML\n if (\n ui.isNotUndefined(ui.html) &&\n ui.hasContent(ui.html) &&\n ui.isString(ui.html)\n )\n ui.div.innerHTML = ui.html;\n\n // If debug mode is enabled custom content will be replaced with debug content\n if (ui.isBoolean(ui.isDebugMode) && ui.isDebugMode) {\n ui.div.className = 'debug-mode';\n ui.div.innerHTML =\n '<div style=\"height: 10px; width: 10px; background: red; border-radius: 100%;\"></div>' +\n '<div style=\"position: absolute; top: 5px; padding: 5px; width: 130px; text-align: center; font-size: 18px; text-transform: uppercase; font-weight: bolder; background: red; color: white; font-family: Arial;\">Debug mode</div>';\n ui.div.setAttribute(\n 'style',\n 'position: absolute;' +\n 'border: 5px dashed red;' +\n 'height: 150px;' +\n 'width: 150px;' +\n 'display: flex;' +\n 'justify-content: center;' +\n 'align-items: center;',\n );\n }\n\n // Add element to clickable layer\n ui.getPanes().overlayMouseTarget.appendChild(ui.div);\n\n // Add listeners to the element.\n google.maps.event.addDomListener(ui.div, 'click', (event) => {\n google.maps.event.trigger(ui, 'click');\n if (ui.isFunction(ui.onClick)) ui.onClick();\n event.stopPropagation();\n });\n\n google.maps.event.addDomListener(ui.div, 'mouseover', (event) => {\n google.maps.event.trigger(ui, 'mouseover');\n if (ui.isFunction(ui.onMouseOver)) ui.onMouseOver();\n event.stopPropagation();\n });\n }\n\n draw() {\n const ui = this;\n let $div = $(ui.div).find(\n '.mapboxgl-marker,.marker-pin,.mapboxgl-popup,.popup',\n );\n if (!$div.length) {\n $div = $(ui.div);\n }\n\n // Calculate position of div\n const positionInPixels = ui\n .getProjection()\n .fromLatLngToDivPixel(new google.maps.LatLng(ui.position));\n\n // Align HTML overlay relative to original position\n const offset = {\n y: undefined,\n x: undefined,\n };\n const divWidth = $div.outerWidth();\n const divHeight = $div.outerHeight();\n\n switch (Array.isArray(ui.align) ? ui.align.join(' ') : '') {\n case 'left top':\n offset.y = divHeight;\n offset.x = divWidth;\n break;\n case 'left center':\n offset.y = divHeight / 2;\n offset.x = divWidth;\n break;\n case 'left bottom':\n offset.y = 0;\n offset.x = divWidth;\n break;\n case 'center top':\n offset.y = divHeight;\n offset.x = divWidth / 2;\n break;\n case 'center center':\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n case 'center bottom':\n offset.y = 0;\n offset.x = divWidth / 2;\n break;\n case 'right top':\n offset.y = divHeight;\n offset.x = 0;\n break;\n case 'right center':\n offset.y = divHeight / 2;\n offset.x = 0;\n break;\n case 'right bottom':\n offset.y = 0;\n offset.x = 0;\n break;\n default:\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n }\n\n // Set position\n ui.div.style.top = `${positionInPixels.y - offset.y}px`;\n ui.div.style.left = `${positionInPixels.x - offset.x}px`;\n }\n\n getPosition() {\n const ui = this;\n return ui.position;\n }\n\n getDiv() {\n const ui = this;\n return ui.div;\n }\n\n setPosition(position, align) {\n const ui = this;\n ui.position = position;\n ui.align = align;\n ui.draw();\n }\n }\n return GoogleMapsHtmlOverlay;\n },\n};\n\nexport default Obj;\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../../_events';\nimport MarkerUI from './_map.google.marker';\n\nconst GoogleMapsDriver = (($) => {\n class GoogleMapsDriver {\n getName() {\n return 'GoogleMapsDriver';\n }\n\n init($el, config = []) {\n const ui = this;\n const W = window;\n\n ui.$el = $el;\n ui.config = config;\n ui.markers = [];\n\n W[`init${ui.getName()}`] = () => {\n ui.googleApiLoaded();\n };\n\n $('body').append(\n `<script async defer src=\"https://maps.googleapis.com/maps/api/js?key=${\n config['key']\n }&callback=init${ui.getName()}\"></script>`,\n );\n }\n\n googleApiLoaded() {\n const ui = this;\n\n const $el = ui.$el;\n const config = ui.config;\n const $mapDiv = $el.find('.mapAPI-map');\n\n const zoom = config['mapZoom'] ? config['mapZoom'] : 10;\n const center = config['center']\n ? {\n lat: config['center'][1],\n lng: config['center'][0],\n }\n : {\n lat: 0,\n lng: 0,\n };\n const style = config['style'] ? config['style'] : null;\n\n console.log(`${ui.getName()}: API is loaded`);\n // init fontawesome icons\n ui.MarkerUI = MarkerUI.init($);\n\n ui.map = new google.maps.Map($mapDiv[0], {\n zoom,\n center,\n fullscreenControl: true,\n styles: style,\n });\n\n ui.default_zoom = zoom;\n\n $mapDiv.addClass('mapboxgl-map');\n\n ui.popup = new ui.MarkerUI({\n map: ui.map,\n align: ['center', 'top'],\n divClass: 'mapboxgl-popup popup mapboxgl-popup-anchor-bottom d-none',\n html:\n '<div class=\"mapboxgl-popup-tip\"></div><div class=\"mapboxgl-popup-content\">' +\n '<div class=\"mapboxgl-popup-close-button\" type=\"button\" aria-label=\"Close popup\">×</div>' +\n '<div class=\"html\"></div>' +\n '</div>',\n });\n\n ui.geocoder = new google.maps.Geocoder();\n\n $el.trigger(Events.MAPAPILOADED);\n }\n\n addMarker(crds, config) {\n const ui = this;\n\n const pos = {\n lat: crds[1],\n lng: crds[0],\n };\n\n const marker = new ui.MarkerUI({\n position: pos,\n map: ui.map,\n align: ['center', 'top'],\n html: `<div class=\"mapboxgl-marker\"><div id=\"Marker${config['id']}\" data-id=\"${config['id']}\" class=\"marker\">${config['icon']}</div></div>`,\n onClick: () => {\n const $el = $(`#Marker${config['id']}`);\n ui.showPopup(pos, config['content']);\n\n $el.trigger(Events.MAPMARKERCLICK);\n },\n });\n\n ui.markers.push(marker);\n\n return marker;\n }\n\n showPopup(pos, content) {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n if (ui.config['flyToMarker']) {\n ui.map.setCenter(pos); // panTo\n if (!ui.config['noZoom']) {\n ui.map.setZoom(18);\n }\n }\n\n // keep it hidden to render content\n $popup.css({\n opacity: '0',\n });\n $popup.removeClass('d-none');\n\n $popup.find('.mapboxgl-popup-content .html').html(content);\n\n $popup.find('.mapboxgl-popup-close-button').on('click', (e) => {\n e.preventDefault();\n ui.hidePopup();\n });\n\n // set position when content was rendered\n ui.popup.setPosition(pos, ['center', 'top']);\n\n // display popup\n $popup.css({\n 'margin-top': '-1rem',\n opacity: '1',\n });\n }\n\n hidePopup() {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n $popup.addClass('d-none');\n if (!ui.config['noRestoreBounds'] || ui.config['flyToBounds']) {\n ui.restoreBounds();\n }\n\n ui.$el.trigger(Events.MAPPOPUPCLOSE);\n }\n\n geocode(addr, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n address: addr,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].geometry.location;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Geocode was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n reverseGeocode(latLng, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n location: latlng,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].formatted_address;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Reverse Geocoding was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n addGeoJson(config) {\n const ui = this;\n\n const firstMarker = config['geojson'].features[0].geometry.coordinates;\n //Map.setCenter(firstMarker);\n const bounds = new google.maps.LatLngBounds();\n\n // add markers to map\n config['geojson'].features.forEach((marker) => {\n const id = marker.id;\n const crds = marker.geometry.coordinates;\n const content = marker.properties.content;\n\n ui.addMarker(crds, {\n id,\n content,\n icon: marker.icon,\n flyToMarker: config['flyToMarker'],\n });\n\n bounds.extend({\n lat: crds[1],\n lng: crds[0],\n });\n });\n\n if (ui.markers.length > 1) {\n ui.map.fitBounds(bounds, {\n padding: 30,\n }); //panToBounds\n } else if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.default_bounds = bounds;\n ui.default_zoom = ui.map.getZoom();\n }\n\n getMap() {\n const ui = this;\n return ui.map;\n }\n\n getPopup() {\n const ui = this;\n return ui.popup;\n }\n\n restoreBounds() {\n const ui = this;\n\n if (ui.default_bounds && ui.markers.length > 1) {\n ui.map.fitBounds(ui.default_bounds, {\n padding: 30,\n }); //panToBounds\n } else {\n if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.restoreZoom();\n }\n }\n\n restoreZoom() {\n const ui = this;\n\n ui.map.setZoom(ui.default_zoom);\n }\n }\n\n return GoogleMapsDriver;\n})($);\n\nexport default GoogleMapsDriver;\n","/**\n * Add your global events here\n */\n\nimport MAP_DRIVER from './_components/drivers/_map.google';\n//import MAP_DRIVER from './_components/drivers/_map.mapbox';\n\nconst CONSTS = {\n ENVS: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'],\n MAP_DRIVER,\n};\n\nexport default CONSTS;\n","/**\n * Add your global events here\n */\n\nmodule.exports = {\n AJAX: 'ajax-load',\n TABHIDDEN: 'tab-hidden',\n TABFOCUSED: 'tab-focused',\n OFFLINE: 'offline',\n ONLINE: 'online',\n LOADED: 'load',\n SWIPELEFT: 'swipeleft panleft',\n SWIPERIGHT: 'swiperight panright',\n ALLERTAPPEARED: 'alert-appeared',\n ALERTREMOVED: 'alert-removed',\n LODEDANDREADY: 'load-ready',\n LAZYIMAGEREADY: 'image-lazy-bg-loaded',\n LAZYIMAGESREADY: 'images-lazy-loaded',\n MAPLOADED: 'map-loaded',\n MAPAPILOADED: 'map-api-loaded',\n MAPMARKERCLICK: 'map-marker-click',\n MAPPOPUPCLOSE: 'map-popup-close',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n CAROUSEL_READY: 'bs.carousel.ready',\n SET_TARGET_UPDATE: 'set-target-update',\n RESTORE_FIELD: 'restore-field',\n FORM_INIT_BASICS: 'form-basics',\n FORM_INIT_STEPPED: 'form-init-stepped',\n FORM_INIT_VALIDATE: 'form-init-validate',\n FORM_INIT_VALIDATE_FIELD: 'form-init-validate-field',\n FORM_INIT_STORAGE: 'form-init-storage',\n FORM_VALIDATION_FAILED: 'form-validation-failed',\n FORM_STEPPED_NEW_STEP: 'form-new-step',\n FORM_STEPPED_FIRST_STEP: 'form-first-step',\n FORM_STEPPED_LAST_STEP: 'form-last-step',\n FORM_FIELDS: 'input,textarea,select',\n};\n","\"use strict\";\n\nimport '../_components/_ui.map.api';\n","module.exports = jQuery;"],"sourceRoot":""}

View File

@ -1 +1 @@
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/_components/_ui.map.api.js","webpack:///./src/js/_components/drivers/_map.google.marker.js","webpack:///./src/js/_components/drivers/_map.google.js","webpack:///./src/js/_consts.js","webpack:///./src/js/_events.js","webpack:///./src/js/types/Site.Controllers.MapElementController.js","webpack:///external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","NAME","$BODY","MAP_DRIVER","CONSTS","W","window","MapAPI","el","ui","this","Drv","$el","config","data","jQuery","parseJSON","css","console","log","getName","init","drv","on","Events","MAPAPILOADED","e","map","getMap","addGeoJson","geocode","result","addMarker","addClass","trigger","MAPLOADED","localStorage","each","removeData","removeClass","fn","_jQueryInterface","Constructor","noConflict","JQUERY_NO_CONFLICT","AJAX","LOADED","jsMapAPI","Obj","google","maps","OverlayView","options","setMap","position","html","divClass","align","isDebugMode","debug","onClick","onMouseOver","isBoolean","arg","isNotUndefined","hasContent","length","isString","isFunction","div","document","createElement","style","className","innerHTML","setAttribute","getPanes","overlayMouseTarget","appendChild","event","addDomListener","stopPropagation","$div","find","positionInPixels","getProjection","fromLatLngToDivPixel","LatLng","offset","y","undefined","x","divWidth","outerWidth","divHeight","outerHeight","Array","isArray","join","top","left","draw","ENVS","markers","googleApiLoaded","append","$mapDiv","zoom","center","lat","lng","MarkerUI","Map","fullscreenControl","styles","default_zoom","popup","geocoder","Geocoder","crds","pos","marker","showPopup","MAPMARKERCLICK","push","content","$popup","getDiv","setCenter","setZoom","opacity","preventDefault","hidePopup","setPosition","restoreBounds","MAPPOPUPCLOSE","addr","callback","address","results","status","error","latLng","location","latlng","bounds","features","geometry","coordinates","LatLngBounds","forEach","id","properties","icon","flyToMarker","extend","fitBounds","padding","getPosition","default_bounds","getZoom","restoreZoom","TABHIDDEN","TABFOCUSED","OFFLINE","ONLINE","SWIPELEFT","SWIPERIGHT","ALLERTAPPEARED","ALERTREMOVED","LODEDANDREADY","LAZYIMAGEREADY","LAZYIMAGESREADY","SCROLL","RESIZE","CAROUSEL_READY","SET_TARGET_UPDATE","RESTORE_FIELD","FORM_INIT_BASICS","FORM_INIT_STEPPED","FORM_INIT_VALIDATE","FORM_INIT_VALIDATE_FIELD","FORM_INIT_STORAGE","FORM_VALIDATION_FAILED","FORM_STEPPED_NEW_STEP","FORM_STEPPED_FIRST_STEP","FORM_STEPPED_LAST_STEP","FORM_FIELDS","LocationUI","$Body","dispose","currentTarget","click","initMap"],"mappings":"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","file":"js/app_Site.Controllers.MapElementController.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/mnt/data/srv/dist/repositories/webpack-bootstrap-ui-kit/dist\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/types/Site.Controllers.MapElementController.js\");\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\nimport '../../scss/_components/_ui.map.scss';\n\nimport CONSTS from 'js/_consts';\n\nconst MapAPI = (($) => {\n // Constants\n const NAME = 'jsMapAPI';\n const DATA_KEY = NAME;\n const $BODY = $('body');\n\n const MAP_DRIVER = CONSTS['MAP_DRIVER'];\n const W = window;\n\n class MapAPI {\n // Constructor\n constructor(el) {\n const ui = this;\n const Drv = new MAP_DRIVER();\n\n ui.$el = $(el);\n\n const $el = ui.$el;\n const config = $el.data();\n\n config['center'] = [\n config['lng'] ? config['lng'] : $BODY.data('default-lng'),\n config['lat'] ? config['lat'] : $BODY.data('default-lat'),\n ];\n\n config['style'] = config['style']\n ? jQuery.parseJSON(config['style'])\n : null;\n\n config['font-family'] = $BODY.css('font-family');\n\n console.log(`${NAME}: initializing ${Drv.getName()}...`);\n Drv.init($el, config);\n ui.drv = Drv;\n\n $el.on(Events.MAPAPILOADED, (e) => {\n ui.map = Drv.getMap();\n\n if (config['geojson']) {\n console.log(`${NAME}: setting up geocode data`);\n Drv.addGeoJson(config);\n } else if (config['address']) {\n console.log(config['address']);\n console.log(`${NAME}: setting up address marker`);\n Drv.geocode(config['address'], (result) => {\n console.log(result);\n });\n } else if (config['lat'] && config['lng']) {\n console.log(`${NAME}: setting up single lat/lng marker`);\n\n if (!config['icon']) {\n config['icon'] = '<i class=\"fas fa-map-marker-alt\"></i>';\n }\n\n Drv.addMarker([config['lng'], config['lat']], config);\n }\n\n $el.data(DATA_KEY, ui);\n $el.addClass(`${NAME}-active`);\n\n $el.trigger(Events.MAPLOADED);\n console.log(`${NAME}: Map is loaded`);\n });\n }\n\n // Public methods\n getMap() {\n return ui.map;\n }\n\n dispose() {\n const ui = this;\n\n ui.$el = null;\n $.removeData(ui.$el[0], DATA_KEY);\n\n ui.$el.removeClass(`${NAME}-active`);\n }\n\n static _jQueryInterface() {\n if (typeof W.localStorage !== 'undefined') {\n return this.each(function() {\n // attach functionality to el\n const $el = $(this);\n let data = $el.data(DATA_KEY);\n\n if (!data) {\n data = new MapAPI(this);\n $el.data(DATA_KEY, data);\n }\n });\n }\n }\n }\n\n // jQuery interface\n $.fn[NAME] = MapAPI._jQueryInterface;\n $.fn[NAME].Constructor = MapAPI;\n $.fn[NAME].noConflict = function() {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return MapAPI._jQueryInterface;\n };\n\n // auto-apply\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n $('.mapAPI-map-container').jsMapAPI();\n });\n\n return MapAPI;\n})($);\n\nexport default MapAPI;\n","const Obj = {\n init: () => {\n class GoogleMapsHtmlOverlay extends google.maps.OverlayView {\n constructor(options) {\n super();\n const ui = this;\n\n ui.setMap(options.map);\n ui.position = options.position;\n ui.html = options.html\n ? options.html\n : '<div class=\"mapboxgl-marker\"><i class=\"marker-icon fas fa-map-marker-alt\"></i></div>';\n ui.divClass = options.divClass;\n ui.align = options.align;\n ui.isDebugMode = options.debug;\n ui.onClick = options.onClick;\n ui.onMouseOver = options.onMouseOver;\n\n ui.isBoolean = (arg) => {\n if (typeof arg === 'boolean') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isNotUndefined = (arg) => {\n if (typeof arg !== 'undefined') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.hasContent = (arg) => {\n if (arg.length > 0) {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isString = (arg) => {\n if (typeof arg === 'string') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isFunction = (arg) => {\n if (typeof arg === 'function') {\n return true;\n } else {\n return false;\n }\n };\n }\n onAdd() {\n const ui = this;\n\n // Create div element.\n ui.div = document.createElement('div');\n ui.div.style.position = 'absolute';\n\n // Validate and set custom div class\n if (ui.isNotUndefined(ui.divClass) && ui.hasContent(ui.divClass))\n ui.div.className = ui.divClass;\n\n // Validate and set custom HTML\n if (\n ui.isNotUndefined(ui.html) &&\n ui.hasContent(ui.html) &&\n ui.isString(ui.html)\n )\n ui.div.innerHTML = ui.html;\n\n // If debug mode is enabled custom content will be replaced with debug content\n if (ui.isBoolean(ui.isDebugMode) && ui.isDebugMode) {\n ui.div.className = 'debug-mode';\n ui.div.innerHTML =\n '<div style=\"height: 10px; width: 10px; background: red; border-radius: 100%;\"></div>' +\n '<div style=\"position: absolute; top: 5px; padding: 5px; width: 130px; text-align: center; font-size: 18px; text-transform: uppercase; font-weight: bolder; background: red; color: white; font-family: Arial;\">Debug mode</div>';\n ui.div.setAttribute(\n 'style',\n 'position: absolute;' +\n 'border: 5px dashed red;' +\n 'height: 150px;' +\n 'width: 150px;' +\n 'display: flex;' +\n 'justify-content: center;' +\n 'align-items: center;',\n );\n }\n\n // Add element to clickable layer\n ui.getPanes().overlayMouseTarget.appendChild(ui.div);\n\n // Add listeners to the element.\n google.maps.event.addDomListener(ui.div, 'click', (event) => {\n google.maps.event.trigger(ui, 'click');\n if (ui.isFunction(ui.onClick)) ui.onClick();\n event.stopPropagation();\n });\n\n google.maps.event.addDomListener(ui.div, 'mouseover', (event) => {\n google.maps.event.trigger(ui, 'mouseover');\n if (ui.isFunction(ui.onMouseOver)) ui.onMouseOver();\n event.stopPropagation();\n });\n }\n\n draw() {\n const ui = this;\n let $div = $(ui.div).find(\n '.mapboxgl-marker,.marker-pin,.mapboxgl-popup,.popup',\n );\n if (!$div.length) {\n $div = $(ui.div);\n }\n\n // Calculate position of div\n const positionInPixels = ui\n .getProjection()\n .fromLatLngToDivPixel(new google.maps.LatLng(ui.position));\n\n // Align HTML overlay relative to original position\n const offset = {\n y: undefined,\n x: undefined,\n };\n const divWidth = $div.outerWidth();\n const divHeight = $div.outerHeight();\n\n switch (Array.isArray(ui.align) ? ui.align.join(' ') : '') {\n case 'left top':\n offset.y = divHeight;\n offset.x = divWidth;\n break;\n case 'left center':\n offset.y = divHeight / 2;\n offset.x = divWidth;\n break;\n case 'left bottom':\n offset.y = 0;\n offset.x = divWidth;\n break;\n case 'center top':\n offset.y = divHeight;\n offset.x = divWidth / 2;\n break;\n case 'center center':\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n case 'center bottom':\n offset.y = 0;\n offset.x = divWidth / 2;\n break;\n case 'right top':\n offset.y = divHeight;\n offset.x = 0;\n break;\n case 'right center':\n offset.y = divHeight / 2;\n offset.x = 0;\n break;\n case 'right bottom':\n offset.y = 0;\n offset.x = 0;\n break;\n default:\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n }\n\n // Set position\n ui.div.style.top = `${positionInPixels.y - offset.y}px`;\n ui.div.style.left = `${positionInPixels.x - offset.x}px`;\n }\n\n getPosition() {\n const ui = this;\n return ui.position;\n }\n\n getDiv() {\n const ui = this;\n return ui.div;\n }\n\n setPosition(position, align) {\n const ui = this;\n ui.position = position;\n ui.align = align;\n ui.draw();\n }\n }\n return GoogleMapsHtmlOverlay;\n },\n};\n\nexport default Obj;\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../../_events';\nimport MarkerUI from './_map.google.marker';\n\nconst GoogleMapsDriver = (($) => {\n class GoogleMapsDriver {\n getName() {\n return 'GoogleMapsDriver';\n }\n\n init($el, config = []) {\n const ui = this;\n const W = window;\n\n ui.$el = $el;\n ui.config = config;\n ui.markers = [];\n\n W[`init${ui.getName()}`] = () => {\n ui.googleApiLoaded();\n };\n\n $('body').append(\n `<script async defer src=\"https://maps.googleapis.com/maps/api/js?key=${\n config['key']\n }&callback=init${ui.getName()}\"></script>`,\n );\n }\n\n googleApiLoaded() {\n const ui = this;\n\n const $el = ui.$el;\n const config = ui.config;\n const $mapDiv = $el.find('.mapAPI-map');\n\n const zoom = config['mapZoom'] ? config['mapZoom'] : 10;\n const center = config['center']\n ? {\n lat: config['center'][1],\n lng: config['center'][0],\n }\n : {\n lat: 0,\n lng: 0,\n };\n const style = config['style'] ? config['style'] : null;\n\n console.log(`${ui.getName()}: API is loaded`);\n // init fontawesome icons\n ui.MarkerUI = MarkerUI.init($);\n\n ui.map = new google.maps.Map($mapDiv[0], {\n zoom,\n center,\n fullscreenControl: true,\n styles: style,\n });\n\n ui.default_zoom = zoom;\n\n $mapDiv.addClass('mapboxgl-map');\n\n ui.popup = new ui.MarkerUI({\n map: ui.map,\n align: ['center', 'top'],\n divClass: 'mapboxgl-popup popup mapboxgl-popup-anchor-bottom d-none',\n html:\n '<div class=\"mapboxgl-popup-tip\"></div><div class=\"mapboxgl-popup-content\">' +\n '<div class=\"mapboxgl-popup-close-button\" type=\"button\" aria-label=\"Close popup\">×</div>' +\n '<div class=\"html\"></div>' +\n '</div>',\n });\n\n ui.geocoder = new google.maps.Geocoder();\n\n $el.trigger(Events.MAPAPILOADED);\n }\n\n addMarker(crds, config) {\n const ui = this;\n\n const pos = {\n lat: crds[1],\n lng: crds[0],\n };\n\n const marker = new ui.MarkerUI({\n position: pos,\n map: ui.map,\n align: ['center', 'top'],\n html: `<div class=\"mapboxgl-marker\"><div id=\"Marker${config['id']}\" data-id=\"${config['id']}\" class=\"marker\">${config['icon']}</div></div>`,\n onClick: () => {\n const $el = $(`#Marker${config['id']}`);\n ui.showPopup(pos, config['content']);\n\n $el.trigger(Events.MAPMARKERCLICK);\n },\n });\n\n ui.markers.push(marker);\n\n return marker;\n }\n\n showPopup(pos, content) {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n if (ui.config['flyToMarker']) {\n ui.map.setCenter(pos); // panTo\n if (!ui.config['noZoom']) {\n ui.map.setZoom(18);\n }\n }\n\n // keep it hidden to render content\n $popup.css({\n opacity: '0',\n });\n $popup.removeClass('d-none');\n\n $popup.find('.mapboxgl-popup-content .html').html(content);\n\n $popup.find('.mapboxgl-popup-close-button').on('click', (e) => {\n e.preventDefault();\n ui.hidePopup();\n });\n\n // set position when content was rendered\n ui.popup.setPosition(pos, ['center', 'top']);\n\n // display popup\n $popup.css({\n 'margin-top': '-1rem',\n opacity: '1',\n });\n }\n\n hidePopup() {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n $popup.addClass('d-none');\n if (!ui.config['noRestoreBounds'] || ui.config['flyToBounds']) {\n ui.restoreBounds();\n }\n\n ui.$el.trigger(Events.MAPPOPUPCLOSE);\n }\n\n geocode(addr, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n address: addr,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].geometry.location;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Geocode was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n reverseGeocode(latLng, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n location: latlng,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].formatted_address;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Reverse Geocoding was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n addGeoJson(config) {\n const ui = this;\n\n const firstMarker = config['geojson'].features[0].geometry.coordinates;\n //Map.setCenter(firstMarker);\n const bounds = new google.maps.LatLngBounds();\n\n // add markers to map\n config['geojson'].features.forEach((marker) => {\n const id = marker.id;\n const crds = marker.geometry.coordinates;\n const content = marker.properties.content;\n\n ui.addMarker(crds, {\n id,\n content,\n icon: marker.icon,\n flyToMarker: config['flyToMarker'],\n });\n\n bounds.extend({\n lat: crds[1],\n lng: crds[0],\n });\n });\n\n if (ui.markers.length > 1) {\n ui.map.fitBounds(bounds, {\n padding: 30,\n }); //panToBounds\n } else if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.default_bounds = bounds;\n ui.default_zoom = ui.map.getZoom();\n }\n\n getMap() {\n const ui = this;\n return ui.map;\n }\n\n getPopup() {\n const ui = this;\n return ui.popup;\n }\n\n restoreBounds() {\n const ui = this;\n\n if (ui.default_bounds && ui.markers.length > 1) {\n ui.map.fitBounds(ui.default_bounds, {\n padding: 30,\n }); //panToBounds\n } else {\n if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.restoreZoom();\n }\n }\n\n restoreZoom() {\n const ui = this;\n\n ui.map.setZoom(ui.default_zoom);\n }\n }\n\n return GoogleMapsDriver;\n})($);\n\nexport default GoogleMapsDriver;\n","/**\n * Add your global events here\n */\n\nimport MAP_DRIVER from './_components/drivers/_map.google';\n//import MAP_DRIVER from './_components/drivers/_map.mapbox';\n\nconst CONSTS = {\n ENVS: [\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n ],\n MAP_DRIVER,\n};\n\nexport default CONSTS;\n","/**\n * Add your global events here\n */\n\nmodule.exports = {\n AJAX: 'ajax-load',\n TABHIDDEN: 'tab-hidden',\n TABFOCUSED: 'tab-focused',\n OFFLINE: 'offline',\n ONLINE: 'online',\n LOADED: 'load',\n SWIPELEFT: 'swipeleft panleft',\n SWIPERIGHT: 'swiperight panright',\n ALLERTAPPEARED: 'alert-appeared',\n ALERTREMOVED: 'alert-removed',\n LODEDANDREADY: 'load-ready',\n LAZYIMAGEREADY: 'image-lazy-bg-loaded',\n LAZYIMAGESREADY: 'images-lazy-loaded',\n MAPLOADED: 'map-loaded',\n MAPAPILOADED: 'map-api-loaded',\n MAPMARKERCLICK: 'map-marker-click',\n MAPPOPUPCLOSE: 'map-popup-close',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n CAROUSEL_READY: 'bs.carousel.ready',\n SET_TARGET_UPDATE: 'set-target-update',\n RESTORE_FIELD: 'restore-field',\n FORM_INIT_BASICS: 'form-basics',\n FORM_INIT_STEPPED: 'form-init-stepped',\n FORM_INIT_VALIDATE: 'form-init-validate',\n FORM_INIT_VALIDATE_FIELD: 'form-init-validate-field',\n FORM_INIT_STORAGE: 'form-init-storage',\n FORM_VALIDATION_FAILED: 'form-validation-failed',\n FORM_STEPPED_NEW_STEP: 'form-new-step',\n FORM_STEPPED_FIRST_STEP: 'form-first-step',\n FORM_STEPPED_LAST_STEP: 'form-last-step',\n FORM_FIELDS: 'input,textarea,select',\n};\n","\"use strict\";\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\n// Mapbox API\nimport '../_components/_ui.map.api';\n\nconst LocationUI = (($) => {\n // Constants\n const W = window;\n const D = document;\n const $Body = $('body');\n\n const NAME = 'LocationUI';\n class LocationUI {\n // Static methods\n\n static init() {\n this.dispose();\n console.log(`Initializing: ${NAME}`);\n }\n\n static initMap() {\n $('.mapAPI-map-container').find('.marker').on(`${Events.MAPMARKERCLICK}`, (e) => {\n const $el = $(e.currentTarget);\n const id = $el.data('id');\n\n $Body.find('.locations .location').removeClass('active');\n $Body.find(`.locations .location[data-id=\"${ id }\"]`).addClass('active');\n });\n\n $Body.find('.locations .location').on('click', (e) => {\n const $el = $(e.currentTarget);\n const id = $el.data('id');\n\n $Body.find(`#Marker${id}`).click();\n });\n\n $('.mapAPI-map-container').on(Events.MAPPOPUPCLOSE, (e) => {\n $Body.find('.locations .location').removeClass('active');\n });\n }\n\n static dispose() {\n console.log(`Destroying: ${NAME}`);\n }\n }\n\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n LocationUI.init();\n });\n\n $(W).on(Events.MAPLOADED, () => {\n LocationUI.initMap();\n });\n\n return LocationUI;\n\n})($);\n\nexport default LocationUI;\n","module.exports = jQuery;"],"sourceRoot":""}
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/js/_components/_ui.map.api.js","webpack:///./src/js/_components/drivers/_map.google.marker.js","webpack:///./src/js/_components/drivers/_map.google.js","webpack:///./src/js/_consts.js","webpack:///./src/js/_events.js","webpack:///./src/js/types/Site.Controllers.MapElementController.js","webpack:///external \"jQuery\""],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","NAME","$BODY","MAP_DRIVER","CONSTS","W","window","MapAPI","el","ui","this","Drv","$el","config","data","jQuery","parseJSON","css","console","log","getName","init","drv","on","Events","MAPAPILOADED","e","map","getMap","addGeoJson","geocode","result","addMarker","addClass","trigger","MAPLOADED","localStorage","each","removeData","removeClass","fn","_jQueryInterface","Constructor","noConflict","JQUERY_NO_CONFLICT","AJAX","LOADED","jsMapAPI","Obj","google","maps","OverlayView","options","setMap","position","html","divClass","align","isDebugMode","debug","onClick","onMouseOver","isBoolean","arg","isNotUndefined","hasContent","length","isString","isFunction","div","document","createElement","style","className","innerHTML","setAttribute","getPanes","overlayMouseTarget","appendChild","event","addDomListener","stopPropagation","$div","find","positionInPixels","getProjection","fromLatLngToDivPixel","LatLng","offset","y","undefined","x","divWidth","outerWidth","divHeight","outerHeight","Array","isArray","join","top","left","draw","ENVS","markers","googleApiLoaded","append","$mapDiv","zoom","center","lat","lng","MarkerUI","Map","fullscreenControl","styles","default_zoom","popup","geocoder","Geocoder","crds","pos","marker","showPopup","MAPMARKERCLICK","push","content","$popup","getDiv","setCenter","setZoom","opacity","preventDefault","hidePopup","setPosition","restoreBounds","MAPPOPUPCLOSE","addr","callback","address","results","status","error","latLng","location","latlng","bounds","features","geometry","coordinates","LatLngBounds","forEach","id","properties","icon","flyToMarker","extend","fitBounds","padding","getPosition","default_bounds","getZoom","restoreZoom","TABHIDDEN","TABFOCUSED","OFFLINE","ONLINE","SWIPELEFT","SWIPERIGHT","ALLERTAPPEARED","ALERTREMOVED","LODEDANDREADY","LAZYIMAGEREADY","LAZYIMAGESREADY","SCROLL","RESIZE","CAROUSEL_READY","SET_TARGET_UPDATE","RESTORE_FIELD","FORM_INIT_BASICS","FORM_INIT_STEPPED","FORM_INIT_VALIDATE","FORM_INIT_VALIDATE_FIELD","FORM_INIT_STORAGE","FORM_VALIDATION_FAILED","FORM_STEPPED_NEW_STEP","FORM_STEPPED_FIRST_STEP","FORM_STEPPED_LAST_STEP","FORM_FIELDS","LocationUI","$Body","dispose","currentTarget","click","initMap"],"mappings":"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","file":"js/app_Site.Controllers.MapElementController.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/mnt/data/srv/dist/repositories/webpack-bootstrap-ui-kit/dist\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/js/types/Site.Controllers.MapElementController.js\");\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\nimport '../../scss/_components/_ui.map.scss';\n\nimport CONSTS from 'js/_consts';\n\nconst MapAPI = (($) => {\n // Constants\n const NAME = 'jsMapAPI';\n const DATA_KEY = NAME;\n const $BODY = $('body');\n\n const MAP_DRIVER = CONSTS['MAP_DRIVER'];\n const W = window;\n\n class MapAPI {\n // Constructor\n constructor(el) {\n const ui = this;\n const Drv = new MAP_DRIVER();\n\n ui.$el = $(el);\n\n const $el = ui.$el;\n const config = $el.data();\n\n config['center'] = [\n config['lng'] ? config['lng'] : $BODY.data('default-lng'),\n config['lat'] ? config['lat'] : $BODY.data('default-lat'),\n ];\n\n config['style'] = config['style']\n ? jQuery.parseJSON(config['style'])\n : null;\n\n config['font-family'] = $BODY.css('font-family');\n\n console.log(`${NAME}: initializing ${Drv.getName()}...`);\n Drv.init($el, config);\n ui.drv = Drv;\n\n $el.on(Events.MAPAPILOADED, (e) => {\n ui.map = Drv.getMap();\n\n if (config['geojson']) {\n console.log(`${NAME}: setting up geocode data`);\n Drv.addGeoJson(config);\n } else if (config['address']) {\n console.log(config['address']);\n console.log(`${NAME}: setting up address marker`);\n Drv.geocode(config['address'], (result) => {\n console.log(result);\n });\n } else if (config['lat'] && config['lng']) {\n console.log(`${NAME}: setting up single lat/lng marker`);\n\n if (!config['icon']) {\n config['icon'] = '<i class=\"fas fa-map-marker-alt\"></i>';\n }\n\n Drv.addMarker([config['lng'], config['lat']], config);\n }\n\n $el.data(DATA_KEY, ui);\n $el.addClass(`${NAME}-active`);\n\n $el.trigger(Events.MAPLOADED);\n console.log(`${NAME}: Map is loaded`);\n });\n }\n\n // Public methods\n getMap() {\n return ui.map;\n }\n\n dispose() {\n const ui = this;\n\n ui.$el = null;\n $.removeData(ui.$el[0], DATA_KEY);\n\n ui.$el.removeClass(`${NAME}-active`);\n }\n\n static _jQueryInterface() {\n if (typeof W.localStorage !== 'undefined') {\n return this.each(function() {\n // attach functionality to el\n const $el = $(this);\n let data = $el.data(DATA_KEY);\n\n if (!data) {\n data = new MapAPI(this);\n $el.data(DATA_KEY, data);\n }\n });\n }\n }\n }\n\n // jQuery interface\n $.fn[NAME] = MapAPI._jQueryInterface;\n $.fn[NAME].Constructor = MapAPI;\n $.fn[NAME].noConflict = function() {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return MapAPI._jQueryInterface;\n };\n\n // auto-apply\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n $('.mapAPI-map-container').jsMapAPI();\n });\n\n return MapAPI;\n})($);\n\nexport default MapAPI;\n","const Obj = {\n init: () => {\n class GoogleMapsHtmlOverlay extends google.maps.OverlayView {\n constructor(options) {\n super();\n const ui = this;\n\n ui.setMap(options.map);\n ui.position = options.position;\n ui.html = options.html\n ? options.html\n : '<div class=\"mapboxgl-marker\"><i class=\"marker-icon fas fa-map-marker-alt\"></i></div>';\n ui.divClass = options.divClass;\n ui.align = options.align;\n ui.isDebugMode = options.debug;\n ui.onClick = options.onClick;\n ui.onMouseOver = options.onMouseOver;\n\n ui.isBoolean = (arg) => {\n if (typeof arg === 'boolean') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isNotUndefined = (arg) => {\n if (typeof arg !== 'undefined') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.hasContent = (arg) => {\n if (arg.length > 0) {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isString = (arg) => {\n if (typeof arg === 'string') {\n return true;\n } else {\n return false;\n }\n };\n\n ui.isFunction = (arg) => {\n if (typeof arg === 'function') {\n return true;\n } else {\n return false;\n }\n };\n }\n onAdd() {\n const ui = this;\n\n // Create div element.\n ui.div = document.createElement('div');\n ui.div.style.position = 'absolute';\n\n // Validate and set custom div class\n if (ui.isNotUndefined(ui.divClass) && ui.hasContent(ui.divClass))\n ui.div.className = ui.divClass;\n\n // Validate and set custom HTML\n if (\n ui.isNotUndefined(ui.html) &&\n ui.hasContent(ui.html) &&\n ui.isString(ui.html)\n )\n ui.div.innerHTML = ui.html;\n\n // If debug mode is enabled custom content will be replaced with debug content\n if (ui.isBoolean(ui.isDebugMode) && ui.isDebugMode) {\n ui.div.className = 'debug-mode';\n ui.div.innerHTML =\n '<div style=\"height: 10px; width: 10px; background: red; border-radius: 100%;\"></div>' +\n '<div style=\"position: absolute; top: 5px; padding: 5px; width: 130px; text-align: center; font-size: 18px; text-transform: uppercase; font-weight: bolder; background: red; color: white; font-family: Arial;\">Debug mode</div>';\n ui.div.setAttribute(\n 'style',\n 'position: absolute;' +\n 'border: 5px dashed red;' +\n 'height: 150px;' +\n 'width: 150px;' +\n 'display: flex;' +\n 'justify-content: center;' +\n 'align-items: center;',\n );\n }\n\n // Add element to clickable layer\n ui.getPanes().overlayMouseTarget.appendChild(ui.div);\n\n // Add listeners to the element.\n google.maps.event.addDomListener(ui.div, 'click', (event) => {\n google.maps.event.trigger(ui, 'click');\n if (ui.isFunction(ui.onClick)) ui.onClick();\n event.stopPropagation();\n });\n\n google.maps.event.addDomListener(ui.div, 'mouseover', (event) => {\n google.maps.event.trigger(ui, 'mouseover');\n if (ui.isFunction(ui.onMouseOver)) ui.onMouseOver();\n event.stopPropagation();\n });\n }\n\n draw() {\n const ui = this;\n let $div = $(ui.div).find(\n '.mapboxgl-marker,.marker-pin,.mapboxgl-popup,.popup',\n );\n if (!$div.length) {\n $div = $(ui.div);\n }\n\n // Calculate position of div\n const positionInPixels = ui\n .getProjection()\n .fromLatLngToDivPixel(new google.maps.LatLng(ui.position));\n\n // Align HTML overlay relative to original position\n const offset = {\n y: undefined,\n x: undefined,\n };\n const divWidth = $div.outerWidth();\n const divHeight = $div.outerHeight();\n\n switch (Array.isArray(ui.align) ? ui.align.join(' ') : '') {\n case 'left top':\n offset.y = divHeight;\n offset.x = divWidth;\n break;\n case 'left center':\n offset.y = divHeight / 2;\n offset.x = divWidth;\n break;\n case 'left bottom':\n offset.y = 0;\n offset.x = divWidth;\n break;\n case 'center top':\n offset.y = divHeight;\n offset.x = divWidth / 2;\n break;\n case 'center center':\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n case 'center bottom':\n offset.y = 0;\n offset.x = divWidth / 2;\n break;\n case 'right top':\n offset.y = divHeight;\n offset.x = 0;\n break;\n case 'right center':\n offset.y = divHeight / 2;\n offset.x = 0;\n break;\n case 'right bottom':\n offset.y = 0;\n offset.x = 0;\n break;\n default:\n offset.y = divHeight / 2;\n offset.x = divWidth / 2;\n break;\n }\n\n // Set position\n ui.div.style.top = `${positionInPixels.y - offset.y}px`;\n ui.div.style.left = `${positionInPixels.x - offset.x}px`;\n }\n\n getPosition() {\n const ui = this;\n return ui.position;\n }\n\n getDiv() {\n const ui = this;\n return ui.div;\n }\n\n setPosition(position, align) {\n const ui = this;\n ui.position = position;\n ui.align = align;\n ui.draw();\n }\n }\n return GoogleMapsHtmlOverlay;\n },\n};\n\nexport default Obj;\n","'use strict';\n\nimport $ from 'jquery';\nimport Events from '../../_events';\nimport MarkerUI from './_map.google.marker';\n\nconst GoogleMapsDriver = (($) => {\n class GoogleMapsDriver {\n getName() {\n return 'GoogleMapsDriver';\n }\n\n init($el, config = []) {\n const ui = this;\n const W = window;\n\n ui.$el = $el;\n ui.config = config;\n ui.markers = [];\n\n W[`init${ui.getName()}`] = () => {\n ui.googleApiLoaded();\n };\n\n $('body').append(\n `<script async defer src=\"https://maps.googleapis.com/maps/api/js?key=${\n config['key']\n }&callback=init${ui.getName()}\"></script>`,\n );\n }\n\n googleApiLoaded() {\n const ui = this;\n\n const $el = ui.$el;\n const config = ui.config;\n const $mapDiv = $el.find('.mapAPI-map');\n\n const zoom = config['mapZoom'] ? config['mapZoom'] : 10;\n const center = config['center']\n ? {\n lat: config['center'][1],\n lng: config['center'][0],\n }\n : {\n lat: 0,\n lng: 0,\n };\n const style = config['style'] ? config['style'] : null;\n\n console.log(`${ui.getName()}: API is loaded`);\n // init fontawesome icons\n ui.MarkerUI = MarkerUI.init($);\n\n ui.map = new google.maps.Map($mapDiv[0], {\n zoom,\n center,\n fullscreenControl: true,\n styles: style,\n });\n\n ui.default_zoom = zoom;\n\n $mapDiv.addClass('mapboxgl-map');\n\n ui.popup = new ui.MarkerUI({\n map: ui.map,\n align: ['center', 'top'],\n divClass: 'mapboxgl-popup popup mapboxgl-popup-anchor-bottom d-none',\n html:\n '<div class=\"mapboxgl-popup-tip\"></div><div class=\"mapboxgl-popup-content\">' +\n '<div class=\"mapboxgl-popup-close-button\" type=\"button\" aria-label=\"Close popup\">×</div>' +\n '<div class=\"html\"></div>' +\n '</div>',\n });\n\n ui.geocoder = new google.maps.Geocoder();\n\n $el.trigger(Events.MAPAPILOADED);\n }\n\n addMarker(crds, config) {\n const ui = this;\n\n const pos = {\n lat: crds[1],\n lng: crds[0],\n };\n\n const marker = new ui.MarkerUI({\n position: pos,\n map: ui.map,\n align: ['center', 'top'],\n html: `<div class=\"mapboxgl-marker\"><div id=\"Marker${config['id']}\" data-id=\"${config['id']}\" class=\"marker\">${config['icon']}</div></div>`,\n onClick: () => {\n const $el = $(`#Marker${config['id']}`);\n ui.showPopup(pos, config['content']);\n\n $el.trigger(Events.MAPMARKERCLICK);\n },\n });\n\n ui.markers.push(marker);\n\n return marker;\n }\n\n showPopup(pos, content) {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n if (ui.config['flyToMarker']) {\n ui.map.setCenter(pos); // panTo\n if (!ui.config['noZoom']) {\n ui.map.setZoom(18);\n }\n }\n\n // keep it hidden to render content\n $popup.css({\n opacity: '0',\n });\n $popup.removeClass('d-none');\n\n $popup.find('.mapboxgl-popup-content .html').html(content);\n\n $popup.find('.mapboxgl-popup-close-button').on('click', (e) => {\n e.preventDefault();\n ui.hidePopup();\n });\n\n // set position when content was rendered\n ui.popup.setPosition(pos, ['center', 'top']);\n\n // display popup\n $popup.css({\n 'margin-top': '-1rem',\n opacity: '1',\n });\n }\n\n hidePopup() {\n const ui = this;\n const $popup = $(ui.popup.getDiv());\n\n $popup.addClass('d-none');\n if (!ui.config['noRestoreBounds'] || ui.config['flyToBounds']) {\n ui.restoreBounds();\n }\n\n ui.$el.trigger(Events.MAPPOPUPCLOSE);\n }\n\n geocode(addr, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n address: addr,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].geometry.location;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Geocode was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n reverseGeocode(latLng, callback) {\n const ui = this;\n\n ui.geocoder.geocode(\n {\n location: latlng,\n },\n (results, status) => {\n if (status === 'OK') {\n //results[0].formatted_address;\n\n if (typeof callback === 'function') {\n callback(results);\n }\n\n return results;\n } else {\n console.error(\n `${ui.getName()}: Reverse Geocoding was not successful for the following reason: ${status}`,\n );\n }\n },\n );\n }\n\n addGeoJson(config) {\n const ui = this;\n\n const firstMarker = config['geojson'].features[0].geometry.coordinates;\n //Map.setCenter(firstMarker);\n const bounds = new google.maps.LatLngBounds();\n\n // add markers to map\n config['geojson'].features.forEach((marker) => {\n const id = marker.id;\n const crds = marker.geometry.coordinates;\n const content = marker.properties.content;\n\n ui.addMarker(crds, {\n id,\n content,\n icon: marker.icon,\n flyToMarker: config['flyToMarker'],\n });\n\n bounds.extend({\n lat: crds[1],\n lng: crds[0],\n });\n });\n\n if (ui.markers.length > 1) {\n ui.map.fitBounds(bounds, {\n padding: 30,\n }); //panToBounds\n } else if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.default_bounds = bounds;\n ui.default_zoom = ui.map.getZoom();\n }\n\n getMap() {\n const ui = this;\n return ui.map;\n }\n\n getPopup() {\n const ui = this;\n return ui.popup;\n }\n\n restoreBounds() {\n const ui = this;\n\n if (ui.default_bounds && ui.markers.length > 1) {\n ui.map.fitBounds(ui.default_bounds, {\n padding: 30,\n }); //panToBounds\n } else {\n if (ui.markers[0]) {\n ui.map.setCenter(ui.markers[0].getPosition());\n }\n\n ui.restoreZoom();\n }\n }\n\n restoreZoom() {\n const ui = this;\n\n ui.map.setZoom(ui.default_zoom);\n }\n }\n\n return GoogleMapsDriver;\n})($);\n\nexport default GoogleMapsDriver;\n","/**\n * Add your global events here\n */\n\nimport MAP_DRIVER from './_components/drivers/_map.google';\n//import MAP_DRIVER from './_components/drivers/_map.mapbox';\n\nconst CONSTS = {\n ENVS: ['xs', 'sm', 'md', 'lg', 'xl', 'xxl', 'xxxl'],\n MAP_DRIVER,\n};\n\nexport default CONSTS;\n","/**\n * Add your global events here\n */\n\nmodule.exports = {\n AJAX: 'ajax-load',\n TABHIDDEN: 'tab-hidden',\n TABFOCUSED: 'tab-focused',\n OFFLINE: 'offline',\n ONLINE: 'online',\n LOADED: 'load',\n SWIPELEFT: 'swipeleft panleft',\n SWIPERIGHT: 'swiperight panright',\n ALLERTAPPEARED: 'alert-appeared',\n ALERTREMOVED: 'alert-removed',\n LODEDANDREADY: 'load-ready',\n LAZYIMAGEREADY: 'image-lazy-bg-loaded',\n LAZYIMAGESREADY: 'images-lazy-loaded',\n MAPLOADED: 'map-loaded',\n MAPAPILOADED: 'map-api-loaded',\n MAPMARKERCLICK: 'map-marker-click',\n MAPPOPUPCLOSE: 'map-popup-close',\n SCROLL: 'scroll',\n RESIZE: 'resize',\n CAROUSEL_READY: 'bs.carousel.ready',\n SET_TARGET_UPDATE: 'set-target-update',\n RESTORE_FIELD: 'restore-field',\n FORM_INIT_BASICS: 'form-basics',\n FORM_INIT_STEPPED: 'form-init-stepped',\n FORM_INIT_VALIDATE: 'form-init-validate',\n FORM_INIT_VALIDATE_FIELD: 'form-init-validate-field',\n FORM_INIT_STORAGE: 'form-init-storage',\n FORM_VALIDATION_FAILED: 'form-validation-failed',\n FORM_STEPPED_NEW_STEP: 'form-new-step',\n FORM_STEPPED_FIRST_STEP: 'form-first-step',\n FORM_STEPPED_LAST_STEP: 'form-last-step',\n FORM_FIELDS: 'input,textarea,select',\n};\n","\"use strict\";\n\nimport $ from 'jquery';\nimport Events from '../_events';\n\n// Mapbox API\nimport '../_components/_ui.map.api';\n\nconst LocationUI = (($) => {\n // Constants\n const W = window;\n const D = document;\n const $Body = $('body');\n\n const NAME = 'LocationUI';\n class LocationUI {\n // Static methods\n\n static init() {\n this.dispose();\n console.log(`Initializing: ${NAME}`);\n }\n\n static initMap() {\n $('.mapAPI-map-container').find('.marker').on(`${Events.MAPMARKERCLICK}`, (e) => {\n const $el = $(e.currentTarget);\n const id = $el.data('id');\n\n $Body.find('.locations .location').removeClass('active');\n $Body.find(`.locations .location[data-id=\"${ id }\"]`).addClass('active');\n });\n\n $Body.find('.locations .location').on('click', (e) => {\n const $el = $(e.currentTarget);\n const id = $el.data('id');\n\n $Body.find(`#Marker${id}`).click();\n });\n\n $('.mapAPI-map-container').on(Events.MAPPOPUPCLOSE, (e) => {\n $Body.find('.locations .location').removeClass('active');\n });\n }\n\n static dispose() {\n console.log(`Destroying: ${NAME}`);\n }\n }\n\n $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {\n LocationUI.init();\n });\n\n $(W).on(Events.MAPLOADED, () => {\n LocationUI.initMap();\n });\n\n return LocationUI;\n\n})($);\n\nexport default LocationUI;\n","module.exports = jQuery;"],"sourceRoot":""}

View File

@ -1,6 +1,6 @@
{
"name": "@a2nt/ss-bootstrap-ui-webpack-boilerplate",
"version": "2.0.4",
"version": "2.0.5",
"author": "Tony Air <tony@twma.pro>",
"license": "MIT",
"description": "This UI Kit allows you to build Bootstrap 4 webapp with some extra UI features. It's easy to extend and easy to convert HTML templates to CMS templates.",

View File

@ -17,148 +17,148 @@ import SmoothScroll from 'smooth-scroll';
const smoothScroll = SmoothScroll();
const MainUI = (($) => {
// Constants
const W = window;
const D = document;
const $Body = $('body');
// Constants
const W = window;
const D = document;
const $Body = $('body');
const NAME = 'MainUI';
const NAME = 'MainUI';
// get browser locale
//const Locale = $('html').attr('lang').substring(0, 2);
// get browser locale
//const Locale = $('html').attr('lang').substring(0, 2);
const $AlertNotify = $('#AlertNotify');
const $SiteWideMessage = $('#SiteWideMessage');
const $AlertNotify = $('#AlertNotify');
const $SiteWideMessage = $('#SiteWideMessage');
// get browser window visibility preferences
// Opera 12.10, Firefox >=18, Chrome >=31, IE11
const HiddenName = 'hidden';
const VisibilityChangeEvent = 'visibilitychange';
// get browser window visibility preferences
// Opera 12.10, Firefox >=18, Chrome >=31, IE11
const HiddenName = 'hidden';
const VisibilityChangeEvent = 'visibilitychange';
// update visibility state
D.addEventListener(VisibilityChangeEvent, () => {
if (D.visibilityState === HiddenName) {
console.log('Tab: hidden');
$Body.addClass('is-hidden');
$Body.trigger(Events.TABHIDDEN);
} else {
console.log('Tab: focused');
$Body.removeClass('is-hidden');
$Body.trigger(Events.TABFOCUSED);
}
});
// update visibility state
D.addEventListener(VisibilityChangeEvent, () => {
if (D.visibilityState === HiddenName) {
console.log('Tab: hidden');
$Body.addClass('is-hidden');
$Body.trigger(Events.TABHIDDEN);
} else {
console.log('Tab: focused');
$Body.removeClass('is-hidden');
$Body.trigger(Events.TABFOCUSED);
}
});
// update online/offline state
const updateOnlineStatus = () => {
if (typeof navigator.onLine === 'undefined') {
return;
}
if (!navigator.onLine) {
console.log('Tab: offline');
$Body.addClass('is-offline');
$Body.trigger(Events.OFFLINE);
} else {
console.log('Tab: online');
$Body.removeClass('is-offline');
$Body.trigger(Events.ONLINE);
}
};
// update online/offline state
const updateOnlineStatus = () => {
if (typeof navigator.onLine === 'undefined') {
return;
}
if (!navigator.onLine) {
console.log('Tab: offline');
$Body.addClass('is-offline');
$Body.trigger(Events.OFFLINE);
} else {
console.log('Tab: online');
$Body.removeClass('is-offline');
$Body.trigger(Events.ONLINE);
}
};
W.addEventListener(
'offline',
() => {
updateOnlineStatus();
},
false,
);
W.addEventListener(
'offline',
() => {
updateOnlineStatus();
},
false,
);
W.addEventListener(
'online',
() => {
updateOnlineStatus();
},
false,
);
W.addEventListener(
'online',
() => {
updateOnlineStatus();
},
false,
);
W.addEventListener('load', () => {
updateOnlineStatus();
});
W.addEventListener('load', () => {
updateOnlineStatus();
});
$(W).on(`${Events.AJAX}`, () => {
updateOnlineStatus();
});
$(W).on(`${Events.AJAX}`, () => {
updateOnlineStatus();
});
// scrollTo
const ScrollTo = (trigger, selector) => {
smoothScroll.animateScroll(D.querySelector(selector), trigger, {
speed: 500,
offset: -20,
//easing: 'easeInOutCubic',
// Callback API
//before: (anchor, toggle) => {}, // Callback to run before scroll
//`after: (anchor, toggle) => {} // Callback to run after scroll
});
};
// scrollTo
const ScrollTo = (trigger, selector) => {
smoothScroll.animateScroll(D.querySelector(selector), trigger, {
speed: 500,
offset: -20,
//easing: 'easeInOutCubic',
// Callback API
//before: (anchor, toggle) => {}, // Callback to run before scroll
//`after: (anchor, toggle) => {} // Callback to run after scroll
});
};
// session ping
const pingInterval = setInterval(() => {
if ($Body.hasClass('is-offline')) {
return;
}
// session ping
const pingInterval = setInterval(() => {
if ($Body.hasClass('is-offline')) {
return;
}
$.ajax({
sync: false,
async: true,
cache: false,
url: '/Security/ping',
global: false,
type: 'POST',
complete(data, datastatus) {
if (datastatus !== 'success') {
clearInterval(pingInterval);
$.ajax({
sync: false,
async: true,
cache: false,
url: '/Security/ping',
global: false,
type: 'POST',
complete(data, datastatus) {
if (datastatus !== 'success') {
clearInterval(pingInterval);
$Body.addClass('is-offline');
//W.location.reload(false);
} else {
$Body.removeClass('is-offline');
}
},
});
}, 300000); // 5 min in ms
$Body.addClass('is-offline');
//W.location.reload(false);
} else {
$Body.removeClass('is-offline');
}
},
});
}, 300000); // 5 min in ms
W.URLDetails = {
base: $('base').attr('href'),
relative: '/',
hash: '',
};
W.URLDetails = {
base: $('base').attr('href'),
relative: '/',
hash: '',
};
let eventFired = false;
const setTouchScreen = (bool) => {
if (W.IsTouchScreen === bool || eventFired) {
return;
}
let eventFired = false;
const setTouchScreen = (bool) => {
if (W.IsTouchScreen === bool || eventFired) {
return;
}
eventFired = true;
eventFired = true;
W.IsTouchScreen = bool;
$.support.touch = W.IsTouchScreen;
W.IsTouchScreen = bool;
$.support.touch = W.IsTouchScreen;
if (bool) {
console.log(`${NAME}: Touch screen enabled`);
} else {
console.log(`${NAME}: Touch screen disabled`);
}
if (bool) {
console.log(`${NAME}: Touch screen enabled`);
} else {
console.log(`${NAME}: Touch screen disabled`);
}
// prevent firing touch and mouse events together
setTimeout(() => {
eventFired = false;
}, 200);
};
// prevent firing touch and mouse events together
setTimeout(() => {
eventFired = false;
}, 200);
};
setTouchScreen('ontouchstart' in window || navigator.msMaxTouchPoints > 0);
setTouchScreen('ontouchstart' in window || navigator.msMaxTouchPoints > 0);
// disable touch on mouse events
/*D.addEventListener('mousemove', () => {
// disable touch on mouse events
/*D.addEventListener('mousemove', () => {
setTouchScreen(false);
});
@ -166,40 +166,40 @@ const MainUI = (($) => {
setTouchScreen(false);
});*/
// enable touch screen on touch events
D.addEventListener('touchmove', () => {
setTouchScreen(true);
});
D.addEventListener('touchstart', () => {
setTouchScreen(true);
});
// enable touch screen on touch events
D.addEventListener('touchmove', () => {
setTouchScreen(true);
});
D.addEventListener('touchstart', () => {
setTouchScreen(true);
});
class MainUI {
// Static methods
class MainUI {
// Static methods
static init() {
this.dispose();
static init() {
this.dispose();
console.log(`Initializing: ${NAME}`);
console.log(`Initializing: ${NAME}`);
// update location details
this.updateLocation();
// update location details
this.updateLocation();
// mark available offline areas
if ('caches' in W) {
$('a.offline').addClass('offline-available');
}
// mark available offline areas
if ('caches' in W) {
$('a.offline').addClass('offline-available');
}
this.loadImages();
this.loadImages();
// detect bootstrap screen size
this.detectBootstrapScreenSize();
// detect bootstrap screen size
this.detectBootstrapScreenSize();
// mark external links
$('a.external,a[rel="external"]').attr('target', '_blank');
// mark external links
$('a.external,a[rel="external"]').attr('target', '_blank');
// show encoded emails
/*$(D).find('.obm').each(() => {
// show encoded emails
/*$(D).find('.obm').each(() => {
if ($(this).attr('data-val') !== undefined) {
const email = $(this).attr('data-val').split('')
.reverse()
@ -219,275 +219,275 @@ const MainUI = (($) => {
}
}
});*/
//
//
// scroll links
$('.js-scrollTo').on('click', (e) => {
e.preventDefault();
const el = e.currentTarget;
const $el = $(e.currentTarget);
// scroll links
$('.js-scrollTo').on('click', (e) => {
e.preventDefault();
const el = e.currentTarget;
const $el = $(e.currentTarget);
ScrollTo(el, $el.attr('data-target'));
});
ScrollTo(el, $el.attr('data-target'));
});
// load external fonts
if ($('[data-extfont]').length) {
$.getScript(
'//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js',
() => {
const fonts = [];
// load external fonts
if ($('[data-extfont]').length) {
$.getScript(
'//ajax.googleapis.com/ajax/libs/webfont/1/webfont.js',
() => {
const fonts = [];
$('[data-extfont]').each((i, el) => {
fonts[i] = $(el).attr('data-extfont');
});
$('[data-extfont]').each((i, el) => {
fonts[i] = $(el).attr('data-extfont');
});
W.WebFont.load({
google: {
families: fonts,
},
});
},
);
}
W.WebFont.load({
google: {
families: fonts,
},
});
},
);
}
// data-set links
$('[data-set-target]').on('click', (e) => {
const $el = $(e.currentTarget);
const $target = $($el.data('set-target'));
// data-set links
$('[data-set-target]').on('click', (e) => {
const $el = $(e.currentTarget);
const $target = $($el.data('set-target'));
if (!$target.length) {
return;
}
if (!$target.length) {
return;
}
$target.each((i, targetEl) => {
const $targetEl = $(targetEl);
const tag = $targetEl.prop('tagName').toLowerCase();
$target.each((i, targetEl) => {
const $targetEl = $(targetEl);
const tag = $targetEl.prop('tagName').toLowerCase();
if (tag === 'input' || tag === 'select') {
$targetEl.val($el.data('set-val'));
} else if (!$targetEl.hasClass('field')) {
$targetEl.text($el.data('set-val'));
}
});
if (tag === 'input' || tag === 'select') {
$targetEl.val($el.data('set-val'));
} else if (!$targetEl.hasClass('field')) {
$targetEl.text($el.data('set-val'));
}
});
$el.trigger(Events.SET_TARGET_UPDATE);
$target.closest('form').trigger(Events.SET_TARGET_UPDATE);
});
$el.trigger(Events.SET_TARGET_UPDATE);
$target.closest('form').trigger(Events.SET_TARGET_UPDATE);
});
// emulate links
$('.a[data-href]').on('click', (e) => {
const $el = $(e.currentTarget);
const href = $el.data('href');
if (!href.length) {
console.warn('Missing data-href');
console.warn($el);
}
// emulate links
$('.a[data-href]').on('click', (e) => {
const $el = $(e.currentTarget);
const href = $el.data('href');
if (!href.length) {
console.warn('Missing data-href');
console.warn($el);
}
W.location.assign(href);
});
W.location.assign(href);
});
// hide spinner
Spinner.hide(() => {
$Body.addClass('loaded');
});
// hide spinner
Spinner.hide(() => {
$Body.addClass('loaded');
});
// fire page printing
if (W.URLDetails['hash'].indexOf('printpage') > -1) {
W.print();
}
// fire page printing
if (W.URLDetails['hash'].indexOf('printpage') > -1) {
W.print();
}
$Body.data(NAME, this);
}
$Body.data(NAME, this);
}
static detectBootstrapScreenSize() {
const $el = $('<div class="env-test"></div>');
let envs = [...Consts.ENVS];
$Body.append($el);
static detectBootstrapScreenSize() {
const $el = $('<div class="env-test"></div>');
let envs = [...Consts.ENVS];
$Body.append($el);
let curEnv = envs.shift();
envs = envs.reverse();
let curEnv = envs.shift();
envs = envs.reverse();
for (let i = 0; i < envs.length; ++i) {
const env = envs[i];
$el.addClass(`d-${env}-none`);
if ($el.is(':hidden')) {
curEnv = env;
break;
}
}
for (let i = 0; i < envs.length; ++i) {
const env = envs[i];
$el.addClass(`d-${env}-none`);
if ($el.is(':hidden')) {
curEnv = env;
break;
}
}
$el.remove();
$Body.removeClass(envs);
$Body.addClass(curEnv);
$el.remove();
$Body.removeClass(envs);
$Body.addClass(curEnv);
return curEnv;
}
return curEnv;
}
static updateLocation(url) {
let location = url || W.location.href;
location = location.replace(W.URLDetails['base'], '/');
const hash = location.indexOf('#');
static updateLocation(url) {
let location = url || W.location.href;
location = location.replace(W.URLDetails['base'], '/');
const hash = location.indexOf('#');
W.URLDetails.relative = location.split('#')[0];
W.URLDetails.hash =
W.URLDetails.relative = location.split('#')[0];
W.URLDetails.hash =
hash >= 0 ? location.substr(location.indexOf('#')) : '';
}
}
// show site-wide alert
static alert(msg, cls) {
$SiteWideMessage.fadeOut('fast');
// show site-wide alert
static alert(msg, cls) {
$SiteWideMessage.fadeOut('fast');
$SiteWideMessage.html(
`<div class="page-alert"><div class="alert alert-${cls}"><i class="close" data-dismiss="alert">&times;</i>${msg}</div></div>`,
);
$SiteWideMessage.find('.page-alert').alert();
$SiteWideMessage.html(
`<div class="page-alert"><div class="alert alert-${cls}"><i class="close" data-dismiss="alert">&times;</i>${msg}</div></div>`,
);
$SiteWideMessage.find('.page-alert').alert();
$SiteWideMessage.find('.close[data-dismiss="alert"]').click(() => {
$SiteWideMessage.fadeOut('slow', () => {
$SiteWideMessage.find('.page-alert').alert('close');
});
});
$SiteWideMessage.find('.close[data-dismiss="alert"]').click(() => {
$SiteWideMessage.fadeOut('slow', () => {
$SiteWideMessage.find('.page-alert').alert('close');
});
});
$SiteWideMessage.fadeIn('slow');
$SiteWideMessage.fadeIn('slow');
if ($AlertNotify.length) {
$AlertNotify[0].play();
}
if ($AlertNotify.length) {
$AlertNotify[0].play();
}
$(W).trigger(`${Events.ALLERTAPPEARED}`);
}
$(W).trigger(`${Events.ALLERTAPPEARED}`);
}
// hide site-wide alert
static alertHide() {
if ($SiteWideMessage.length !== 0) {
$SiteWideMessage.fadeOut('slow', () => {
$SiteWideMessage.find('.alert').alert('close');
});
}
// hide site-wide alert
static alertHide() {
if ($SiteWideMessage.length !== 0) {
$SiteWideMessage.fadeOut('slow', () => {
$SiteWideMessage.find('.alert').alert('close');
});
}
if (
$AlertNotify.length &&
if (
$AlertNotify.length &&
typeof $AlertNotify[0].stop !== 'undefined'
) {
$AlertNotify[0].stop();
}
) {
$AlertNotify[0].stop();
}
$(W).trigger(`${Events.ALLERTREMOVED}`);
}
$(W).trigger(`${Events.ALLERTREMOVED}`);
}
// load all images
static loadImages() {
const $imgs = $Body.find('img');
const $imgUrls = [];
const $imgLazyUrls = [];
// load all images
static loadImages() {
const $imgs = $Body.find('img');
const $imgUrls = [];
const $imgLazyUrls = [];
// collect image details
$imgs.each((i, el) => {
const $el = $(el);
const src = $el.attr('src');
const lazySrc = $el.data('lazy-src');
// collect image details
$imgs.each((i, el) => {
const $el = $(el);
const src = $el.attr('src');
const lazySrc = $el.data('lazy-src');
if (src && src.length) {
$imgUrls.push(src);
}
if (lazySrc && lazySrc.length) {
$imgLazyUrls.push(lazySrc);
$el.addClass('loading');
if (src && src.length) {
$imgUrls.push(src);
}
if (lazySrc && lazySrc.length) {
$imgLazyUrls.push(lazySrc);
$el.addClass('loading');
AjaxUI.preload([lazySrc]).then(() => {
$el.attr('src', lazySrc);
AjaxUI.preload([lazySrc]).then(() => {
$el.attr('src', lazySrc);
$el.addClass('loaded');
$el.removeClass('loading');
$el.addClass('loaded');
$el.removeClass('loading');
$el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
$el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
// load lazy backgrounds
$Body.find('[data-lazy-bg]').each((i, el) => {
const $el = $(el);
const lazySrc = $el.data('lazy-bg');
// load lazy backgrounds
$Body.find('[data-lazy-bg]').each((i, el) => {
const $el = $(el);
const lazySrc = $el.data('lazy-bg');
if (lazySrc && lazySrc.length) {
$imgLazyUrls.push(lazySrc);
$el.addClass('loading');
if (lazySrc && lazySrc.length) {
$imgLazyUrls.push(lazySrc);
$el.addClass('loading');
AjaxUI.preload([lazySrc]).then(() => {
$el.css({ 'background-image': `url(${lazySrc})` });
AjaxUI.preload([lazySrc]).then(() => {
$el.css({ 'background-image': `url(${lazySrc})` });
$el.addClass('loaded');
$el.removeClass('loading');
$el.addClass('loaded');
$el.removeClass('loading');
$el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
$el.trigger(`${Events.LAZYIMAGEREADY}`);
});
}
});
// load defined images
AjaxUI.preload($imgUrls).then(() => {
$(W).trigger('images-loaded');
// load defined images
AjaxUI.preload($imgUrls).then(() => {
$(W).trigger('images-loaded');
// load lazy images
AjaxUI.preload($imgLazyUrls).then(() => {
console.log('All images are loaded!');
// load lazy images
AjaxUI.preload($imgLazyUrls).then(() => {
console.log('All images are loaded!');
setTimeout(() => {
$(W).trigger(`${Events.LAZYIMAGESREADY}`);
}, 100);
});
});
}
setTimeout(() => {
$(W).trigger(`${Events.LAZYIMAGESREADY}`);
}, 100);
});
});
}
static dispose() {
console.log(`Destroying: ${NAME}`);
}
}
static dispose() {
console.log(`Destroying: ${NAME}`);
}
}
$(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {
MainUI.init();
});
$(W).on(`${Events.AJAX} ${Events.LOADED}`, () => {
MainUI.init();
});
$(W).on('resize', () => {
MainUI.detectBootstrapScreenSize();
});
$(W).on('resize', () => {
MainUI.detectBootstrapScreenSize();
});
$(W).on('beforeunload unload', () => {
Spinner.show(() => {
$Body.removeClass('loaded');
});
});
$(W).on('beforeunload unload', () => {
Spinner.show(() => {
$Body.removeClass('loaded');
});
});
// hide spinner on target _blank
$('[target="_blank"],.external').on('click submit', () => {
setTimeout(() => {
Spinner.hide(() => {
$Body.addClass('loaded');
});
}, 1000);
});
// hide spinner on target _blank
$('[target="_blank"],.external').on('click submit', () => {
setTimeout(() => {
Spinner.hide(() => {
$Body.addClass('loaded');
});
}, 1000);
});
console.clear();
console.info(
'%cUI Kit: https://github.com/a2nt/webpack-bootstrap-ui-kit by Tony Air (tony@twma.pro)',
'color:yellow;font-size:16px',
);
console.groupCollapsed('Events');
Object.keys(Events).forEach((k) => {
console.info(k + ': ' + Events[k]);
});
console.groupEnd('Events');
console.clear();
console.info(
'%cUI Kit: https://github.com/a2nt/webpack-bootstrap-ui-kit by Tony Air (tony@twma.pro)',
'color:yellow;font-size:16px',
);
console.groupCollapsed('Events');
Object.keys(Events).forEach((k) => {
console.info(`${k }: ${ Events[k]}`);
});
console.groupEnd('Events');
console.groupCollapsed('Consts');
Object.keys(Consts).forEach((k) => {
console.info(k + ': ' + Consts[k]);
});
console.groupEnd('Events');
console.groupCollapsed('Consts');
Object.keys(Consts).forEach((k) => {
console.info(`${k }: ${ Consts[k]}`);
});
console.groupEnd('Events');
W.MainUI = MainUI;
W.MainUI = MainUI;
return MainUI;
return MainUI;
})($);
export default MainUI;