ol ext filters

by Vladimir Vershinin

HTML

<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v5.3.0/build/ol.js"></script>
<script src="https://cdn.rawgit.com/Viglino/ol-ext/master/dist/ol-ext.min.js"></script>
<script src="https://unpkg.com/[email protected]/lib/index.umd.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/lib/style.css">
<div id="app">
  <div class="panel">
    <ul>
      <li>
        Filter:
        <select id="filter" v-model="filter">
          <option value="crop">Crop</option>
          <option value="mask">Mask</option>
        </select>
      </li>
      <li>
        <input id="inner" type="checkbox" v-model="inner" />
        <label for="inner">inner</label>
      </li>
      <li>
        Color of the mask:
        <select id="color" v-model="color">
          <option value="rgba(255,255,255,0.8)">White</option>
          <option value="rgba(255,0,0,1)">Red</option>
          <option value="rgba(0,255,0,0.2)">Green</option>
          <option value="rgba(0,0,255,0.2)">Blue</option>
          <option value="rgba(255,255,0,0.2)">Yellow</option>
        </select> (mask only)
      </li>
    </ul>
  </div>
  <vl-map ref="map">
    <vl-view :zoom.sync="zoom" :center.sync="center"></vl-view>
  
    <vl-layer-tile>
      <vl-source-stamen layer="watercolor"></vl-source-stamen>
    </vl-layer-tile>
  
    <vl-layer-tile ref="osmLayer" @created="osmLayerCreated">
      <vl-source-osm></vl-source-osm>
    </vl-layer-tile>
    
  </vl-map>
</div>

CSS

html, body, #app {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

.panel {
  position: absolute;
  height: 100%;
  width: 100px;
  padding: 10px;
  background: #fff;
  z-index: 1;
}

JavaScript

var dep =...