{"version":3,"file":"Dates-CzVN5FyQ.js","sources":["../../../node_modules/@experiments-labs/rise_ui/src/lib/Dates.js"],"sourcesContent":["const DAY_IN_MS = 86400000\n\n/**\n * Checks if a date is the same day as another\n *\n * @param {Date} firstDate - First date\n * @param {Date} secondDate - Second date\n * @returns {boolean} True if dates are in the same day, false otherwise\n */\nexport function isSameDay (firstDate, secondDate = new Date()) {\n return (firstDate.getFullYear() === secondDate.getFullYear())\n && (firstDate.getMonth() === secondDate.getMonth())\n && (firstDate.getDate() === secondDate.getDate())\n}\n\n/**\n * Checks if a date is the same month as another\n *\n * @param {Date} firstDate - First date\n * @param {Date} secondDate - Second date\n * @returns {boolean} True if dates are in the same month, false otherwise\n */\nexport function isSameMonth (firstDate, secondDate = new Date()) {\n return (firstDate.getFullYear() === secondDate.getFullYear())\n && (firstDate.getMonth() === secondDate.getMonth())\n}\n\n/**\n * Checks if a date is after another (day-based comparison)\n *\n * @param {Date} date - Date to check\n * @param {Date} reference - Reference date\n * @returns {boolean} True if date is after reference, false otherwise\n */\nexport function isOver (date, reference = new Date()) {\n // not today and date before reference\n return !isSameDay(reference, date) && date < reference\n}\n\n/** @see isOver */\nexport const isAfter = isOver\n\n/**\n * Checks if a date is before another (day-based comparison)\n *\n * @param {Date} date - Date to check\n * @param {Date} reference - Reference date\n * @returns {boolean} True if date is before reference, false otherwise\n */\nexport function isBefore (date, reference = new Date()) {\n // not today and date before reference\n return !isSameDay(reference, date) && date > reference\n}\n\n/**\n * Transforms a Date to a string usable as input field value\n *\n * @param {Date} date - Date to transform\n * @param {boolean} time - Whether to include time\n * @returns {string} Representation to use with input fields\n */\nexport function dateToInputString (date, time = false) {\n if (!date) return ''\n if (typeof date === 'string') date = new Date(date)\n\n const day = `0${date.getDate()}`.slice(-2)\n const month = `0${date.getMonth() + 1}`.slice(-2)\n const year = `0000${date.getFullYear()}`.slice(-4)\n let string = `${year}-${month}-${day}`\n if (time) {\n const hours = `0${date.getHours()}`.slice(-2)\n const minutes = `0${date.getMinutes()}`.slice(-2)\n string += `T${hours}:${minutes}`\n }\n\n return string\n}\n\n/**\n * @param {Date} date - Input date\n * @returns {Date} - Cloned date, beginning of day\n */\nexport function beginningOfDay (date) {\n const newDate = new Date(date)\n newDate.setHours(0, 0, 0, 0)\n\n return newDate\n}\n\n/**\n * @param {Date} firstDate - First date to diff\n * @param {Date} secondDate - Second date to diff\n * @returns {number|null} - Difference in days between the two dates or null when a date is missing\n */\nexport function diffInDays (firstDate, secondDate) {\n if (!firstDate || !secondDate) return null\n\n return Math.floor((firstDate - secondDate) / DAY_IN_MS) // One day in ms\n}\n"],"names":["isSameDay","firstDate","secondDate","isOver","date","reference","isAfter","isBefore","dateToInputString","time","day","month","string","hours","minutes","beginningOfDay","newDate","diffInDays"],"mappings":"AASO,SAASA,EAAWC,EAAWC,EAAa,IAAI,KAAQ,CAC7D,OAAQD,EAAU,gBAAkBC,EAAW,YAAa,GACtDD,EAAU,SAAQ,IAAOC,EAAW,SAAU,GAC9CD,EAAU,QAAO,IAAOC,EAAW,QAAS,CACpD,CAqBO,SAASC,EAAQC,EAAMC,EAAY,IAAI,KAAQ,CAEpD,MAAO,CAACL,EAAUK,EAAWD,CAAI,GAAKA,EAAOC,CAC/C,CAGY,MAACC,EAAUH,EAShB,SAASI,EAAUH,EAAMC,EAAY,IAAI,KAAQ,CAEtD,MAAO,CAACL,EAAUK,EAAWD,CAAI,GAAKA,EAAOC,CAC/C,CASO,SAASG,EAAmBJ,EAAMK,EAAO,GAAO,CACrD,GAAI,CAACL,EAAM,MAAO,GACd,OAAOA,GAAS,WAAUA,EAAO,IAAI,KAAKA,CAAI,GAElD,MAAMM,EAAM,IAAIN,EAAK,QAAO,CAAE,GAAG,MAAM,EAAE,EACnCO,EAAQ,IAAIP,EAAK,SAAU,EAAG,CAAC,GAAG,MAAM,EAAE,EAEhD,IAAIQ,EAAS,GADA,OAAOR,EAAK,YAAW,CAAE,GAAG,MAAM,EAAE,CAC7B,IAAIO,CAAK,IAAID,CAAG,GACpC,GAAID,EAAM,CACR,MAAMI,EAAQ,IAAIT,EAAK,SAAQ,CAAE,GAAG,MAAM,EAAE,EACtCU,EAAU,IAAIV,EAAK,WAAU,CAAE,GAAG,MAAM,EAAE,EAChDQ,GAAU,IAAIC,CAAK,IAAIC,CAAO,EAClC,CAEE,OAAOF,CACT,CAMO,SAASG,EAAgBX,EAAM,CACpC,MAAMY,EAAU,IAAI,KAAKZ,CAAI,EAC7B,OAAAY,EAAQ,SAAS,EAAG,EAAG,EAAG,CAAC,EAEpBA,CACT,CAOO,SAASC,EAAYhB,EAAWC,EAAY,CACjD,MAAI,CAACD,GAAa,CAACC,EAAmB,KAE/B,KAAK,OAAOD,EAAYC,GAAc,KAAS,CACxD","x_google_ignoreList":[0]}