File size: 722 Bytes
22c7264
 
3dfa288
b4b2753
22c7264
 
 
 
5829a93
 
b4b2753
 
22c7264
 
b4b2753
22c7264
 
 
 
 
 
 
b4b2753
37f5ac4
 
 
 
 
 
b4b2753
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import Overlay from './overlay';
import Element from './element';
import './polyfill';

/**
 * Plugin class that drives the plugin
 */
export default class Sholo {
  constructor({ opacity = 0.75 } = {}) {
    this.overlay = new Overlay({ opacity });
  }

  highlight(selector) {
    let domElement;

    if (typeof selector === 'string') {
      domElement = document.querySelector(selector);
    } else if (typeof selector === 'object') {
      domElement = selector;
    } else {
      throw new Error('Element can only be string or the dom element');
    }

    if (domElement) {
      const element = new Element(domElement);
      this.overlay.highlight(element);
    } else {
      this.overlay.clear();
    }
  }
}