react-period-of-stay-input
Version:
React.js component for entering a period of stay in a hotel: check-in + check-out date
1 lines • 3.42 kB
JSON
{"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":{}}}