PHP Classes

File: public/assets/openlayers/ol-popup/ol-popup.min.js

Recommend this page to a friend!
  Classes of Aby Dahana   Aksara   public/assets/openlayers/ol-popup/ol-popup.min.js   Download  
File: public/assets/openlayers/ol-popup/ol-popup.min.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Aksara
A CodeIgniter based API and CRUD generator
Author: By
Last change: Version update
Date: 3 months ago
Size: 6,495 bytes
 

Contents

Class file image Download
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('ol/Overlay')) : typeof define === 'function' && define.amd ? define(['ol/Overlay'], factory) : (global.Popup = factory(global.ol.Overlay)); }(this, (function (Overlay) { 'use strict'; Overlay = 'default' in Overlay ? Overlay['default'] : Overlay; var classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var inherits = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }; var possibleConstructorReturn = function (self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }; /** * OpenLayers Popup Overlay. * See [the examples](./examples) for usage. Styling can be done via CSS. * @constructor * @extends {ol.Overlay} * @param {olx.OverlayOptions} opt_options options as defined by ol.Overlay. Defaults to * `{autoPan: true, autoPanAnimation: {duration: 250}}` */ var Popup = function (_Overlay) { inherits(Popup, _Overlay); function Popup(opt_options) { classCallCheck(this, Popup); var options = opt_options || {}; if (options.autoPan === undefined) { options.autoPan = true; } if (options.autoPanAnimation === undefined) { options.autoPanAnimation = { duration: 250 }; } var element = document.createElement('div'); options.element = element; var _this = possibleConstructorReturn(this, (Popup.__proto__ || Object.getPrototypeOf(Popup)).call(this, options)); _this.container = element; _this.container.className = 'ol-popup'; _this.closer = document.createElement('h5'); _this.closer.className = 'ol-popup-title'; _this.container.appendChild(_this.closer); _this.closer = document.createElement('a'); _this.closer.className = 'ol-popup-closer'; _this.closer.href = '#'; _this.container.appendChild(_this.closer); var that = _this; _this.closer.addEventListener('click', function (evt) { that.container.style.display = 'none'; that.closer.blur(); evt.preventDefault(); }, false); _this.content = document.createElement('div'); _this.content.className = 'ol-popup-content'; _this.container.appendChild(_this.content); // Apply workaround to enable scrolling of content div on touch devices Popup.enableTouchScroll_(_this.content); return _this; } /** * Show the popup. * @param {ol.Coordinate} coord Where to anchor the popup. * @param {String|HTMLElement} html String or element of HTML to display within the popup. * @returns {Popup} The Popup instance */ createClass(Popup, [{ key: 'show', value: function show(coord, html) { if (html instanceof HTMLElement) { this.content.innerHTML = ""; this.content.appendChild(html); } else { this.content.innerHTML = html; } this.container.style.display = 'block'; this.content.scrollTop = 0; this.setPosition(coord); return this; } /** * @private * @desc Determine if the current browser supports touch events. Adapted from * https://gist.github.com/chrismbarr/4107472 */ }, { key: 'hide', /** * Hide the popup. * @returns {Popup} The Popup instance */ value: function hide() { this.container.style.display = 'none'; return this; } /** * Indicates if the popup is in open state * @returns {Boolean} Whether the popup instance is open */ }, { key: 'isOpened', value: function isOpened() { return this.container.style.display == 'block'; } }], [{ key: 'isTouchDevice_', value: function isTouchDevice_() { try { document.createEvent("TouchEvent"); return true; } catch (e) { return false; } } /** * @private * @desc Apply workaround to enable scrolling of overflowing content within an * element. Adapted from https://gist.github.com/chrismbarr/4107472 */ }, { key: 'enableTouchScroll_', value: function enableTouchScroll_(elm) { if (Popup.isTouchDevice_()) { var scrollStartPos = 0; elm.addEventListener("touchstart", function (event) { scrollStartPos = this.scrollTop + event.touches[0].pageY; }, false); elm.addEventListener("touchmove", function (event) { this.scrollTop = scrollStartPos - event.touches[0].pageY; }, false); } } }]); return Popup; }(Overlay); if (window.ol && window.ol.Overlay) { window.ol.Overlay.Popup = Popup; } return Popup; })));