code: function _class(_ref) {
      var args = _ref.args;
      var config = _ref.config;
  
      _classCallCheck(this, _class);
  
      var on = null;
      var from = '*';
      var cbOn = null;
      var cbOff = null;
      var alwaysTrigger = false;
  
      var _iteratorNormalCompletion = true;
      var _didIteratorError = false;
      var _iteratorError = undefined;
  
      try {
        for (var _iterator = args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
          var arg = _step.value;
  
          switch (typeof arg === 'undefined' ? 'undefined' : _typeof(arg)) {
            case 'string':
              if (on === null) {
                on = arg;
              } else {
                from = arg;
              }
              break;
            case 'function':
              if (cbOn === null) {
                cbOn = arg;
              } else {
                cbOff = arg;
              }
              break;
            case 'boolean':
              alwaysTrigger = arg;
          }
        }
      } catch (err) {
        _didIteratorError = true;
        _iteratorError = err;
      } finally {
        try {
          if (!_iteratorNormalCompletion && _iterator.return) {
            _iterator.return();
          }
        } finally {
          if (_didIteratorError) {
            throw _iteratorError;
          }
        }
      }
  
      _extends(this, {
        isActive: null,
        matchesOn: parseMatchInputString(on, config.inversePrefix),
        matchesFrom: parseMatchInputString(from, config.inversePrefix),
        cbOn: cbOn, cbOff: cbOff, alwaysTrigger: alwaysTrigger
      });
    }
docs: (on[, from], cbOn[, cbOff][, always])