UNPKG

tchen-vuelayers

Version:

Web map Vue components with the power of OpenLayers

57 lines (48 loc) 1.36 kB
/** * VueLayers * Web map Vue components with the power of OpenLayers * * @package vuelayers * @author Vladimir Vershinin <ghettovoice@gmail.com> * @version 0.11.1 * @license MIT * @copyright (c) 2017-2019, Vladimir Vershinin <ghettovoice@gmail.com> */ import _defineProperty from '@babel/runtime-corejs2/helpers/esm/defineProperty'; import mergeDescriptors from '../util/multi-merge-descriptors'; // const SERVICES_PROP = Symbol('services') var SERVICES_PROP = 'services'; /** * Service container mixin */ var services = { inject: { $services: SERVICES_PROP // todo works only in Vue 2.5.x // $services: {from: SERVICES_PROP, default: Object.create(null)}, }, provide: function provide() { return _defineProperty({}, SERVICES_PROP, this.getServices()); }, methods: { /** * @returns {Object} * @protected */ getServices: function getServices() { return mergeDescriptors({}, this.$services || {}); } }, beforeCreate: function beforeCreate() { var source = this.$parent; while (source) { if (source._provided != null && source._provided[SERVICES_PROP] != null) { break; } source = source.$parent; } if (source == null || source._provided[SERVICES_PROP] == null) { delete this.$options.inject.$services; } } }; export default services;