{"id":"Model.ts","dependencies":[{"name":"/home/ikr/prj/stc-b2b/react-period-of-stay-input/tsconfig.json","includedInParent":true,"mtime":1533819530549},{"name":"/home/ikr/prj/stc-b2b/react-period-of-stay-input/package.json","includedInParent":true,"mtime":1534141269544},{"name":"./Day","loc":{"line":6,"column":36},"parent":"/home/ikr/prj/stc-b2b/react-period-of-stay-input/src/Model.ts","resolved":"/home/ikr/prj/stc-b2b/react-period-of-stay-input/src/Day.ts"}],"generated":{"js":"\"use strict\";\n\nvar __importDefault = this && this.__importDefault || function (mod) {\n    return mod && mod.__esModule ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Day_1 = __importDefault(require(\"./Day\"));\nvar MAX_NIGHTS_COUNT = 27;\nvar Model = /** @class */function () {\n    function Model(checkInDate, checkOutDate) {\n        if (checkOutDate.toMoment().isBefore(checkInDate.toMoment())) {\n            throw new Error(\"Check-out date can't be before check-in. Got \" + checkInDate + \", \" + checkOutDate);\n        }\n        this._checkInDate = checkInDate;\n        this._checkOutDate = checkOutDate;\n    }\n    Object.defineProperty(Model.prototype, \"checkInDate\", {\n        get: function get() {\n            return this._checkInDate;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(Model.prototype, \"checkOutDate\", {\n        get: function get() {\n            return this._checkOutDate;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Model.prototype.newCheckIn = function (checkInDate, environment) {\n        var mCheckOut = this._checkOutDate.toMoment();\n        var checkIn = new Day_1.default(checkInDate);\n        var mCheckIn = checkIn.toMoment();\n        if (mCheckIn.isBefore(environment.minCheckInDate.toMoment())) {\n            return this;\n        }\n        if (itsOk(mCheckIn, mCheckOut, environment)) {\n            return new Model(checkIn, checkIn.next());\n        }\n        return new Model(checkIn, this._checkOutDate);\n    };\n    Model.prototype.newCheckOut = function (checkOutDate, environment) {\n        var mCheckIn = this.checkInDate.toMoment();\n        var checkOut = new Day_1.default(checkOutDate);\n        var mCheckOut = checkOut.toMoment();\n        var mMinCheckInDate = environment.minCheckInDate.toMoment();\n        if (mCheckOut.isBefore(mMinCheckInDate) || !environment.zeroNightsAllowed && mCheckOut.isSame(mMinCheckInDate, 'day')) {\n            return this;\n        }\n        if (environment.zeroNightsAllowed && mCheckOut.isSame(mMinCheckInDate, 'day')) {\n            return new Model(checkOut, checkOut);\n        }\n        if (itsOk(mCheckIn, mCheckOut, environment)) {\n            return new Model(checkOut.previous(), checkOut);\n        }\n        return new Model(this._checkInDate, checkOut);\n    };\n    Model.prototype.nightsCount = function () {\n        return this._checkOutDate.toMoment().diff(this._checkInDate.toMoment(), 'days');\n    };\n    return Model;\n}();\nexports.default = Model;\nfunction itsOk(mCheckIn, mCheckOut, environment) {\n    return mCheckOut.isBefore(mCheckIn) || !environment.zeroNightsAllowed && mCheckIn.isSame(mCheckOut, 'day') || mCheckOut.diff(mCheckIn, 'days') > MAX_NIGHTS_COUNT;\n}"},"hash":"cbe9b2851eb230c78ab92431d6622626","cacheData":{"env":{}}}