"use strict"; import {LayerModel} from "../Models/LayerModel.ecma.js"; import {Utils} from "../Utils/Utils.ecma.js"; export const LayersManager = (function(){ const LayersManager = function(routes_maker){ const layers = {}; this.get = key => layers[key = Utils.to_key(key)] ? layers[key] : null; this.add = (name, data, key = null) => { let layer = null; (key || (key = Utils.to_key(name))) && !layers[key] && (layer = layers[key] = new LayerModel(routes_maker, name, key, data)); return layer; }; this.remove = key => { if(layers[key = Utils.to_key(key)]) delete layers[key]; }; this.get_data = () => Object.keys(layers).reduce((dictionary, key) => { dictionary[key] = [layers[key].name, layers[key].dots.map(dot => [dot.longitude, dot.latitude])]; return dictionary; }, {}); this.select = name => { for(const key in layers){ const ok = key == name; layers[key].dots.forEach(dot => { dot.selected(ok); }); }; }; this.visible = (name, ok) => { layers[name].dots.forEach(dot => { dot.visible(ok); }); }; }; return LayersManager; })();