text: 'use strict';
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  var _PropertyResponse2 = require('../PropertyResponse');
  
  var _PropertyResponse3 = _interopRequireDefault(_PropertyResponse2);
  
  var _PropertyDecoder = require('../PropertyDecoder');
  
  var _PropertyDecoder2 = _interopRequireDefault(_PropertyDecoder);
  
  var _OptionalPropertyDecoder = require('../OptionalPropertyDecoder');
  
  var _OptionalPropertyDecoder2 = _interopRequireDefault(_OptionalPropertyDecoder);
  
  var _helpers = require('../helpers');
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
  
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
  
  var ClimateResponse = function (_PropertyResponse) {
    _inherits(ClimateResponse, _PropertyResponse);
  
    /**
     * @property {Number} insideTemperature (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     * @property {Number} outsideTemperature (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     * @property {Number} driverTemperatureSetting (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     * @property {Number} passengerTemperatureSetting (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     * @property {String} hvacState (string) HVAC state
     * @property {String} defoggingState (string) Defogging state
     * @property {String} defrostingState (string) Defrosting state
     * @property {String} ionisingState (string) Ionising state
     * @property {Number} defrostingTemperature (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     * @property {Object} hvacWeekdayStartingTimes (array) Auto-HVAC activated on days ([{ weekday: (string: 'monday|tuesday|wednesday|thursday|friday|saturday|sunday|automatic', hour: (number), minute: (number) )}])
     * @property {Number} rearTemperature (number) Temperature in celsius formatted in 4-bytes per IEEE 754
     *
     * @example ClimateResponse
      {
        insideTemperature: { value: 23 },
        outsideTemperature: { value: 18 },
        driverTemperatureSetting: { value: 22 },
        passengerTemperatureSetting: { value: 23 },
        defoggingState: { value: 'inactive' },
        defrostingState: { value: 'inactive' },
        ionisingState: { value: 'inactive' },
        defrostingTemperature: { value: 23 },
        hvacState: { value: 'inactive' },
        hvacWeekdayStartingTimes: [{
          value: {
            weekday: 'monday',
            hour: 18,
            minute: 30
          }
        }, {
          value: {
            weekday: 'friday',
            hour: 18,
            minute: 30
          }
        }],
        rearTemperatureSetting: { value: 24 },
      }
     */
    function ClimateResponse(data, config) {
      _classCallCheck(this, ClimateResponse);
  
      var _this = _possibleConstructorReturn(this, (ClimateResponse.__proto__ || Object.getPrototypeOf(ClimateResponse)).call(this));
  
      var properties = [new _PropertyDecoder2.default(0x01, 'insideTemperature').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2)), new _PropertyDecoder2.default(0x02, 'outsideTemperature').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2)), new _PropertyDecoder2.default(0x03, 'driverTemperatureSetting').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2)), new _PropertyDecoder2.default(0x04, 'passengerTemperatureSetting').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2)), new _PropertyDecoder2.default(0x05, 'hvacState').setDecoder((0, _helpers.activeInactiveDecoder)()), new _PropertyDecoder2.default(0x06, 'defoggingState').setDecoder((0, _helpers.activeInactiveDecoder)()), new _PropertyDecoder2.default(0x07, 'defrostingState').setDecoder((0, _helpers.activeInactiveDecoder)()), new _PropertyDecoder2.default(0x08, 'ionisingState').setDecoder((0, _helpers.activeInactiveDecoder)()), new _PropertyDecoder2.default(0x09, 'defrostingTemperature').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2)), new _PropertyDecoder2.default(0x0b, 'hvacWeekdayStartingTimes').setOptionalSubProperties('weekday', [new _OptionalPropertyDecoder2.default(0x00, 'monday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x01, 'tuesday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x02, 'wednesday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x03, 'thursday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x04, 'friday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x05, 'saturday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x06, 'sunday').setDecoder(_this.weekdayDecoder), new _OptionalPropertyDecoder2.default(0x07, 'automatic').setDecoder(_this.weekdayDecoder)]), new _PropertyDecoder2.default(0x0c, 'rearTemperatureSetting').setDecoder((0, _helpers.getRoundedIeee754ToBase10)(2))];
  
      _this.parse(data, properties, config);
      return _this;
    }
  
    _createClass(ClimateResponse, [{
      key: 'weekdayDecoder',
      value: function weekdayDecoder(data) {
        return {
          hour: data[0],
          minute: data[1]
        };
      }
    }]);
  
    return ClimateResponse;
  }(_PropertyResponse3.default);
  
  ClimateResponse.identifier = [0x00, 0x24];
  exports.default = ClimateResponse;