extendSettings(settings) {
        let defaultSettings = {
          reverse: false,
          max: 15,
          startX: 0,
          startY: 0,
          perspective: 1000,
          easing: "cubic-bezier(.03,.98,.52,.99)",
          scale: 1,
          speed: 300,
          transition: true,
          axis: null,
          glare: false,
          "max-glare": 1,
          "glare-prerender": false,
          "full-page-listening": false,
          "mouse-event-element": null,
          reset: true,
          gyroscope: true,
          gyroscopeMinAngleX: -45,
          gyroscopeMaxAngleX: 45,
          gyroscopeMinAngleY: -45,
          gyroscopeMaxAngleY: 45,
          gyroscopeSamples: 10
        };
    
        let newSettings = {};
        for (var property in defaultSettings) {
          if (property in settings) {
            newSettings[property] = settings[property];
          } else if (this.element.hasAttribute("data-tilt-" + property)) {
            let attribute = this.element.getAttribute("data-tilt-" + property);
            try {
              newSettings[property] = JSON.parse(attribute);
            } catch (e) {
              newSettings[property] = attribute;
            }
    
          } else {
            newSettings[property] = defaultSettings[property];
          }
        }
    
        return newSettings;
      }
Method return patched settings of instance
@param {boolean} settings.reverse - reverse the tilt direction
@param {number} settings.max - max tilt rotation (degrees)
@param {startX} settings.startX - the starting tilt on the X axis, in degrees. Default: 0
@param {startY} settings.startY - the starting tilt on the Y axis, in degrees. Default: 0
@param {number} settings.perspective - Transform perspective, the lower the more extreme the tilt gets
@param {string} settings.easing - Easing on enter/exit
@param {number} settings.scale - 2 = 200%, 1.5 = 150%, etc..
@param {number} settings.speed - Speed of the enter/exit transition
@param {boolean} settings.transition - Set a transition on enter/exit
@param {string|null} settings.axis - What axis should be disabled. Can be X or Y
@param {boolean} settings.glare - What axis should be disabled. Can be X or Y
@param {number} settings.max-glare - the maximum "glare" opacity (1 = 100%, 0.5 = 50%)
@param {boolean} settings.glare-prerender - false = VanillaTilt creates the glare elements for you, otherwise
@param {boolean} settings.full-page-listening - If true, parallax effect will listen to mouse move events on the whole document, not only the selected element
@param {string|object} settings.mouse-event-element - String selector or link to HTML-element what will be listen mouse events
@param {boolean} settings.reset - false = If the tilt effect has to be reset on exit
@param {gyroscope} settings.gyroscope - Enable tilting by deviceorientation events
@param {gyroscopeSensitivity} settings.gyroscopeSensitivity - Between 0 and 1 - The angle at which max tilt position is reached. 1 = 90deg, 0.5 = 45deg, etc..
@param {gyroscopeSamples} settings.gyroscopeSamples - How many gyroscope moves to decide the starting position.